Commit graph

185 commits

Author SHA1 Message Date
Jeff Hutchinson 6e072dbf91 Merge branch 'Preview4_0_DevHead' into tsneo 2021-08-29 22:28:42 -04:00
AzaezelX ad05a78946 sanity check nodelist presence 2021-08-29 01:11:29 -05:00
Jeff Hutchinson 717c7acca9 Merge remote-tracking branch 'devhead/Preview4_0' into tsneo
# Conflicts:
#	Templates/BaseGame/game/data/ui/guis/loadingGui.gui
#	Templates/BaseGame/game/data/ui/guis/mainMenu.gui
#	Templates/BaseGame/game/tools/MainEditor/guis/MainEditorWindow.gui
#	Templates/BaseGame/game/tools/assetBrowser/guis/assetPreviewButtonsTemplate.gui
#	Templates/BaseGame/game/tools/forestEditor/brushes.tscript
2021-08-13 20:14:39 -04:00
AzaezelX f185bef8a3 leverage isScriptFile
(also initialize  scattersky. mNightCubemapName = StringTable->EmptyString();)
2021-07-22 12:02:23 -05:00
Areloch 5525f8ecdd Converts all game, gui editor, and system classes to utilize assets
Processed core, tools and default modules to utilize assets
Converted all console types that were string based, such as TypeImageFilename to utilize const char*/the string table, which avoids a lot of type swapping shenanigans and avoids string corruption
Removed unneeded MainEditor mockup module
Removed some unused/duplicate image assets from the tools
2021-07-19 01:07:08 -05:00
Jeff Hutchinson 35500a87c6 initial port of the new interpreter 2021-03-30 19:33:19 -04:00
Brian Roberts 4de1449c4b
Merge pull request #442 from rextimmy/gfx_cleanup
Removed old fixed function code from GFX.
2021-01-05 03:00:04 -06:00
Areloch 8585278fe4 Adds autoimport logic for materials if the materialDefinition already exists
Adds some additional utility functions to AssetImporter for easier access to setup
Corrects handling for legacy field names with meshRoad
2021-01-05 00:58:18 -06:00
rextimmy 5a933c00d3 Removed old fixed function code from GFX. 2021-01-05 12:57:17 +10:00
Areloch bf5b26f734 Assetifies MeshRoad, Decal Road, and the material slot of GroundCover
Creates a networked and non-networked variant of DECLARE_MATERIALASSET macro
2021-01-03 08:58:53 -06:00
GoldenThumbs d168df03e0 Correct bump map in waterObject.cpp being in sRGB space 2020-12-11 19:07:19 -06:00
Brian Roberts 0c29847943
Merge pull request #343 from lukaspj/feature/mesh-road-profile-editor
Profile editor for the meshRoad object
2020-10-03 17:48:00 -05:00
Lukas Aldershaab 973fd44c6a Profile editor for the meshRoad object
credit to Ryan Mounts (RDM)

