Commit graph

147 commits

Author SHA1 Message Date
Marc Chapman ae2bedccee radius-search -- Expose search-list used for determining area damage. 2017-07-27 00:16:13 +01:00
Marc Chapman fcce9be33c obj-select -- object selection functionality
is-camera -- Adds a test for determining if object is a camera.
cam-speed -- added method for getting the camera movement speed.
zoned-in -- connection is flagged as "zoned-in" when client is fully connected and user can interact with it.
2017-07-26 23:59:44 +01:00
Azaezel 181f95510a method to make sure we're not getting pixel shader inputs mixed with outputs. 2017-07-09 15:15:30 -05:00
Areloch 25686ed4be Implementation of sRGB image support. Overhauls the linearization setup to utilize the sRGB image types, as well as refactors the use of ColorF and ColorI to be properly internally consistent. ColorIs are used only for front-facing/editing/UI settings, and ColorFs, now renamed to LinearColorF to reduce confusion of purpose, are used for color info in the engine itself. This avoids confusing and expensive conversions back and forth between types and avoids botches with linearity. Majority work done by @rextimmy 2017-06-23 11:36:20 -05:00
Areloch edd1e0a270 Removes Direct3D9 functionality. 2017-05-28 16:51:31 -05:00
Areloch 124ecb2fe0 Merge pull request #1984 from FooBarbarians/fix-1912
Reordering initialization methods #1912
2017-04-26 01:11:51 -05:00
Masquara 15f67015d3 Reordering initialization methods #1912 2017-04-19 14:02:45 -04:00
Areloch ed14b6fced Removes bits of code and includes that are based on old 360, xbox and PS3 flags that are no longer needed. 2017-04-08 20:30:57 -05:00
Areloch 0c6174b045 Merge pull request #1920 from elfprince13/variadicConsoleTemplates
Variadic console templates
2017-01-12 23:32:03 -06:00
Thomas "elfprince13" Dickerson 1c2b096a72 Whitespace consistency 2017-01-06 23:10:14 -05:00
Thomas "elfprince13" Dickerson 88106f9032 Fixed type inference for nulls in console functions 2017-01-06 17:18:37 -05:00
Azaezel dd071484da Merge branch 'development' of https://github.com/GarageGames/Torque3D into andOrMaybe
Conflicts:
	Engine/source/T3D/staticShape.cpp
