### port to full deferred shading
### fallback forward renderer
### Reuse deferred view Z-Buffer for lightview and forward view
### Use shared rendertargets whenever possible
### store material properties in 1D texture (1x256) instead of 3d. Fetch with material ID. Max of 256 materials. 4 Properties per material possible.
- OR store material properties in 2D texture. Fetch with material ID. -> More material properties in one texture. (Use y uv for property adressing. texture-height * 4 values per material possible)
* compute brdf LUT on the fly using actual shaders & RTs
* get on-the-fly volumetric texture creation to work ... this might get hard without a dll
### dof (port from old shade-c)
### pseudo bokeh dof
### fix dof edgebleeding
- fix dof foreground objects (should have blurred edges)
### ssao (port from old shade-c)
### ssdo
* MLAA (port from old shade-c) FXAA SMAA DLAA etc
- auto stippling or some other way to get smooth alpha in deferred view
### refractions (port from old shade-c)
- no hard model edges for shield and shieldburn -> multiply alpha with velvety
* water
- refract example fx
### (soft) particles/fog (port from old shade-c)
###- Acknex particle: render in forward view. use ZBuffer from gBuffer generation!
+++ projectors
+++ local lights and shadows (port from old shade-c)
### Get volumetric textures working
- light probes (save lightprobes in volumetric texture, then fetch/lerp correct probe(s) in deferred_finalize.fx based on ID)
- distance based lights projection map: use a volmap with 2 textures, one sharp, one blurred. Fetch projection based on attenuation
+++ directional lights and shadows (port from old shade-c)
- cloud projection map for directional lights
- "volumetric" decal. Project Texture using a cube and worldposition OR cube+matrix (like spotlight)
- transparent decals: render in forward view. multiply with deferredLighting buffer. use ZBuffer from gBuffer generation
- wind vertex animation for gBuffer materials
- POM/PM for gBuffer materials
- detail diffuse/normalmap for gBuffer materials (simple and tri-planar)
* terrain (using volumetric maps for up to 255 textures), blend using double noise. Using grayscale 8bit(=255 values) blendmap or slope/heightbased
* teamcolor for gBuffer materials
- CSSM shadows (Boris Vorontsov)...this might get hard
### #define for mtlSkin instead of entSkin for gBuffer materials
- screenspace lensflare with maskmap/precomputed lensflaremap
http://www.gamedev.net/topic/620699-bf3-lens-flares/- screenspace lensflare ->
http://www.john-chapman.net/content.php?id=18- dynamic shadowmap accumulation ->
http://www.john-chapman.net/content.php?id=14- volumetric spotlights ->
http://www.john-chapman.net/content.php?id=16### better ssao (?) ->
http://www.john-chapman.net/content.php?id=8- faster MLAA (?) ->
http://www.gamedev.net/topic/620689-smlaa-a-less-blurry-mlaa/- film grain post process
- godrays (port from old shade-c)
- screen space sss
->
http://www.iryoku.com/sssss/ ->
http://www.iryoku.com/translucency/- screen space reflections (mirrored UVs based on screen-space nomals and view dir ... ?)
- gamma correction
+++ xml based materials (define material id, brdf lightfunction, diffuse roughness, diffuse wrap)
- xml based settings with load/save function
- in-game shader adjustment with save/load function for effects and objects
- Get A8 somehow
- add support for GPU bones
- create custom PSSM shader, but use A8's PSSM functions