found originally at http://www.garagegames.com/community/forums/viewthread/105391
2020-10-04 00:19:43 +02:00
Lukas Aldershaab c999baf7ed Moves from using dStrCmp to the new String::compare static functions. Keeps things cleaner, consistent, and works with intellisense. 2020-10-03 14:37:55 +02:00
Areloch 8956559bfd Various misc. tweaks and fixes based on static code analysis to minimize/fix memleaks, crashes, or other performance impacting code. 2020-09-19 18:25:10 -05:00
AzaezelX 6b2db37f8a followup to array acess breaches: waterobject and guiparticlegraphctrl need to check >=, not just > 2020-07-27 10:45:45 -05:00
AzaezelX 454192ed02 from @rextimmy new isbackground shader feature. used the same z=w trick we've done before to force things to render behind everything else. applied to fog 2020-07-14 14:08:12 -05:00
AzaezelX 1efb687867 uninitialized variables-environment and forrest 2020-05-11 14:56:04 -05:00
AzaezelX e9415a0994 uninitialized variables-collision 2020-05-11 14:33:59 -05:00
Areloch 6ade6f08ce Updated Assimp
Added initial behavior for ImageAssets to hold a list of GFX resources of different texture profiles to avoid mem leaks with incorrect-typed usages
Added function to ImageAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found
Added function to ShapeAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found
Disabled fields for dynamic and static shadowmap refresh rates
Moved noShape model to core/rendering/shapes to place it in a more logical module position
Added an include to avoid undefined type compile error and removed unneeded semicolon from zone code
Added call to reload probe textures when a reloadTextures call is made
Adjusted default directional light shadowmap settings to not be as extreme
Added utility function to probe manager to allow any class to request a 'best fit' list of probes that would affect a given location, allowing other classes such as fog or particles to utilize IBL. Also updated probeManager's forward rendering to utilize same function to reduce code duplication.
Shifted shape loader code to utilize assimp for loader consistency and testing
Changed render bin used for SSAO postfx so it runs at the right time
Made Core_Rendering module scan for assets
Updated loose file references to a number of assets to follow proper formatting
Refactored asset import code to follow a more consistent object heirarchy structure on importing assets, allowing more reliable cross-referencing between inbound items
Updated asset import logic for materials/images so that they properly utilize ImageType. Images correctly save out the assigned image type, materials reference the images' type to know what map slot they should be used in. Importer logic also updated to better find-and-add associated images based on type.
Cleaned up a bunch of old, outdated code in the asset importer
Added initial handling for in-place importing of files without needing to process them through the UI.
Added ability to edit module script from RMB context menu if torsion path is set
Updated list field code for variable inspector to utilize correct ownerObject field
2020-03-19 09:47:38 -05:00
Areloch a43233d9c9 Updated move folder behavior to better update the module and asset databases of changes
added dynamic reload on editor profiles when the theme is changed via editor
Adjusted direct filename fields to just be hidden, not disabled(avoids breaking legacy content)
Added ability to update asset references in a given folder path
Added WIP ability to scan for and update module dependencies
2019-12-08 15:54:37 -06:00
Areloch 09c651c26d Corrected profile for GameObjectAsset type field button
Initial implementation of changeable TSStatic materials via material slots and drag and drop of material assets onto world editor from AB
Updated Volumetric Fog to support ShapeAsset for it's model data
Added cmake option to hide literal filename fields if the class supports asset fields for the same input
Added light viz modes to see diffuse, specular and detail lighting modes(currently just sun)
New raycast console function to return back material of hit object
Moved GameObject logic to SceneObject and started fixing up of editor behavior to allow any SceneObject to be converted into a GO, along with all supported behavior such as instance-template management and spawning GO via drag-and-drop from AB
Fixed inspector field tooltip text to be positioned in inspector footer properly again
Drag and drop of shape asset attempts to drop at raycast position now, instead of just at the camera ray position
2019-12-05 20:42:47 -06:00
AzaezelX 27d6665d21 set volumetric fog to use the standard window-resized trigger for it's update 2019-10-17 09:54:38 -05:00
AzaezelX c680471378 looks like the with the latest translucnency work, dynamic shadows are no longer triggering malformed values in forward lit materials, so flipped that back on 2019-09-20 14:45:05 -05:00
Areloch e83ec69292 Merge branch 'PBR_ProbeArrayGLWIP' of https://github.com/Azaezel/Torque3D into development 2019-05-06 01:50:45 -05:00
Areloch ba2e9f1547 Merge pull request #2342 from Azaezel/volFogFix
fix(es) for volumetric fog when dealing with dedicated servers.
2019-05-04 11:24:18 -05:00
AzaezelX dd1470202d Merge branch 'development' of https://github.com/GarageGames/Torque3D into PBR_ProbeArrayGLWIP
# Conflicts:
#	Engine/source/gfx/D3D11/gfxD3D11Device.cpp
#	Engine/source/lighting/lightManager.cpp
#	Templates/Full/game/levels/Empty Room.mis
#	Templates/Full/game/levels/Empty Terrain.mis
2019-05-01 23:18:31 -05:00
Areloch f71db60e78 Merge pull request #2336 from wcbx/wcbx-cloudtexprofile
Fixes artifacts in Cloud Layer.
2019-03-31 12:31:37 -05:00
wcbx 89989e08dd Fixes artifacts in Cloud Layer.
Cloud Layer uses normal. This applies appropriate profile for normal texture.
2019-03-10 23:08:50 -04:00
Areloch 9bf8337e4a Initial implementation of the Scene object for handling scenes/levels in a more consistent and deliberate way. 2019-02-23 15:55:28 -06:00
Azaezel 1eed979a9c Merge branch 'method_Unmangle' into PBR_PR 2018-12-12 14:54:22 -06:00
Areloch 6cf0c9e360 Merge branch 'development' into EngineAPI-Refactor 2018-12-09 14:48:50 -06:00
Azaezel 518bcaaabf from @rextimmy: shifts sybox rendering to last (kils a bit of overdraw) 2018-11-18 06:36:16 -06:00
chaigler cc77e6d301 Fix for ScatterSky zOffset
zOffset was mistakenly applied to wrong transform matrix. Fixes #1721.
2018-07-07 13:16:46 -04:00
Lukas Joergensen 76908eae3c Eliminate DefineConsoleMethod 2018-04-17 21:01:50 +02:00
Lukas Joergensen e718841467 Eliminate DefineConsoleFunction 2018-04-17 20:54:08 +02:00
Azaezel 1b548e5304 cleanups for decal and mesh road, and the meshroad and river editors 2018-03-14 17:43:03 -05:00
Azaezel 1e65a01cf9 shadowvar cleanups for scattersky and accumulationVolume 2018-03-13 21:29:09 -05:00
Azaezel 1c62080f7f cleaned up member::radius 2018-03-13 15:31:00 -05:00
Azaezel c98f257cae more compiler compliant cleanups plus a full set of tsMesh::foo to tsmesh::mFoo class var conversions for consistency 2018-03-13 14:53:23 -05:00
Azaezel e2d27952aa tsmesh: parentMesh and indicies to mParentMesh and mIndicies (usual deal, complaints about method vars or temp ones potentially conflicting with class vars) 2018-03-13 11:36:36 -05:00
Azaezel 4fc6ce7b8b buf clarification. mModifLightRays logic cleanup 2018-03-13 02:11:57 -05:00
Azaezel 654fc29dc2 bounds to mBounds conflict avoidance 2018-03-13 01:05:15 -05:00
Marc Chapman b8f722e2f9 Phase 2: #ifdef for Zodiacs and particles 2018-01-23 22:03:18 +00:00
Areloch e023cf3a60 Merge pull request #2056 from Bloodknight/afx_merge_main
Afx merge main
2017-10-11 08:47:47 -05:00
Azaezel d2dd2b4e1a fix(es) for volumetric fog when dealing with dedicated servers. 2017-09-15 13:46:19 -05:00
Marc Chapman 3219735087 meshroad-zodiacs -- MeshRoad customizations for rendering zodiacs on them.
enhanced-meshroad -- adds option for building top-surface-only PolyList.
polysoup-zodiacs -- Changes made for rendering zodiacs on polysoup objects.
groundplane-zodiacs -- groundPlane customizations for rendering zodiacs on them.
special-types -- defines type bits for interior-like and terrain-like types.
special-types -- defines a type bit for polysoup objects.
2017-07-26 22:05:04 +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
OTHGMars 84c74ce326 Fixes a memory leak in the VolumetricFog object and corrects an array alloc mismatch. Once objects were being deleted on the client, the SAFE_DELETE(z_buf) needed to be removed from the destructor. This was causing a runtime crash (release only) because z_buf was still registered with the GFX device. 2017-05-06 20:57:10 -04: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 af8fbf0e3a Goes and replaces the references/names that use Prepass to be Deferred, since we're actually using deferred. 2017-04-11 00:23:14 -05:00
Thomas "elfprince13" Dickerson bcc5459818 whitespace 2017-01-11 23:34:46 -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
Areloch 4c457b7f94 Hides the light's dynamic refresh rate field to avoid confusion, leaving only the static refresh rate field to be edited. 2016-11-09 23:46:34 -06:00
Anis 60e258e5a9 Merge pull request #1806 from Azaezel/byeByeVarVar2
more unused variable cleanups
2016-10-23 21:04:36 +02: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 c57b1a8b70 clang reports: unclear || + && and &+| mixes. 2016-10-14 17:26:13 -05:00
RexTimmy dd64004eaf MacOS platform support. 2016-09-28 11:09:48 +10:00
James Urquhart c6d2456a7c Fix lens flares in VR 2016-09-11 22:42:42 +01:00
James Urquhart 3496c549b5 Hardware Skinning Support
- Supports GL, D3D9 & D3D11
- Extends vertex formats & shadergen to support blend indices and weights
- Adds basic support for using 4x3 matrices for shader constants
- Supports software fallback
2016-08-21 01:43:30 +01:00
Areloch 6a40b8bb84 Merge pull request #1559 from rextimmy/dx11_clean
Direct3D11 Support
2016-03-29 00:51:23 -05:00
rextimmy 41e5caf22b Direct3D11 Engine/source changes 2016-03-20 21:52:11 +10:00
Azaezel ed264e4e12 from @rextimmy automatically adds a sky feature to skies. (render sorting and orientation. previously required setting in script.) 2016-03-16 18:10:07 -05:00
Areloch 908be4818f Merge pull request #1519 from Azaezel/deferredShading
Deferred shading
2016-02-27 15:08:20 -06:00
Anis A. Hireche 10cb6ab9c4 Merge remote-tracking branch 'refs/remotes/origin/development' into pr/1153 2016-02-26 14:39:38 +01: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
Areloch 21be97d206 Missed a few files. 2015-12-01 00:49:37 -06:00
Azaezel b6bd8c863c removes StaticObjectType flag from water objects.
https://github.com/GarageGames/Torque3D/issues/1458
2015-11-20 10:52:57 -06:00
Areloch 92aa785bb2 Merge pull request #1442 from Azaezel/shadow_caching
This all seems to work pretty well.
2015-11-12 12:49:58 -06:00
Azaezel f4d40bf1b0 hooks meshroads up to the material system for castrays (at a minimum, sound playback) 2015-11-05 10:18:17 -06:00
Areloch 165cdb64e9 Merge pull request #1322 from Areloch/String_isEmpty_Convert
Replace uses of dStrIsEmpty with new String::isEmpty
2015-10-31 23:40:13 -05:00
rextimmy 27720cb786 Corrected SkyBox vertex format 2015-10-26 21:08:12 +10:00
Areloch 8253bcc343 Merge pull request #1446 from rextimmy/water_vertex_format_fix
Looks to work fine. Thanks!
2015-10-24 02:12:46 -05:00
rextimmy 9c6ff1775b Removed unused vertex colors from GFXWaterVertex 2015-10-22 21:54:35 +10:00
rextimmy af9ad17ad6 Replaced ScatterSkyVertex declaration with default GFXVertexP in ScatterSky. 2015-10-19 21:15:59 +10:00
rextimmy 246785a8bf Removed unused vertex formats from ScatterSky 2015-10-16 21:30:39 +10: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
Daniel Buckmaster 4f2f1ca4e1 Merge pull request #1356 from Areloch/PVS_Cleanup_813
Convert un-modified function arguments to const references.
2015-07-20 22:55:22 +10:00
Areloch 11398bb04e Issue found with PVS-Studio:
A lot of instances where some function args are not actually modified in any way, meaning that it is better for performance to convert them into const references. This prevents an additional copy, which can help performance.
2015-07-16 22:02:18 -05: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
Areloch 6e8fa7215a Moves from using dStrIsEmpty to the new String::isEmpty static function. Keeps things cleaner, consistent, and works with intellisense. 2015-06-06 17:40:49 -05:00
Daniel Buckmaster 497a15cfd0 Merge pull request #1214 from bpay/cppcheck-cleaning
Fix some issues flagged by cppcheck
2015-03-01 18:27:40 +11:00
Ben Payne f67a0353d0 Review fixes 2015-02-23 14:57:37 -05:00
Ben Payne 0ffd7f5620 Fix member vars left uninitialized in constructors 2015-02-20 18:41:51 -05:00
John3 50e2221a40 little typo 2015-02-15 16:15:45 -06:00
Ben Payne c19a70814c Tidy up and fix the various Assert macros
Rephrase the macros so that they can be used in expressions, and
properly require semicolons. And add the semicolons where missing.
2015-02-02 18:37:48 -05:00
Daniel Buckmaster bd437cda1c Merge branch 'development' into walkabout
Conflicts:
	Engine/source/T3D/aiPlayer.cpp