2016-12-20 22:50:28 -06:00
Azaezel 1f6e66a1d7 directional coloration for pathnodes, as well as enlarges both the look and handle size for ease of use. 2016-12-01 00:55:27 -06:00
Anis 60e258e5a9 Merge pull request #1806 from Azaezel/byeByeVarVar2
more unused variable cleanups
2016-10-23 21:04:36 +02:00
Areloch 6cc7bcd2e0 Merge pull request #1805 from Azaezel/startRightEndRight
clang: constructor initialization order
2016-10-19 08:39:12 -05:00
Areloch 74c67e8409 Merge pull request #1814 from Azaezel/unstrungHeros
garbage char in string
2016-10-18 22:46:29 -05:00
Azaezel c5fa0557b5 garbage char in string 2016-10-18 11:44:25 -05:00
Areloch 121d65215e Tweaks any enums that use uint_max values so that they have hard types to avoid any compiler kerfluffles with C++11 value narrowing, specifically pertaining to clang. 2016-10-17 01:00:12 -05:00
Azaezel 1ee127b753 more unused variable cleanups 2016-10-16 14:41:34 -05:00
Azaezel fbfd3ed8ed clang: constructor initialization order
while not a major issue per-se, the sheer number of times the engine has to jump back in memory and backfill data in a given class can add up. First run of... many.,
2016-10-14 18:16:55 -05:00
Azaezel cc9955e102 unused variable cleanup 2016-10-14 17:49:56 -05:00
Azaezel c57b1a8b70 clang reports: unclear || + && and &+| mixes. 2016-10-14 17:26:13 -05:00
James Urquhart 1198932e87 Basic fix for reflections in both stereo rendering modes 2016-09-11 22:42:42 +01:00
James Urquhart de48afc00c USe correct frustum projections in reflections in separate rt mode 2016-09-11 22:42:42 +01:00
James Urquhart 784f6f92d8 Fix lens flare in side-by-side view 2016-09-11 22:42:42 +01:00
James Urquhart f91aa639d6 Remove projection offset, add the hmd head matrix. Also tidy up a few things. 2016-09-11 22:42:42 +01:00
James Urquhart 3dc2100765 Ignore alpha when rendering debug texture 2016-09-11 22:42:42 +01:00
Areloch b7882e7280 Merge pull request #1653 from Areloch/twiLightZone
Corrects culling of point/spot lights
2016-06-21 05:10:53 -05:00
OTHGMars 172e62a8f1 Mount Process Order Fix 2
Added a check to SceneObject::setProcessTick() to prevent objects that have mounts from being removed from the process list so the processAfter chain of the mounted objects is not broken.
2016-06-17 10:36:29 -05:00
Areloch dfb8f4f5e5 Makes point and spot lights be correctly culled with zoning like other objects. 2016-06-17 00:47:46 -05:00
Areloch 3a73344abb Resolves merging-order conflicts for the vehicle physics PR, as well as correcting cmake not blacklisting the componentGroup files if TORQUE_EXPERIMENTAL_EC was flipped off. 2016-06-05 19:17:34 -05:00
Areloch ec8882c3c8 Ensuring all names are the correct casing for Linux 2016-05-26 01:37:14 -05:00
Areloch b04ad52b5d Ensure that inclusion of any entity/component stuff is properly bracketed with the preprocessor check. 2016-05-15 10:11:46 -05:00
Areloch b3b50abd9b Integrates components into the update and render loop. 2016-05-14 12:40:13 -05:00
Azaezel bac14875f4 allows navmeshes to generate for most scene objects, and adds a NavMeshIgnore method for object-instances to filter them out. 2016-04-04 09:38:24 -05:00
rextimmy 41e5caf22b Direct3D11 Engine/source changes 2016-03-20 21:52:11 +10:00
Azaezel 8c5810adad The final step (barring any overlooked missing bits, requested refactors, and of course, rolling in dependencies already submitted as PRs) consists of:
renderPrePassMgr.cpp related:
A) shifting .addFeature( MFT_XYZ); calls from ProcessedShaderMaterial::_determineFeatures to ProcessedPrePassMaterial::_determineFeatures
B) mimicking the "// set the XXX if different" entries from RenderMeshMgr::render in RenderPrePassMgr::render
C) fleshing out ProcessedPrePassMaterial::getNumStages() so that it shares a 1:1 correlation with ProcessedShaderMaterial::getNumStages()
D) causing inline void Swizzle<T, mapLength>::ToBuffer( void *destination, const void *source, const dsize_t size )  to silently fail rather than fatally assert if a source or destination buffer is not yet ready to be filled. (support for #customTarget scripted render targets)

Reflections:
A) removing reflectRenderState.disableAdvancedLightingBins(true); entries. this would otherwise early out from prepass and provide no color data whatsoever.
B) removing the fd.features.addFeature( MFT_ForwardShading ); entry forcing all materials to be forward lit when reflected.
C) 2 things best described bluntly as working hacks:
C1) when reflected, a scattersky is rotated PI along it's z then x axis in order to draw properly.
C2) along similar lines, in terraincellmaterial, we shut off culling if it's a prepass material.

Skies: scattersky is given a pair of rotations for reflection purposes, all sky objects are given a z value for depth testing.
2016-02-16 02:50:49 -06:00
Azaezel 2753f562e8 shadow caching
SPECIAL NOTE: highly suggest https://github.com/GarageGames/Torque3D/pull/1441 or a variation thereof to prevent debug spew and false-postives for occlusion results.

With significant research, development and prototyping assistance from both @andr3wmac (shaders and partial hook work), and @LuisAntonRebollo (additional culling)

System operates as follows:
1) materials are given an additional castDynamicShadows boolean entry. (Default at time of writing is true by request. Personal usage at time of writing defaults to false. value is default-initialized in materialDefinition.cpp. script/gui exposed)
2) lights are given a staticRefreshFreq and dynamicRefreshFreq (in milliseconds). script/gui exposed
3) materials are (effectively) sorted into dynamic and static shadowmap render lists based on flag. (see shadowMapPass.cpp)
4) initial shadowmaps are generated for each light and 'list'.
5) as each refreshFreq times out, the relevant shadowmap for a given light is refreshed.

