Started shader refactoring.
- Removed ShaderParser
- Shader variations are requested by defines
- Shader class does not need to be render API specific
- Added shader defines to Pass & RenderPathCommand
- GLSL vertex/pixel shaders compile from the same file
- Converted the Basic & Stencil GLSL shaders
Continued shader refactoring.
- Removed heightfog techniques, which will be replaced with in-engine shader variations
- Fixed LitSolid shader and some basic techniques
- If Pass specifies its own shaders, the defines from Technique aren't used
- Technique can specify the alphamask property globally for passes to avoid repetition
Optimize Shader::SanitateDefines(). In debug mode, check that shader code uses each define.
Detect deferred light volume batch and subtract camera position only in that case to allow the pixel shader light parameters (light position, shadow matrices etc.) to also be used in forward rendering if necessary.
Fixed GLSL deferred lighting. Added profiling block for Renderer::GetShader().
Merge branch 'master' into shader-refactor
Optimized Renderer::GetShader() so that caching shader variation pointers becomes unnecessary for the most part.
Avoid string allocations during View::Define() and Renderer::GetShader().
Initial refactoring of Direct3D9 shaders. ShaderCompiler removed. Bytecode not cached into files yet.
Refactored LitParticle shader & technique. Try to reduce error prints for missing shaders in Renderer::GetShader().
Load/save cached binary HLSL shaders. Report SM3 supported on OpenGL to simplify code.
Removed the "view texture" abstraction, which is unnecessary now, as all deferred renderpaths write directly to the destination rendertarget. Fixes #166.
Refactored techniques + more GLSL & HLSL shaders. Fixed shader code loading for cases where only vertex or pixel shader source is present.
Comment out sampler uniforms in GLSL vertex shaders.
Changed the Direct3D library fallback mechanism: on MinGW the SDK is never searched for, because if it is found, the libraries likely are incompatible. Instead the fallback libraries are set in Urho3D-CMake-magic.cmake if the SDK was not found or not searched for. Documented the use of MinGW-w64 to enable a fully functional Direct3D build.
Merge branch 'master' into shader-refactor
Refactored the basic postprocess shaders (bloom, greyscale, edgefilter.)
Updated documentation for techniques, shaders and renderpaths.
Minor documentation edit.
Added height fog mode boolean to Zone. Apply height fog shaders automatically. Changed height fog parameters to be relative to the zone node.