2015-01-29 21:38:20 +11:00
Daniel Buckmaster 014b566014 Merge remote-tracking branch 'gg/development-3.6' into development
Conflicts:
	Engine/source/T3D/gameFunctions.cpp
2015-01-29 21:17:38 +11:00
Luis Anton Rebollo 6492028bb2 Merge pull request #1035 from bpay/memfixes
Memfixes
2015-01-25 13:42:32 +01:00
LuisAntonRebollo 4e9034854d Linux implementation. Include changes for gcc x64. 2015-01-24 22:08:26 +01:00
Daniel Buckmaster 7ab6731f51 Merge branch 'development' into walkabout
Conflicts:
	Templates/Empty/game/tools/worldEditor/scripts/editors/creator.ed.cs
	Templates/Full/game/tools/worldEditor/scripts/editors/creator.ed.cs
2015-01-02 14:45:20 +11:00
Daniel Buckmaster 93b0179019 Merge pull request #1002 from Winterleaf/Fix-ScatterSky-Zindex
Z Offset for Scattersky to fix the rendering issue at high altitudes.
2015-01-02 13:04:24 +11:00
Daniel Buckmaster ae284a89ec Merge branch 'development' into defineconsolemethod
Conflicts:
	Engine/source/materials/materialDefinition.cpp
2014-12-26 13:22:16 +11:00
LuisAntonRebollo 7453610563 Fix persistent underwater effect. 2014-12-23 22:32:21 +01:00
Daniel Buckmaster 3ab048c5b0 Fixes after feedback from Luis.
* Made use of dStrIsEmpty in more locations (and fixed it :P)
 * Removed commented-out code
 * Corrected default params
 * Fixed some console warning formats
 * Removed tabs
 * Corrected setExtent API
2014-12-23 18:48:02 +11: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
Ben Payne 68b5e7b517 Fix more use-after-delete errors 2014-12-11 19:09:01 -05:00