Special notes:
dynamicRefreshFreq for all lights is set to a (script exposed) 8MS refresh timer.
StaticRefreshFreq for the lions share of lights defaults to 250 MS (1/4 of a second)
scattersky's embedded light, which is intended to operate in a mobile manner, defaults to 8
to reiterate, these are all customizable per-light via script/inspector gui in the case of alternate project needs.
2015-10-13 18:12:19 -05:00
Areloch bedc79aacb Merges in Monkey's fixes PR with a resolution for a conflict 2015-09-03 22:58:57 -05:00
Daniel Buckmaster c2e5dc3345 Merge remote-tracking branch 'bpay/clang-cl-build-fixes' into development
Conflicts:
	Engine/source/T3D/shapeBase.h
2015-07-17 16:55:12 +10:00
Areloch 2002d74b78 Issue found with PVS-Studio:
Many instances of a function or expression being used repeatedly, which can lower performance.

Fixed it in these cases by creating on local var, reference or pointer that's used instead.
2015-07-13 22:51:17 -05:00
Raul Ferriz 5ef130d581 Fixed some random Worder warnings 2015-07-03 15:52:38 +02:00
Daniel Buckmaster 6b9e5dd15e Merge pull request #1330 from jamesu/stereo_render_fix
Basic fix for stereo rendering without a display device
2015-07-02 23:45:10 +10:00
Daniel Buckmaster 39f0e269d6 Merge pull request #1328 from GarageGames/release-3.7
Release 3.7
2015-06-24 19:00:57 +10:00
James Urquhart efc47ed757 Basic fix for stereo rendering without a display device 2015-06-21 20:59:41 +01:00
Daniel Buckmaster 49d2ab8bc3 Add more info to fatal assert in SceneContainer. See #1287. 2015-05-16 22:41:20 +10:00
James Urquhart 3a457749ec Oculus VR DK2 Support
- Updated to work with 0.5.x SDK
- Uses Oculus Rendering rather than PostFX
- Stereo rendering refactored so more rendering info is grabbed from the DisplayDevice
- Implements an Offscreen Canvas for in-game gui with oculus
- Message dialogs and metrics display can now go to the OffScreen Canvas (if oculus demo is setup correctly)
2015-05-06 23:09:51 +01:00
Ben Payne 7f1f6a5e8b Fix for link error when building with clang-cl 2015-03-04 19:25:11 -05:00
Ben Payne 0ffd7f5620 Fix member vars left uninitialized in constructors 2015-02-20 18:41:51 -05:00
Nathan Bowhay 87bb479c8c Check now platform independent
Now it uses a Torque function to check so it compiles on Linux.
2015-02-12 11:39:47 -08:00
Nathan Bowhay 7809e595ed Fixed tab vs spaces
Fixed tab vs spaces
2015-02-12 11:05:44 -08:00
Nathan Bowhay 50f875a2f5 Fixed bug with comparison cases of getRenderEnabled
For some reason returning true/false rather that 1/0 from
_getRenderEnabled would cause errors in some comparison cases to see if
it was true or not (would treat it as if it was a string/word rather
than a bool or int).
2015-02-03 14:18:06 -08:00
Nathan Bowhay 1372b4f600 Fixed raycast bug start x position is NaN
Fixed bug in _castRay when the start x position is NaN.
2015-02-03 14:14:02 -08:00
Luis Anton Rebollo 6492028bb2 Merge pull request #1035 from bpay/memfixes
Memfixes
2015-01-25 13:42:32 +01:00
Ben Payne b2b950c84a Add missing include guards to some headers 2015-01-06 00:42:33 -05:00
Daniel Buckmaster ae284a89ec Merge branch 'development' into defineconsolemethod
Conflicts:
	Engine/source/materials/materialDefinition.cpp
2014-12-26 13:22:16 +11:00
Azaezel c6cdfafe4e cleaned up variant of https://github.com/GarageGames/Torque3D/pull/768 alterations: opengl support, in-shader bug-reporting, direction vector fit to material slider-bar. 2014-12-21 14:07:42 -06:00
Daniel Buckmaster 9396ae7176 Merge remote-tracking branch 'Winterleaf/Development-Console' into defineconsolemethod
Conflicts:
	Engine/source/T3D/missionMarker.cpp
