Commit Graph

9612 Commits

Author SHA1 Message Date
Lasse Öörni
2f28445d94 Removed the "directional light occluded shadowcaster" -optimization, as it may produce missing light at the far distance when shadow starts to fade. 2011-09-30 07:13:20 +00:00
Lasse Öörni
589c0ee141 Expanded the lit base pass optimization to cover also the first spot or point light affecting a drawable.
Do not render light to stencil if camera is inside the light volume.
Added optimization for directional light shadow casters that are fully occluded by another shadow caster: do not render the lit pass for them.
Removed the alpha masking hint. Alpha test no longer gives the batch a lower priority.
2011-09-29 22:53:16 +00:00
Lasse Öörni
399137b540 Force occlusion buffer to an even pixel height to prevent slightly different aspect ratio from generating worse occlusion results. 2011-09-29 19:05:25 +00:00
Lasse Öörni
a827f8c1fb Fixed potential bug in handling the first light affecting a drawable. 2011-09-29 06:54:03 +00:00
Lasse Öörni
b9dd734539 Visualize also the node of the currently hovered drawable or collision shape. 2011-09-28 22:33:06 +00:00
Lasse Öörni
f26ff1c2f6 Sort batch groups front to back according to the distance of the first batch to reduce overdraw. 2011-09-28 22:08:18 +00:00
Lasse Öörni
457aa72c37 When adding or removing ListView items, update the selection only if something was selected in the first place. 2011-09-28 20:26:50 +00:00
Lasse Öörni
baa3efacc3 Fixed the Data directory getting removed in the editor, if a scene was first loaded from there, and then from elsewhere.
Added scene node visualization to DebugRenderer.
2011-09-28 20:14:48 +00:00
Lasse Öörni
fd06d3cf4a Fixed component ID overwrite when copy-pasting scene nodes in the editor.
Fixed light's bounding box not updating on light type, range, fov or aspect ratio change.
Fixed possible light stencil volume clipping bug when approaching a point light.
Fall back to non-specular or non-shadowed shaders if the desired light shader variation does not exist.
Unified order of light vertex & pixel shader variations.
Added support for enum accessor attributes.
Added light stencil mask toggle in the editor.
2011-09-28 19:19:28 +00:00
Lasse Öörni
cd2de4b25b Shadow map UV offsets optimization. 2011-09-28 06:49:33 +00:00
Lasse Öörni
5139e5322e Use alpha test instead of discard in shadow shaders for very slight speed gain. 2011-09-27 21:21:27 +00:00
Lasse Öörni
9ba1e748a5 Fixed unclamped specular calculations. 2011-09-27 19:31:18 +00:00
Lasse Öörni
f456812466 Fixed Light attribute names.
Fixed GLFW mouse wheel input.
2011-09-27 19:18:36 +00:00
Lasse Öörni
b7c32f5887 Fixed unlit shaders possibly referring to nonexistent vertex normal, causing the D3D debug runtime to complain.
Set z = w in skybox vertex shader, instead of rewriting depth in the pixel shader.
Fixed GLSL shaders.
2011-09-27 18:29:06 +00:00
Lasse Öörni
8f921642cd Returned to Blinn-Phong equation for more pleasing specular highlights. 2011-09-27 06:59:55 +00:00
Lasse Öörni
80a6948b22 Large rendering architecture refactoring.
Optimized shaders to do more work in the vertex shader.
Deferred rendering removed, at least for now.
Switched to RGB normal maps, with specular intensity in the alpha channel. Removed NormalMapTool.
Optimization of light influence on objects by stencil masking.
Split shadowed lights are now rendered in one pass. A virtual shadow depth cube texture is used for point lights.
Refactored shadow map allocation. Allow to use lower resolution shadow maps than quarter size.
Added the Polyhedron math object, used for improved shadow map focusing.
Reversed the convention for the plane intercept parameter.
Math-related code cleanup.
2011-09-26 21:56:31 +00:00
Lasse Öörni
7e00d6aa1d Removed PortAudio from Direct3D9 build, as it is not used.
Fixed check in setting the scissor rectangle.
2011-09-22 17:02:25 +00:00
Lasse Öörni
babd8050a1 Eliminated temporary vector allocation during instanced rendering. 2011-09-16 20:27:06 +00:00
Lasse Öörni
18edecbb70 Added release history. 2011-09-11 08:02:10 +00:00
Lasse Öörni
9160dbb0c9 Fixed shadow quality settings in the editor. 2011-09-11 07:30:08 +00:00
Lasse Öörni
f67165bcf3 Documentation fixes. 2011-09-10 20:06:37 +00:00
Lasse Öörni
fe495f6bcc Added deferred fallback mode, which renders the G-buffer in 2 passes.
Made the OpenGL extensions mandatory to unify expected functionality with Direct3D9 mode.
2011-09-10 19:28:59 +00:00
Lasse Öörni
1e086c84f6 For less confusing code, do not allocate a depth stencil into colorShadowMaps_ in fallback mode. Instead define a separate variable shadowDepthStencil_. 2011-09-09 21:10:39 +00:00
Lasse Öörni
cbad673d09 Show profiler by default in TestSceneOld. 2011-09-09 20:49:21 +00:00
Lasse Öörni
d6a3f89393 Added low-quality (1-sample) shadow filtering option.
Refactored fallback shaders so that they are compiled as variations into the SM2 directory.
2011-09-09 20:41:56 +00:00
Lasse Öörni
514ef8966d Fixed OpenGL path.
Documentation update.
2011-09-09 07:51:13 +00:00
Lasse Öörni
a25592dfe9 Fixed uninitialized variable. 2011-09-08 23:24:13 +00:00
Lasse Öörni
292ebed51f Added initial fallback mode (no MRT, no hardware shadows.) 2011-09-08 23:12:48 +00:00
Lasse Öörni
c65998f0e3 For a slight speed gain, do not draw a GBufferFill fullscreen quad when hardware depth is available, instead just clear the diffuse buffer. 2011-09-08 07:03:47 +00:00
Lasse Öörni
1fd39c6922 Fixed TestSceneOld to randomize the scene similarly as in Urho3D 1.0.
Comments cleanup.
2011-09-08 06:40:58 +00:00
Lasse Öörni
91500591c3 Reverted the previous shader parameter query optimization. Instead, added possibility to rehash a hashmap/hashset manually to a specified bucket count. 2011-09-07 06:48:03 +00:00
Lasse Öörni
1c06a3b463 Use HashMap instead of Map for the shader variations. 2011-09-06 21:28:32 +00:00
Lasse Öörni
0e337f493d Optimized checking whether shader parameters need updating. 2011-09-06 20:44:06 +00:00
Lasse Öörni
e2e29ff790 Re-enabled AngelScript type caching.
Eliminated constant reallocation of lighting related helper hashsets/hashmaps in View.
2011-09-06 19:11:29 +00:00
Lasse Öörni
b9d7839d94 OctreeQuery micro-optimizations. 2011-09-06 06:50:42 +00:00
Lasse Öörni
ad6243870b Updated to newest kNet & AngelScript.
Fixed spot light shadow map focusing.
Code cleanup.
2011-09-05 19:17:44 +00:00
Lasse Öörni
a5089929b6 Documentation update. 2011-09-05 07:02:03 +00:00
Lasse Öörni
fc3896fe02 Added configurable instancing group minimum size and maximum triangles per instanced object. 2011-09-05 06:39:28 +00:00
Lasse Öörni
80aee649df Re-enabled lit base pass optimization, with more careful checks to ensure proper rendering order.
Fixed temporal AA shader GLSL syntax for ATI GPUs.
Code cleanup.
2011-09-04 14:30:42 +00:00
Lasse Öörni
8f2005f7b8 Fixed temporal antialiasing shader when INTZ depth is not used. 2011-09-02 18:44:31 +00:00
Lasse Öörni
a4508509ee Documentation edits. 2011-09-01 10:42:31 +00:00
Lasse Öörni
56be63eca6 Fixed shader code. 2011-09-01 07:21:40 +00:00
Lasse Öörni
a89cb22161 Replaced edge filtering with temporal antialiasing with ghosting prevention. 2011-09-01 07:19:32 +00:00
Lasse Öörni
6b86e66f93 More pleasant formatting of shader variation not found -error. 2011-08-30 11:52:51 +00:00
Lasse Öörni
c590973745 Print one-time error if shader variation is not found. 2011-08-30 06:55:24 +00:00
Lasse Öörni
275391a561 Fixed SplitPath() getting confused by ./ character sequence. 2011-08-29 22:20:56 +00:00
Lasse Öörni
fc3651ab51 Fixed CMakeLists.txt 2011-08-29 20:16:54 +00:00
Lasse Öörni
3c0298dcf8 Updated documentation on G-buffer setup. 2011-08-29 20:00:26 +00:00
Lasse Öörni
630edabb4b Fixed directional lights and fog in OpenGL orthographic mode. 2011-08-29 18:22:11 +00:00
Lasse Öörni
40c8306691 Added triple buffering option. On OpenGL it is a no-op.
Removed the pass HashMap from Technique. Now it is just a static array.
2011-08-29 17:45:48 +00:00