Commit graph

27 commits

Author SHA1 Message Date
AzaezelX
d14317d795 largely based on work by @rextimmy: add premultiplied alpha 2019-11-22 10:02:01 -06:00
Areloch
fa9f920755 WIP of updating terrain editor to work with assets
Fix minor UI issues for asset browser
included folder 'asset type' script
2019-11-06 00:23:07 -06:00
Areloch
ff871f37e3 Added refactor of Editor Settings window
Various fixes for asset handling.
WIP of crash tracking
2019-06-03 02:47:30 -05:00
Areloch
6073bc5551 Adds test shapes of Kork and SpaceOrc
Sidestep of memleak from CSF at the moment
Minor fixes and corrections with asset importing and loose files
WIP of updated options menu
2019-05-28 17:24:29 -05:00
AzaezelX
80ec569c26 Merge branch 'CustomShaderFeaturesPR' of https://github.com/Areloch/Torque3D into alpha40Macwork
# Conflicts:
#	Engine/source/materials/materialDefinition.cpp
#	Engine/source/materials/processedFFMaterial.h
#	Engine/source/materials/processedShaderMaterial.cpp
#	Engine/source/renderInstance/renderBinManager.cpp
#	Engine/source/renderInstance/renderGlowMgr.cpp
#	Engine/source/renderInstance/renderMeshMgr.cpp
#	Engine/source/renderInstance/renderPassManager.h
#	Engine/source/renderInstance/renderTranslucentMgr.cpp
#	Engine/source/shaderGen/customShaderFeature.cpp
#	Engine/source/shaderGen/customShaderFeature.h
2019-05-22 23:36:15 -05:00
Areloch
9a63761627 Initial implementation of Custom Shader Features 2019-05-17 01:20:19 -05:00
Areloch
ae11d3548d Merge branch 'ModernEditorLayoutWIP' of https://github.com/Areloch/Torque3D into development 2019-05-13 00:28:23 -05:00
Areloch
741fcaed5a Merge branch 'CustomShaderFeatures' of https://github.com/Areloch/Torque3D into development 2019-05-11 21:53:08 -05:00
AzaezelX
54cf07fa94 strip out unused pixspecular to cut down on sources of confusion 2019-05-05 20:10:14 -05:00
Azaezel
85d8c7a2de console conversion 2018-12-12 16:01:26 -06:00
Azaezel
8e534dd0c9 Merge branch 'method_Unmangle' into PBR_PR 2018-12-12 14:54:22 -06:00
Areloch
ef5e3a5271 Core implementation of Physical Based Rendering. 2018-09-15 20:19:57 -05:00
Lukas Joergensen
3c99ef73a9 Eliminate DefineConsoleMethod 2018-04-17 21:01:50 +02:00
Glenn Smith
a94587af43 Use strncpy instead of strcpy because again, buffer overflows 2018-03-06 02:35:33 -05:00
Glenn Smith
1728fe39ad Use strncat instead of strcat to prevent some buffer overflows 2018-03-06 00:48:44 -05:00
Areloch
a28914e695 begun adding uniform hooks 2017-10-07 14:36:58 -05:00
Areloch
0e2ef6a889 Initial implementation of Custom Shader Features. 2017-10-05 17:04:51 -05:00
Areloch
0801a3cca8 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
Azaezel
e475b3060b won't need that any more after this 2016-03-20 16:51:24 -05: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
b778121fc4 castDynamicShadows defaults to false, flipped it over to true for materials on mobile/animated assets. 2015-11-02 23:06:51 -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
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
Vincent Gee
acb192e2a5 Replaced a ton of ConsoleMethods with the DefineConsoleMethod Macro. 2014-11-03 22:42:51 -05:00
DavidWyand-GG
17113d3ba5 Blinn-Phong Specular Changes
Based on the work done here:
http://www.garagegames.com/community/blogs/view/21032
2013-10-29 15:10:23 -04:00
DavidWyand-GG
7dbfe6994d Engine directory for ticket #1 2012-09-19 11:15:01 -04:00