2014-12-21 21:23:55 +11:00
Daniel Buckmaster 8a104a5222 Merge pull request #1018 from eightyeight/ghost-scoping
Add the option to limit ghost scoping range
2014-12-21 19:03:02 +11:00
Ben Payne 98e79f3aec Fix uninitialized member vars 2014-12-13 16:08:47 -05:00
Daniel Buckmaster a928d142f7 Made some tweaks so I'm happy with it.
* Removed #defines
 * Fall back to using visible distance if ghost distance is not used
 * Removed ghost distance from level files as it will default
 * Renamed mConnectionVisibleDistance for consistency
2014-12-07 19:14:06 +11:00
LuisAntonRebollo adc7c72caa clean PlaneReflector member variables declaration. 2014-11-30 05:16:56 +01:00
LuisAntonRebollo c0b2e6536b Reduce innecesary changes on Render Target textures. 2014-11-08 18:34:21 +01:00
Vincent Gee 578c4e8f4f Removed Tabs, added check on connection 2014-11-06 08:38:05 -05:00
Vincent Gee 55bdfe5dc3 This adds limiting the ghost data to a specific area around the client.
By default it is not included in the build, you must #define GHOSTSCOPING in the torqueConfig.h to enable it.
The distance can be set via the mission file by adding

visibleGhostDistance = "1000";

Or if it is not set in the mission file it will default to what is defined in torqueConfig.h #defined as GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION

The mission default distance can be overridden on a per connection basis by using gameconnection:setVisibleGhostDistance and gameconnection:getVisibleGhostDistance

The logic for setting the scoping distance was moved from shapebase in the original design to SceneObject so that it will affect cameras, players, etc.
2014-11-05 23:14:39 -05:00
Daniel Buckmaster 3082bb3adc Merge pull request #884 from GarageGames/development-3.6
Version 3.6.2
2014-11-05 20:28:01 +11:00
Vincent Gee acb192e2a5 Replaced a ton of ConsoleMethods with the DefineConsoleMethod Macro. 2014-11-03 22:42:51 -05:00
Daniel Buckmaster 19f91fee2b Added a setPosition function. 2014-10-28 14:10:22 +11:00
bank 62006e8b3c Remove unneeded double-initialization of the vars. 2014-10-19 14:30:46 +11:00
Daniel Buckmaster feec36731e Merge pull request #594 from LuisAntonRebollo/unit-tests-without-crash
Increased stability Torque3D: unit-tests running without a crash.
2014-06-16 10:57:04 +10:00
bank f3fc84738b Use fixed buffer size var when allocating return buffer from console.
Conflicts:
	Engine/source/T3D/missionArea.cpp
	Engine/source/gui/editor/guiDebugger.cpp
2014-06-11 13:09:55 +04:00
LuisAntonRebollo 18ba0646c0 Increased stability Torqu3D: unit-tests running without a crash. See the console.log after ran unitTest_runTests( "", true ). @signmotion 2014-05-25 16:50:19 +02:00
Daniel Buckmaster 1702573b78 Merge pull request #612 from GarageGames/platform-type-consistency
Platform type consistency
2014-05-10 11:40:40 +10:00
Daniel Buckmaster a42c92391a Merge pull request #601 from BeamNG/rename_GFXTextureProfile_None
Rename enum GFXTextureProfile::None for avoid conficts on Linux.
2014-05-10 11:01:18 +10:00
LuisAntonRebollo 7f46383eb5 Rename enum GFXTextureProfile::None for avoid conficts on Linux. 2014-04-07 00:03:52 +02:00
Daniel Buckmaster 87d9e245b7 Merge remote-tracking branch 'smally/platform_type_consistency' into platform-type-consistency
Conflicts:
	Engine/source/platform/platformCPUCount.cpp
