Christoph Oelckers
3e2a17538b
- fixed: HUD weapons were affected by dynamic lights even when the CVARs said that they shouldn't.
2014-10-06 09:05:42 +02:00
Christoph Oelckers
48da2f87bb
- fixed: The light buffer index must not be reset between rendering a camera texture and the main scene.
...
Since rendering is asynchronous, the camera texture scene may not be finished once the main scene's lights get filled in. Unfortunately forcing a synchronization with glFinisg has bad side effects on performance the only remaining option is to use separate parts of the buffer for both scenes, which in extreme cases may increase the light buffer's size - but on modern hardware that shouldn't be a problem.
2014-09-21 21:01:11 +02:00
Christoph Oelckers
7359631a43
- fixed weapon drawing rules to account for the death camera.
2014-09-21 11:08:38 +02:00
Christoph Oelckers
4682736585
- fixed: non-tiled mid textures on a fog boundary require some special clamping to be performed in the shader.
2014-09-21 11:08:17 +02:00
Christoph Oelckers
43e2d704a3
- always use glPolygonOffset to render translucent geometry.
2014-09-20 09:04:36 +02:00
Christoph Oelckers
92dcf2e5ef
- fixed some of those supremely annoying and supremely pointless GCC/Clang compiler warnings.
2014-09-17 11:03:05 +02:00
Christoph Oelckers
a25ed3c807
- fixed: inverted rendering for fuzzy things with light powerup was switched off due to change of render style.
2014-09-15 12:15:19 +02:00
Christoph Oelckers
3c2f1952fd
Merge branch 'master' into v2.x
2014-09-12 21:01:55 +02:00
Christoph Oelckers
25951362fc
- fixed: When applying Boom's Transfer_Heights effect to a sector, gl_FakeFlat needs to remove all portals from the original sector planes that are being replaced in the sector copy.
2014-09-11 13:02:39 +02:00
Christoph Oelckers
4bb320a27c
- route texture binding through the renderstate class for better control. Currently it's just a direct passthrough but this will change.
2014-09-09 12:00:42 +02:00
Christoph Oelckers
62880f113b
- fix a render glitch with Back to Saturn X MAP06: Do not flood missing upper and lower textures with the backsector's flat if that backsector is malformed (i.e. has no area.)
2014-09-09 08:47:39 +02:00
Christoph Oelckers
9b8869e78d
Merge branch 'master' into v2.x
...
Conflicts:
src/gl/textures/gl_material.cpp
2014-09-09 01:30:11 +02:00
Christoph Oelckers
86d9c7ec8e
- add some compatibility settings to fix rendering glitches in BTSX_E1 MAP12.
2014-09-09 01:27:41 +02:00
Christoph Oelckers
b96dd6c421
- fixed: The missing fourth component of the texture coordinate must be filled with 1.0, not 0.0 before applying the texture matrix. Not doing so will cancel out the translation part of the matrix.
2014-09-02 10:31:48 +02:00
Christoph Oelckers
fa3a62e954
- fix a render glitch with Back to Saturn X MAP06: Do not flood missing upper and lower textures with the backsector's flat if that backsector is malformed (i.e. has no area.)
2014-08-31 23:01:53 +02:00
Christoph Oelckers
12160bd29c
- remove some obsolete code from decal rendering.
...
- avoid rebinding the same texture multiple times, as there's considerable overhead in the texture manager.
- check gl_sort_textures only once per scene, not per draw list.
2014-08-30 15:34:14 +02:00
Christoph Oelckers
6a3cd6378a
- found out that reading the CPU's real time clock costs a not insignificant amount of time so this is now only done when either the benchmark command is running or the rendertimes are shown.
2014-08-30 14:33:06 +02:00
Christoph Oelckers
49ec7beb8f
- separate draw lists for walls and flats. This makes the sorting much more efficient because draw types no longer need to be checked in the compare function. This is a lot more important than having perfect texture order.
2014-08-30 13:04:41 +02:00
Christoph Oelckers
a903cbe12e
- sorting draw items by light level no longer makes sense so remove all corresponding code from dicmp.
2014-08-24 13:10:45 +02:00
Christoph Oelckers
904cc2e158
- some code cleanup.
2014-08-23 18:54:24 +02:00
Christoph Oelckers
1050013017
major cleanup of the texture manager:
...
- use sampler objects to avoid creating up to 4 different system textures for one game texture just because of different clamping settings.
- avoids flushing all textures for change of texture filter mode.
- separate sprite and regular dimensions on the material level to have better control over which one gets used. It's now an explicit parameter of ValidateTexture. The main reason for this change is better handling of wall sprites which may not be subjected to such handling.
- create mipmaps based on use case, not texture type.
- allows removal of FCloneTexture hack for proper sharing of the same sprite for decals and other purposes.
- better precaching of skyboxes.
2014-08-22 23:50:38 +02:00
Christoph Oelckers
a2dc4afe3f
- screwed by the editor's autocompletion... (wrong GL flag was used...)
2014-08-19 14:25:47 +02:00
Christoph Oelckers
00d7707aef
- allow reallocation of light buffer if more lights are needed.
...
- added a light preprocessing pass to the renderer so that a non-persistent buffer can be used with minimal mapping/unmapping. This only gets used if necessary because it adds some overhead to the renderer.
2014-08-19 14:18:21 +02:00
Christoph Oelckers
38796e7714
- removed some obsolete and useless GL calls.
2014-08-17 11:41:03 +02:00
Christoph Oelckers
b9ffb51d0c
- small but important optimization: Two-sided lines with both sides in the same sector don't really require vertex splitting for precise rendering.
2014-08-04 23:00:40 +02:00
Christoph Oelckers
19cfffebb3
- fixed: the WallTypes enum contained a value that no longer was valid. This was fixed orignally last week but it seems to have gotten lost.
2014-08-03 12:21:05 +02:00
Christoph Oelckers
c98e3ca99d
Merge branch 'master' into v2.x
2014-08-03 10:58:41 +02:00
Christoph Oelckers
b3e0d93385
- implemented rendering of wall sprites.
2014-08-03 10:57:58 +02:00
Christoph Oelckers
398d902e7e
- split off sprite clipping adjustment code into its own function.
2014-08-03 10:22:12 +02:00
Christoph Oelckers
7967082e60
- use the light buffer to handle dynamic lighting.
2014-08-01 20:59:39 +02:00
Christoph Oelckers
1ec58011d2
- start of light buffer implementation so that we don't have to use uniform arrays which appear to be broken on AMD.
2014-07-31 00:44:22 +02:00
Christoph Oelckers
192daf1d5a
Merge branch 'master' into Glew_Version_For_Real
2014-07-27 21:57:38 +02:00
Christoph Oelckers
ece10bb57f
- fixed several incorrect uses of abs instead of fabs.
2014-07-27 21:57:05 +02:00
Christoph Oelckers
c9c93a58a2
- fixed bad constant and potential use of uninitialized variable.
2014-07-27 21:55:25 +02:00
Christoph Oelckers
e07d06fa2a
Merge branch 'master' into Glew_Version_For_Real
2014-07-26 22:26:58 +02:00
Christoph Oelckers
7ae25906fd
- fixed: fog must be disabled before drawing the HUD model, not after it.
2014-07-26 22:26:17 +02:00
Christoph Oelckers
e0b756e511
- fixed: The cubemapped skybox renderer did not set up the model matrix properly.
2014-07-17 10:04:20 +02:00
Christoph Oelckers
eb9d2d9917
- reactivate compatibility profile so that immediate mode drawing can be used on older hardware not supporting persistently mapped buffers.
...
- reactivate alpha testing per fixed function pipeline
- use the 'modern' way to define clip planes (GL_CLIP_DISTANCE). This is far more portable than the old glClipPlane method and a lot more robust than checking this in the fragment shader.
2014-07-17 02:37:18 +02:00
Christoph Oelckers
6b9d6787d9
- move models into their own draw list to avoid frequent buffer changes.
...
- same for SKYHACK walls. Although rare, they would get in the way of optimizing the draw calls if not being separated out.
2014-07-15 21:16:59 +02:00
Christoph Oelckers
b8bcbe819b
- removed texture based dynamic lighting. For GL 3.x the shader approach is always better.
...
- fixed: sky fog was not unset.
2014-07-15 20:49:21 +02:00
Christoph Oelckers
fb6b4238ed
- fixed: glProgramUniform is only present from GL 4.1 or a specific extension so it may not be used on systems not supporting it.
2014-07-15 02:48:59 +02:00
Christoph Oelckers
eedc5a69be
- replaced builtin position vertex attribute.
2014-07-15 01:02:48 +02:00
Christoph Oelckers
1b7f5a2e6a
- replaced builtin texture coordinate vertex attribute.
2014-07-15 00:59:01 +02:00
Christoph Oelckers
5a322742c3
- remove use of builtin and deprecated color vertex attribute.
2014-07-15 00:37:13 +02:00
Christoph Oelckers
ed8a21fd86
- replaced deprecated alpha testing with shader code.
2014-07-14 21:14:43 +02:00
Christoph Oelckers
84a49e37ee
- handle normals for spheremapped mirror surfaces using non-deprecated features.
...
- move all WGL references out of global header files so that global wgl header include is no longer necessary
2014-07-14 19:54:07 +02:00
Christoph Oelckers
ce3653f6e1
- remove all uses of builtin matrices.
2014-07-13 23:13:40 +02:00
Christoph Oelckers
2214c0ac06
- remove all uses of builtin matrix manipulation. Only glLoadMatrix for view and projection matrix are left.
2014-07-13 22:37:34 +02:00
Christoph Oelckers
dbb05c5f33
- remove use of builtin texture matrices.
...
- make matrix class single precision.
2014-07-13 20:41:20 +02:00
Christoph Oelckers
9230a20f18
- added some checks to the wall rendering code that will allow to disable the clip planes in many cases, even when a plane mirror portal is active. This also solves the precision issue with using world coordinates for clip checks.
2014-07-13 17:15:17 +02:00