2014-04-04 13:43:25 +11:00
Thomas Fischer 7239c791f2 Merge pull request #581 from tdev/vs2012_fixes
Visual Studio 2012 32Bit Level 4 Warning fixes
2014-03-17 10:02:19 +01:00
Thomas Fischer 489106ae5e replaced UNUSED and assert combination by a fixed up assert macro - thanks luis! :) 2014-03-15 12:50:38 +01:00
Thomas Fischer 2844ab6912 more VS2012 L4 warning fixes 2014-03-15 11:51:36 +01:00
Klaus Silveira 55cb5a6752 Removed redundant check 2013-12-08 01:23:24 -02:00
DavidWyand-GG 91e542b8ec SceneCullingState with culling and camera frustum
- Fix for issue https://github.com/GarageGames/Torque3D/issues/525  This
fix takes into account the skewed view into the world when you have a
projection offset and the ability to see further into the scene at the
edges opposite to the offset.
- SceneCullingState now has two frustum rather than one: a culling
frustum and camera frustum.
- The camera frustum should be referenced when you need the projection
matrix or don't want a skewed frustum.
- The culling frustum should be referenced during any scene culling or
when determining what dynamic geometry to render.  It currently skews
itself to take into account any projection offset (automatically
calculated in SceneCullingState constructor).
- When there is no projection offset, the camera frustum and culling
frustum are the same.  This usually means any time when not using the
Oculus Rift.
2013-11-07 15:07:16 -05:00
DavidWyand-GG 55c91d29aa Default value for WaterFogData plane distance
Set the default WaterFogData plane distance to be the same as global
bounds.  This solves an issue with the connection's control object
mistakenly thinking it is under a water plane in a debug build.
2013-11-04 13:24:16 -05:00
DavidWyand-GG 39ab93636c Update ReflectionManager on Scene Field Change
During side-by-side rendering the refraction texture needs to be updated
for both the left and right fields.  These changes add a new GFXDevice
event type to track when a field is about to be rendered.  The
ReflectionManager listens to this new event and ensures that the
refraction texture will be updated if it is referenced by a material.
2013-10-31 16:54:22 -04:00
DavidWyand-GG 2fc5adb536 PlaneReflector Support for Side-by-Side Rendering
- The PlaneReflector class now supports side-by-side rendering.  This
does mean that while in this rendering style that all planar reflections
are rendered twice, as reflection is a screen space effect from the eye
point of view.
- Planar reflections now work in the Oculus Rift.
- Modified GuiTSCtrl::onRender() to move up where the rendering style is
defined to just before the reflection manager has its turn.
2013-10-25 02:08:13 -04:00
DavidWyand-GG 5406afa884 DecalManager scene container fix
In reference to https://github.com/GarageGames/Torque3D/issues/474 this
is a general fix for all global bounds objects.
2013-09-27 12:15:44 -04:00
cpusci 7a8f46b19f Update for float, double and unsigned char, unsigned short, short, etc. char was left alone: read why here http://msdn.microsoft.com/en-us/library/cc953fe1.aspx 2013-08-04 16:58:59 -05:00
cpusci 4c35fd37af Simple pass over the codebase to standardize the platform types. 2013-08-04 16:26:01 -05:00
Daniel Buckmaster d9c731b73f Added PLC_Navigation hint for gathering navmesh polygon data. 2013-07-04 17:23:23 +10:00
David Wyand 2dcc7f0247 Merge pull request #310 from thecelloman/goodbyeDIF
Remove Interior Object format (DIF)
2013-04-20 13:44:11 -07:00
DavidWyand-GG b32e7688c2 Side by side rendering
- Side by side rendering implemented throughout the graphics pipeline.
- New GuiTSCtrl renderStyle property is set to "stereo side by side" to
activate.
- You set an IDisplayDevice on the GameConnection to define any vertical
FOV, projection offset, and stereo eye offset properties required for
the stereo rendering (no display device included with this commit).
- Full and Empty templates updated with correct scripts and shaders.
2013-04-09 15:19:18 -04:00
thecelloman b4ea1123dc Remove Interior Object format (DIF) 2013-04-05 12:39:26 -04:00
DavidWyand-GG 9ebc6ecf0d Merge branch 'development' of https://github.com/BoomBox/Torque3D into BoomBox-development 2012-11-09 10:56:38 -05:00
DavidWyand-GG cfb90f37e4 Fix for Issue #136 for Zoning Bug 2012-11-08 18:19:33 -05:00
DavidWyand-GG 0047842b33 Fix for Issue #124 for CustomMaterial Refraction 2012-11-08 16:00:52 -05:00
Steven Saric ac9d24deb4 Doc changes for RayInfo distance
Doc changes for the containerRayCast DefineEngineFunction to include the
distance.
2012-10-06 13:15:09 +08:00
Steven Saric 75baf20d5f Send back RayInfo distance with ContainerRayCast
Added an 8th word to ContainerRayCast's return, which is the distance.
2012-10-06 13:03:16 +08:00
DavidWyand-GG 7dbfe6994d Engine directory for ticket #1 2012-09-19 11:15:01 -04:00