alexey.lysiuk
fc8eaab57b
Fixed crash in dynamic lights compatibility renderer
...
Reproduces using -iwad plutonia -file brutalv20b.pk3 +map map07
2016-06-29 12:21:39 +02:00
Christoph Oelckers
17c212d5bc
- disable transparent door render hacks if any of the involved sectors contains floor slopes.
...
These lead to false positives but rarely represent actual hacks.
2016-06-29 12:19:00 +02:00
alexey.lysiuk
2813a22740
Fixed inconsistent state of lights in compatibility renderer
2016-06-19 11:19:31 +03:00
Christoph Oelckers
7b99c883e1
- use the exact same semantics and methods to handle player visibility as in the software renderer.
...
This fixes invisible player sprites in recursive line portals.
2016-06-18 12:14:20 +02:00
Christoph Oelckers
87d27b8db3
- fixed some crash issues with recent changes.
2016-06-18 10:01:24 +02:00
Christoph Oelckers
92e2ce2aef
- adjustments for weapon rendering in GL.
...
This adds support for the new weapon state code and fixed some lighting calculations.
Note that this currently will not allow combination of HUD models with other sprite frames yet.
2016-06-17 17:21:42 +02:00
Christoph Oelckers
8ca07443f1
- fixed: Sprite splitting at 3D floors must set the fog parameters for the new light level.
2016-06-17 16:16:31 +02:00
MajorCooke
b2d2389343
Fixed: Slanted flat + roll sprites didn't take DONTFLIP into account.
2016-06-05 15:51:23 -05:00
MajorCooke
e58c6de7d6
DONTFLIP flag prevents the backside from flipping over.
2016-06-05 15:14:40 -05:00
alexey.lysiuk
56ce6abbc2
Fixed splitting of walls in compatibility renderer
...
Any wall adjacent to 3D floor sector were not rendered at all
2016-06-05 12:38:23 +03:00
Christoph Oelckers
5017a192eb
- fixed: The texture matrix was not reset after drawing the texture pass for multipass textured dynamic lights.
2016-05-19 12:22:39 +02:00
Christoph Oelckers
13da14e915
- disable dynamic lights on additively blended surfaces because it doesn't look good at all.
2016-05-18 22:20:18 +02:00
Christoph Oelckers
362e21a6b3
- fixed: The pitch negation required for INHERITACTORPITCH was also applied to the one from PITCHFROMMOMENTUM.
2016-05-17 09:12:26 +02:00
Christoph Oelckers
52e19c59b3
Revert "- let gl_draw_sync default to false."
...
This reverts commit 616f84209b
.
Now I remember why this is not active: This is causing some problems with interpolated plane heights. Since there is no synchronization with the vertex buffer, the next frame will reset all plane coordinates before the GPU can use them. This will require some rethinking about when to update the buffer - it cannot be done in the render data setup loop.
2016-05-13 20:44:04 +02:00
Christoph Oelckers
99bfc64af6
- another failed attempt to use GL_CLIP_PLANE. Leave it in because it's closer to what is needed than the old code.
2016-05-12 23:41:06 +02:00
Christoph Oelckers
616f84209b
- let gl_draw_sync default to false.
...
No need to waste valuable processing time if we can let the GPU run in parallel with the code that generates the next frame.
2016-05-12 20:23:18 +02:00
Christoph Oelckers
15933f9c72
- fixed: Texture precaching for sprites had some inverted logic and deleted everything that was still required.
2016-05-10 20:51:23 +02:00
Christoph Oelckers
15c711f2a1
- added a missing break in the wall draw dispatcher.
2016-05-09 00:58:55 +02:00
Christoph Oelckers
d5eb1008a4
- implemented texture overlay pass for textured dynamic lights.
2016-05-08 22:07:18 +02:00
Christoph Oelckers
b90173ed21
- fixed: ADynamicLight::visibletoplayer was not initialized for placed lights when restoring a savegame.
2016-05-08 09:34:22 +02:00
Christoph Oelckers
6753cddce1
- fixed: The HUD weapon drawer partially took the render state from the previous things that got rendered. Especially the blend mode could be randomly set to different values.
2016-05-08 09:22:38 +02:00
Christoph Oelckers
d61ec05c0f
- draw texture based dynamic lights on walls.
2016-05-05 12:18:09 +02:00
Christoph Oelckers
2b92048a5b
- renamed the texture coord variables in GLWall.
...
It makes no sense having them organized differently in this struct than what the rendering code needs. This saves one redundant copy operation and a function-local static variable.
2016-05-05 11:48:39 +02:00
Christoph Oelckers
51baa7d137
- added code to calculate light texture coordinates on walls.
2016-05-05 11:32:21 +02:00
Christoph Oelckers
0b2821d696
- added dynamic light rendering with textures on flats
2016-05-05 10:28:21 +02:00
Christoph Oelckers
c9d4c68039
- added dynamic light drawer for flats.
2016-05-05 00:24:47 +02:00
Christoph Oelckers
4412f99b38
- added the flat dispatcher for textured lighting.
2016-05-04 23:07:16 +02:00
Christoph Oelckers
ec7b4b1ba4
- initial work on textured dynamic light processing.
2016-05-04 22:14:39 +02:00
Christoph Oelckers
8817f89192
- do not clip the first frame of very slow projectiles.
2016-05-04 20:31:21 +02:00
Christoph Oelckers
7b65e6d424
- use glMapBuffer instead of glMapBufferRange on older hardware.
2016-05-04 19:16:07 +02:00
Christoph Oelckers
bdb7594e60
- fixed: Incomplete model definitions flagged the actor as having a model, which could cause a crash.
2016-05-04 14:25:58 +02:00
Christoph Oelckers
5f095082c0
- fixed: The 2D drawing code incorrectly set the shader override to disable all special effects.
2016-05-04 14:10:06 +02:00
Christoph Oelckers
54571beaca
- reset the path to "" before a model definition is parsed.
2016-05-04 12:28:35 +02:00
Christoph Oelckers
fd8a59bd24
- fixed: INHERITACTORPITCH was inverted.
...
- changed PITCHFORMOMENTUM to do nothing for very small velocities.
2016-05-04 12:23:40 +02:00
Christoph Oelckers
ab8a647433
- fixed the disabled visibility rules check for dynamic lights by doing the actual check in the light's Tick() method and letting the renderer only use the result.
2016-05-04 11:33:18 +02:00
Christoph Oelckers
0a94371974
- reinstated old code for rendering fog boundaries and mirrot surfaces without shaders.
...
- added code for filling the render list for textured dynamic lights. This is not yet active because no code is present to handle this data.
2016-05-03 23:28:42 +02:00
Christoph Oelckers
0f8f08edfd
- fixed: camera facing sprites need to orient themselves toward the actual camera position, not the view actor (which may be invalid or in a completely different part of the map if a portal is being rendered.)
2016-05-03 19:24:28 +02:00
Christoph Oelckers
b6af4677f3
- implemented model precaching.
2016-05-03 18:14:16 +02:00
Christoph Oelckers
534500f36d
- fixed software-based model interpolation.
2016-05-03 16:49:10 +02:00
Christoph Oelckers
f7fda94ec9
- changed model data to store models and textures by index instead of by pointer.
...
The indices are needed for efficient precaching and actual changes to the logic are minor so that this was the best option overall.
2016-05-03 15:45:21 +02:00
Christoph Oelckers
0e14f00b51
- fixed caching of texture sampler state for old hardware.
...
- fixed handling of CLAMP_XY_NOMIP sampler mode. This cannot be lumped together with CLAMP_XY because it has different mipmap requirements.
2016-05-03 13:39:41 +02:00
Christoph Oelckers
4d7be0e20e
- added software interpolation as a fallback for models.
...
This is not tested yet so no guarantees!
2016-05-03 13:10:00 +02:00
Christoph Oelckers
942138b307
- undid some leftover texture state checks from the first attempt to handle this without sampler objects.
...
This code was written under the assumption that the glGenerateMipmap function does not exist. But all supported hardware has this function through the GL_EXT_framebuffer_object extension.
2016-05-03 11:27:52 +02:00
Christoph Oelckers
6f2b0a6293
- rewrote texture caching so that not the base texture but the actually used translations for sprites get precached.
2016-05-03 01:00:52 +02:00
Christoph Oelckers
ec037bfd1a
- fixed: The check for one-way portals in the renderer was incomplete.
2016-05-02 19:47:27 +02:00
MajorCooke
16bea6cf1f
- Fixed: Roll must orient the rotation based on pitch, not the other way around.
2016-05-02 10:46:44 -05:00
MajorCooke
9ec3093a34
Fixed some missed cases.
2016-05-02 08:52:44 -05:00
MajorCooke
673dab7f23
Removed PITCHFLATSPRITE. FLATSPRITE now encompasses the behavior.
2016-05-02 06:29:19 -05:00
alexey.lysiuk
4c4b97316e
Fixed inconsistent texture wrapping
...
Sampler state needs to be reseted when hardware texture resources are released
2016-05-02 13:02:55 +03:00
alexey.lysiuk
44b019413c
Implemented gamma correction in OS X native backend using shader effect
2016-05-02 10:04:09 +03:00
MajorCooke
a163220e8c
Removed FlatAngle.
2016-05-01 17:30:30 -05:00
Christoph Oelckers
f2f3fa6d09
- parched the texture precaching so that it compiles and works again. The real work will come later.
2016-05-02 00:13:00 +02:00
MajorCooke
980a310755
GZDoom Roll Submission
2016-05-01 14:08:09 -05:00
Christoph Oelckers
26acf8e994
- fixed conditions for menu patching.
2016-05-01 17:43:30 +02:00
Christoph Oelckers
50ba1ecde8
- add menu patching for GL 2.x mode.
...
- use stdint types in model code, because we have to start somewhere with the transition.
2016-05-01 13:09:13 +02:00
Christoph Oelckers
4fb17561bc
- optimize VSMatrix::Translate.
...
- use FVector3 for sprite rotations.
2016-05-01 12:39:08 +02:00
Christoph Oelckers
47064e24c9
- only bind the uniform buffer if it is actually going to be used. No need to check if we are use a shader storage buffer.
2016-05-01 12:01:44 +02:00
Christoph Oelckers
5ead3503b2
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-05-01 11:57:13 +02:00
Christoph Oelckers
24526f7da5
- made adjustments to floating point bounding boxes for nodes and changes to the WarpBuffer function.
2016-05-01 11:56:45 +02:00
alexey.lysiuk
1deb9742de
Do not call UBO functions when no extension available
2016-05-01 11:46:49 +03:00
Christopher Bruns
6d95c9d544
Fix floating point update for camera facing billboard mode.
2016-04-30 18:15:29 -04:00
Christopher Bruns
5a33005303
Reorder two billboard rotations, so they work together correctly.
...
Fixes #126
# Conflicts:
# src/gl/scene/gl_sprite.cpp
2016-04-30 18:15:27 -04:00
Christopher Bruns
b320787102
Implement new CVAR gl_billboard_faces_camera, which orients sprites toward camera, rather than along view direction.
...
# Conflicts:
# gz3doom/GZ3DoomRiftMonitor1.bat
# src/gl/scene/gl_sprite.cpp
# src/gl/scene/gl_stereo3d.cpp
2016-04-30 18:15:27 -04:00
Christoph Oelckers
51991ef22d
* - render partial sprites on the front side of a portal for actors behind it.
2016-04-30 23:18:37 +02:00
Christoph Oelckers
ca95371a27
- fixed: gl_load.c did not handle the GL 2.x fallback for the lack of glGetStringi correctly, if that function was missing it just crashed.
2016-04-30 17:16:16 +02:00
Christoph Oelckers
8011958ebe
Merge branch 'gz2x' of https://github.com/alexey-lysiuk/gzdoom
...
# Conflicts:
# src/gl/system/gl_interface.cpp
2016-04-30 17:09:57 +02:00
Christoph Oelckers
d84e079282
- render partial sprites oon the back side of a portal for actors in front of it. This is needed because the stencil will clip away those parts.
2016-04-30 16:57:53 +02:00
Christoph Oelckers
c29e96d369
- print buffer info only if the buffer type is used.
...
- removed some GL specs that are not informative in GZDoom's context.
2016-04-30 16:31:09 +02:00
Christoph Oelckers
50ab301bd8
- fixed: If we want to support pre-GL3 hardware, we may not require the presence of glGetStringi.
2016-04-30 16:23:32 +02:00
alexey.lysiuk
4400d0cfcc
Fixed restoration of previously bound FBO
2016-04-30 16:29:22 +03:00
alexey.lysiuk
32412c7f75
Disabled printing of junk values for unsupported extensions in OpenGL startup log on OS X
2016-04-30 16:28:50 +03:00
alexey.lysiuk
6757447f1b
Enabled printing of OpenGL startup log on all platforms
2016-04-30 16:28:35 +03:00
alexey.lysiuk
461c97d25b
Fixed remaining issue with shader patching for old OpenGL
2016-04-30 16:28:19 +03:00
alexey.lysiuk
893d0c8915
Added old method to collect extensions
...
This required manual changes in generated file gl_load.c
2016-04-30 13:33:54 +03:00
alexey.lysiuk
3816b46938
Fixed compilation of OS X with native backend
...
TODO: check Linux build
2016-04-30 11:53:31 +03:00
alexey.lysiuk
de6f13f0b4
Updated gl_load.* files generated with glLoadGen 2.0.5
...
Added OpenGL extensions list file for glLoadGen
Added extensions for OS X version
2016-04-30 11:43:08 +03:00
Christoph Oelckers
70bf649364
- added clip planes for line portals and mirrors. This should eliminate the remaining problems with some visible geometry in front of the portal, it is also necessary to handle sprite splitting across line portals properly.
2016-04-29 12:26:57 +02:00
Christoph Oelckers
21283b18f4
- preparations for using clip planes on line portals.
2016-04-29 01:48:06 +02:00
Christoph Oelckers
e3fad118d2
- use the templated warp functions instead of the limited GZDoom 1.x version. gl_WarpBuffer has been removed.
2016-04-28 19:04:01 +02:00
Christoph Oelckers
434e39e62f
- made adjustments to ZDoom's last changes.
2016-04-28 17:55:58 +02:00
Christoph Oelckers
d4806f82ca
- reinstated some texturing-based dynamic light code. Not active yet and not tested yet.
2016-04-28 00:58:44 +02:00
Christoph Oelckers
ee7a4daa8c
- preparations for textured dynamic lights.
2016-04-27 23:19:54 +02:00
MajorCooke
3be33b5725
The GL part of Quake Rolls.
2016-04-27 13:49:51 +02:00
Christoph Oelckers
73823e6a09
- fixed the texture size checks for determining if a camera texture requires offscreen rendering were wrong and checked the scaled size, not the physical size.
2016-04-27 02:56:55 +02:00
Christoph Oelckers
09f54b0940
- cleaned up the clip plane management for portals.
...
Unfortunately the math behind the old clip planes is utterly impenetrable and so poorly documented that I have no idea how to set that up, so it is deactivated for now. It wasn't working anyway.
2016-04-27 00:41:00 +02:00
Christoph Oelckers
066d5c63e2
- better be safe and not call GL_CLIP_DISTANCE functions on old hardware.
2016-04-26 21:55:17 +02:00
Christoph Oelckers
3faf5afa3a
- re-added software translucency splitting for old hardware.
2016-04-26 21:49:30 +02:00
Christoph Oelckers
b06c86db38
- added old wall splitting code as a fallback for old hardware.
2016-04-26 21:42:15 +02:00
Christoph Oelckers
6e1b21d513
- added back sprite splitting for low end, plus some dynamic light code.
2016-04-26 21:31:24 +02:00
Christoph Oelckers
89f36fb963
- enabled texture and model matrices for shader-less rendering and fixed the sky cap color application.
2016-04-26 20:45:56 +02:00
Christoph Oelckers
9d71c91f01
- reenabled software warping for shader-less rendering.
2016-04-26 20:20:00 +02:00
Christoph Oelckers
924b72b633
- added workarounds for the invulnerability colormap for non-shader rendering. Unlike the shader based versions these do not decolorize the screen. The advantage to the old texture duplication is that this is far less stressful on performance.
2016-04-26 20:02:57 +02:00
Christoph Oelckers
913e3df7e3
- fixed display of alpha textures without shaders.
...
As it turned out, the translation's alpha channel was clobbered by the whole setup.
2016-04-26 19:11:32 +02:00
Christoph Oelckers
7e6e2bc0a8
- stated adding GL 2.0 compatibility handling
2016-04-26 18:24:02 +02:00
Christoph Oelckers
eb27057853
- enable shader-less rendering. Still very incomplete, but at least the basics are working.
2016-04-26 16:44:03 +02:00
Christoph Oelckers
3b1500438d
- got rid of VAO's. they have no impact on performance and are a general nuisance if some render paths cannot use them.
...
- cleaned up gl_interface and removed gl.compatibility.
2016-04-26 16:26:34 +02:00
Christoph Oelckers
f066457a48
- add shader patching to allow running the engine with GLSL 1.2.
...
- made some initial preparations for the shader-less fallback path.
2016-04-26 15:26:52 +02:00
Christoph Oelckers
ee9a40f5e9
- replace FLOATTYPE with float in stereo3d code.
2016-04-26 15:20:27 +02:00
Christoph Oelckers
090d13b915
- updated gl_interface to deal with older GL versions.
...
- added the framework for allowing multipass textured dynamic lights again.
2016-04-26 15:20:26 +02:00
Christoph Oelckers
97bed58d7d
- use a compatibility mode version of gl_load, so that the fallback GL 2 code can get its definitions.
2016-04-26 11:32:40 +02:00
Christoph Oelckers
22b7a38539
- fixed incorrect sky texture check with Transfer_Heights. The actual sector was checked, not the one created by gl_FakeFlat.
2016-04-24 14:17:06 +02:00
Christoph Oelckers
f77c4642cb
- made the adjustments.
2016-04-24 13:35:43 +02:00
Christoph Oelckers
0d17459c36
- do not disable sampler objects with -gl3.
2016-04-23 15:47:51 +02:00
Christoph Oelckers
9d9219795a
- adjusted function names.
2016-04-23 13:48:25 +02:00
Christoph Oelckers
38f1213387
- made some adjustments.
2016-04-23 13:35:51 +02:00
Christoph Oelckers
a17e0b70d2
- adjustment for function name changes.
2016-04-23 11:38:33 +02:00
Christoph Oelckers
6450752399
- made it compile again.
...
The software renderer float conversion removed viewx and viewy which are still needed for efficient position checks against nodes without constant float->fixed conversions.
2016-04-23 10:50:19 +02:00
Christoph Oelckers
c786b65727
- allow the engine to run without sampler objects. This will create some overhead in the texture code, but that's still better than having to error out on those few systems where it may be an issue.
2016-04-22 19:54:51 +02:00
Christoph Oelckers
f299248c8a
- be a bit more careful with using unvalidated portals for checking render hacks.
2016-04-22 09:15:22 +02:00
Christoph Oelckers
1c7b512cc0
- GL handling of new portal data organization.
...
This also fixes some oversights with plane and horizon portals which were included in several checks.
2016-04-20 20:08:53 +02:00
Christoph Oelckers
aa12772e07
- crash fix and minor optimization.
2016-04-20 13:18:53 +02:00
Christoph Oelckers
1f32f5a258
- some minor fixing and cleanup on gL portal code.
2016-04-20 11:39:41 +02:00
Christoph Oelckers
573d80f144
- render sproites through sector portals.
2016-04-18 23:52:15 +02:00
Christoph Oelckers
741f054601
- clip sprites to linked sector portal planes.
...
This is the first part of properly handling those transitions.
2016-04-18 16:27:04 +02:00
Christoph Oelckers
0d7bd368fa
- added some fudging to draw the outer linedefs of a portal area.
...
This is needed so that polyportals get rendered correctly. For non-polyportals these will normally be outside the portal window and just be discarded.
2016-04-17 15:46:04 +02:00
Christoph Oelckers
faeb0303fe
- renamed ADynamicLight's intensity properties to radius, to have their name match their meaning.
2016-04-17 13:53:29 +02:00
Christoph Oelckers
8a010ab871
- allow 90° rotations in skybox sectors.
2016-04-17 11:58:26 +02:00
Christoph Oelckers
0a35027f67
- fixed use of validcount for the GL renderer.
...
This needs to be incremented more locally to the place where it is used, so that it is guaranteed that each viewpoint that needs to be rendered increases it.
As a result the uses in the portal code could be removed.
2016-04-17 10:39:29 +02:00
Christoph Oelckers
95de1faa80
- fixed: The portal coverage builder initialized node_t::len differently than the polyobject splitter.
...
This was creating quite a mess when loading savegames with both portals and polyobjects.
2016-04-17 01:16:46 +02:00
Christoph Oelckers
a0a530945d
- added new sector type 90 which designates a sector that is being used as a cubemapped skybox, in case someone wants to make one of those without using an actual sky for this.
2016-04-14 13:22:15 +02:00
Christoph Oelckers
328047ea28
- fixed issues with recent Stereo3D submission:
...
* there was a CVAR that was only defined in Windows
* code did not compile with GCC.
* due to bad setup it disabled multisampling.
2016-04-14 10:16:04 +02:00
Christoph Oelckers
caf80e74c4
- fixed multiplication/division mixup in TextureAdjustWidth.
...
- fixed: For top textures an incorrect ceiling height was passed to DoTexture.
2016-04-13 23:09:45 +02:00
Christoph Oelckers
bffb7444a0
- removed portal check for distance check in GL code.
2016-04-13 19:33:45 +02:00
Christoph Oelckers
d66a28fcde
- fixed offsetting of player weapon sprites.
2016-04-13 16:24:25 +02:00
Christoph Oelckers
d0b30f31e1
- fixed: Checking for slopes at untextured bottom parts of the wall checked the ceiling's slope not the floor's.
2016-04-13 11:41:51 +02:00
Christoph Oelckers
37f43617d9
- make distance check 3D and use proper viewpoint.
2016-04-13 11:35:05 +02:00
Christoph Oelckers
bec3208efd
- added support for distancecheck property.
2016-04-12 19:50:29 +02:00
Christoph Oelckers
a411b93e1d
- fixed: The dynamic pulse light should always use its maximum size for linking into the sector lists, just like the other types with changing size do.
...
These limking operations are not cheap so it's preferable to have them affect a bit more geometry than running the linking code each tic.
2016-04-12 16:01:08 +02:00
Christopher Bruns
09d0cb5fd5
Merge branch 'master' of https://github.com/coelckers/gzdoom into two_more_stereo_modes
...
# Conflicts:
# src/gl/system/gl_framebuffer.cpp
2016-04-11 18:25:54 -04:00
Christoph Oelckers
56f8974b66
- removed debug code.
2016-04-11 19:59:57 +02:00
Christoph Oelckers
273c1ea510
- fixed PointOnSide caclulation for dynamic lights.
2016-04-11 19:59:39 +02:00
Christoph Oelckers
bf2b61f61c
- removed remaining STACK_ARGS from GL code.
2016-04-11 10:55:09 +02:00
alexey.lysiuk
bd8b8911d5
- fixed Windows 32-bit build
2016-04-11 10:08:18 +03:00
Christopher Bruns
f6d296e103
Add comment by line I modified to avoid compile problem with Visual Studio 2015
2016-04-09 22:08:40 -04:00
Christopher Bruns
355bc75001
Merge branch 'master' of https://github.com/coelckers/gzdoom into two_more_stereo_modes
2016-04-09 21:46:33 -04:00
Christopher Bruns
bde94879ad
Restore stereoscopic geometry correctness, by inserting a minus sign where it always should have been, after finding that a compensating minus sign, where it probably should not have been anyway, was removed during the recent floating point refactoring.
2016-04-09 21:46:14 -04:00
Christoph Oelckers
84c8f38038
- fixed: The divisions in FTexCoordInfo::TextureOffset and RowOffset were turned into multiplications when converting to floating point.
2016-04-10 00:45:48 +02:00
Christopher Bruns
072a5e60ae
Naive change to get latest version to compile.
2016-04-09 17:03:55 -04:00
Christopher Bruns
c6fa01dfbf
Reimplement blue/yellow and quadbuffered stereo, this time with an additional CVAR gate on quadbuffered, for better hardware compatibility.obj
...
Something is terribly wrong with the separation in all stereo modes now though.
2016-04-09 15:40:55 -04:00
Christoph Oelckers
7a7e1652fc
- fixed: lower textures used the wrong reference height for alignment
2016-04-09 21:06:32 +02:00
Christoph Oelckers
2e16f3d77e
- made some adjustment for the DrawTexture changes.
2016-04-09 20:49:27 +02:00
Christoph Oelckers
1f0fd85d0e
- adjustments for the DrawTexture interface changes.
2016-04-09 13:05:43 +02:00
Christoph Oelckers
25d7eaed0a
- fixed parentheses in ADynamicLight::DistToSeg.
...
- floatifed OpenGL sector grouping.
- optimized light node collection. It should not create light nodes for out of range segs.
2016-04-08 12:38:09 +02:00
Christoph Oelckers
3e94832bfd
- use the correct reference heights for positioning textures.
2016-04-08 01:58:13 +02:00
Christoph Oelckers
4d5671d654
- floatified the texture coordinate code.
2016-04-08 01:42:43 +02:00
Christoph Oelckers
eaf055dff4
- floatified the remaining parts of gl_walls.cpp.
2016-04-08 00:19:51 +02:00
Christoph Oelckers
4ac3734375
- floatified more of gl_wall.cpp.
2016-04-07 23:19:37 +02:00
Christoph Oelckers
ddbb8d79c1
- handle the player sprite when crossing a portal.
2016-04-07 21:13:37 +02:00
Christoph Oelckers
7df1a8ae81
- adjusted FGLLinePortal to recent changes in line_t.
2016-04-07 17:41:06 +02:00
Christoph Oelckers
ee3e3e35e6
- partial floatification of wall texturing code.
2016-04-07 17:00:13 +02:00
Christoph Oelckers
485a1bd0a5
- fixed: The 3D-floor plane renderer mixed float and fixed point.
2016-04-07 16:25:30 +02:00
Christoph Oelckers
4af859094c
- fixed: sprite clipping did not work anymore because the 'invalid' value was inconsistent.
...
- cleaned up the 'if' condition in PerformSpriteClipAdjustment,
- enabled weapon bobbing interpolation.
2016-04-07 14:09:07 +02:00
Christoph Oelckers
37ddd20b56
- removed leftover debug code from yesterday's particle fix.
2016-04-07 10:28:43 +02:00
Christoph Oelckers
dbad946fe3
- revert default planes to static in gl_sprite.cpp
2016-04-06 22:09:21 +02:00
Christoph Oelckers
a0d0d9339e
- fixed some uninitialized stuff in particle rendering.
...
- added gl_ClampLight to all places where the light level is set.
2016-04-06 14:03:21 +02:00
Christoph Oelckers
123d503492
Merge branch 'master' into floatcvt
2016-04-04 12:25:36 +02:00
Christoph Oelckers
f6b33acbb1
- fixed plane access in GL code.
2016-04-04 12:22:47 +02:00
alexey.lysiuk
cbcde3a950
Fixed check for alpha channel in texture to select hqNx upscaling mode
...
Now it's the initial check with the adjustment in mode indices only, as old hqNx MMX indices (4..6) are now occupied by generic hqNx implementation
See http://forum.drdteam.org/viewtopic.php?t=6872
2016-04-04 12:13:50 +02:00
Christoph Oelckers
603af1bb92
- compile bug in gl_sprite and some optimization in gl_walls.cpp
2016-04-03 22:13:38 +02:00
Christoph Oelckers
252a6e9038
- removed back and forth fixed<->float conversions in sprite code.
2016-04-03 13:00:09 +02:00
Christoph Oelckers
58eb64a7e0
- fixed a few fixed/float parameter mixups.
2016-04-03 12:54:47 +02:00
Christoph Oelckers
5a2eac8f15
- floatified vertices and removed the now redundant fx and fy members. This needs an added check for polyobject origins, though, so that such subsectors don't get rendered.
2016-04-03 11:40:14 +02:00
Christoph Oelckers
8a20f901a3
- removed the non.slope special handling in the wall processing code.
...
This may have made some sense when I added this 11 years ago but on a current computer it actually hurts performance a bit due to the branching that is involved - the code runs a bit faster with those special cases removed.
2016-04-03 02:07:37 +02:00
Christoph Oelckers
af78937a15
- updated GL renderer.
2016-04-02 23:17:16 +02:00
Christoph Oelckers
348c384bb6
- fixed scaling of skies with unusual dimensions.
2016-04-02 22:18:42 +02:00
Christoph Oelckers
a27181cb0b
- partial adjustments.
...
No point changing all the viewx/y/z stuff when that is about to get floatified next.
2016-03-31 21:42:27 +02:00
Christoph Oelckers
c6ada2397c
- adjustments.
2016-03-31 09:50:59 +02:00
Christoph Oelckers
cf44d2e37a
- adjustments.
2016-03-30 20:01:44 +02:00
Christoph Oelckers
cadd8f2d4a
- made adjustments for changes to linedef delta.
2016-03-29 16:31:58 +02:00
Christoph Oelckers
59bb003285
- GL adjustments for plane changes.
2016-03-29 13:45:50 +02:00
Christoph Oelckers
a87c292f10
- adjustments to GL code for texture scale and vertex coordinate access.
2016-03-29 11:26:33 +02:00
Christoph Oelckers
b958a5d748
- adjustments in GL code.
2016-03-25 15:14:09 +01:00
Christoph Oelckers
59406c1273
- adjust.
2016-03-24 16:40:15 +01:00
Christoph Oelckers
37bb816850
- some adjustments for voxels.
2016-03-24 16:10:17 +01:00
Christoph Oelckers
379d5bc0c5
- fixed some issues with dynamic lights caused by the floatification changes
2016-03-24 13:38:37 +01:00
Christoph Oelckers
f62c988a0e
- adjustments for next update.
2016-03-24 12:47:08 +01:00
Christoph Oelckers
eadecaf407
- adjustments to GL renderer for decal and alpha changes.
...
- handle portals in sprite lighting, but do not use the playsim's utility functions for efficiency.
2016-03-22 23:19:21 +01:00
Christoph Oelckers
bd7df76059
- fixed compilation of AActor::alpha
2016-03-22 12:56:20 +01:00
Christoph Oelckers
b54b34a512
- adjustments for floating point changes.
2016-03-21 02:57:02 +01:00
alexey.lysiuk
1f64d7ee22
Fixed wrong starting frame for wipe animation
...
Menu graphics appeared in starting frame with hardware renderer only
Software renderer was not affected as it reads pixels from front buffer instead of back buffer like OpenGL counterpart did
See http://forum.drdteam.org/viewtopic.php?t=6857
2016-03-15 11:49:56 +01:00
Christoph Oelckers
ae1571158c
- fixed: The portal link table was not created when there were no sector portals.
...
- fixed: P_TryMove could loop endlessly over a list of static portals when there was an error during portal creation.
2016-03-12 17:43:36 +01:00
Christoph Oelckers
95d36670cf
- that portal check was not correct.
2016-03-10 15:15:37 +01:00
alexey.lysiuk
7134f53638
- fixed: partial transparency wasn't taken into account
...
Smoothing of edges could mark textures as non-transparent when hqNx upscale filter is used
See http://forum.drdteam.org/viewtopic.php?t=6812
2016-03-09 13:17:42 +02:00
Christoph Oelckers
365c192a1d
- added portal support for dynamic lights.
...
This requires fixed offsets so it only works with linked portals.
2016-03-08 21:22:12 +01:00
Christoph Oelckers
87d6e03cc2
- should have saved before committing...
2016-03-05 13:09:49 +01:00
Christoph Oelckers
26a05857d0
- fixed: Camera textures should not intercept and clear the NoInterpolateView flag.
...
Thanks to some really bad use of a global variable this was causing problems with the inverted order in which GZDoom needs to draw this stuff.
2016-03-05 12:46:47 +01:00
Christoph Oelckers
ef9f3da31d
- do not use the precalculated coordinates for non-linked portals because they are not static.
2016-03-04 14:41:24 +01:00
Christoph Oelckers
dbd89c2702
- refactoring of portal grouping for the renderer, to allow more efficient clipping.
2016-03-04 14:10:13 +01:00
Christoph Oelckers
af1b70376b
- added 21:9 handling to GL code.
2016-03-04 11:47:15 +01:00
Christoph Oelckers
7ceb6d86dd
- fixed compilation.
2016-03-04 10:39:10 +01:00
Christoph Oelckers
ee18fdeb83
- fixed: Visplane merging should not be done for linedef based portals.
2016-02-28 10:10:01 +01:00
Christoph Oelckers
213d7a75c2
- fixed: r_showviewer must always be true when rendering a mirror portal.
2016-02-26 12:09:59 +01:00
Christoph Oelckers
387f3dd03a
- fixed compile errors due to changes in ZDoom.
2016-02-25 13:06:13 +01:00
Christoph Oelckers
e3ddc74eb1
- check r_showviewer when deciding whether to render the player sprite. This is necessary when camera and player end up on different sides of a portal.
2016-02-24 01:14:24 +01:00
Christoph Oelckers
a901875925
- fixed: The horizon portal drawer must set the camera position for the shader.
...
This gets lost when several portals are drawn sequentially and this is the only portal type which needs this information but doesn't go through the normal setup.
If this is not done, fog on the horizon plane can break.
2016-02-21 01:38:41 +01:00
Christoph Oelckers
9af5dd357f
- removed the camera adjustment in FGLRenderer::SetViewArea because this had already been done by R_SetupFrame.
2016-02-20 02:20:55 +01:00
Christoph Oelckers
bd67f3b3e5
- added skybox cast for GL code.
2016-02-20 02:20:43 +01:00
Christoph Oelckers
0a539ed2d5
- fixed: fake contrast was not applied.
2016-02-19 17:40:08 +01:00
Christoph Oelckers
bd9907f20f
- missing #includes in GL code.
2016-02-16 22:06:26 +01:00
Christoph Oelckers
c69fd3ac80
- removed redundant SKYBOX enum.
2016-02-16 10:14:37 +01:00
Christoph Oelckers
9608252873
- copied over some stuff from the abandoned portals branch.
2016-02-15 13:11:31 +01:00
Christoph Oelckers
141065c3d5
- fixed: positioning of camera textures on 2-sided walls was not correct.
2016-02-14 14:33:52 +01:00
Christoph Oelckers
0931134a9c
- fixed: part of the special handling of projectiles being spawned near the camera also affected other actors, this caused the fly cheat to break.
2016-02-12 11:20:33 +01:00
Christoph Oelckers
6a408b1a99
- added missing include to gl_walls.cpp
2016-02-10 20:49:06 +01:00
Christoph Oelckers
bd98182095
- fixed: The check for missing textures in Vavoom skyboxes was inverted.
2016-02-09 15:23:45 +01:00
Christoph Oelckers
eb7a908a92
- account for removed bam2rad function.
2016-02-08 22:06:26 +01:00
Christoph Oelckers
7105a87a1e
- fixed retrieval of mapsection for polyportals.
...
- render wall portals on one sided lines.
2016-02-06 19:19:18 +01:00
Christoph Oelckers
3683a8ac58
- implemented line-to-line portal rendering. So far working for two-sided portal lines - one-sided yet to come.
2016-02-06 12:32:47 +01:00
Christoph Oelckers
297cf52ac9
- copied line portal code from portal branch and made some adjustments to make it compile. Portal rendering is not yet working.
2016-02-06 05:17:47 +01:00
Christoph Oelckers
25f1dc86d5
- removed duplicate function definition.
2016-02-06 00:50:43 +01:00
Christoph Oelckers
e6337537ed
- this was missing the double slashes...
2016-02-05 14:04:28 +01:00
Christoph Oelckers
c4b1b96484
- handle one particular edge case when checking if a line is completely behind a mirror.
...
This is not really sufficient to detect all cases where something gets incorrectly flagged as ok, but it's the easiest one to detect.
2016-02-05 13:47:07 +01:00
Christoph Oelckers
dda73b531c
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/CMakeLists.txt
# src/p_setup.cpp
# src/r_defs.h
# src/version.h
This only updates to a compileable state. The new portals are not yet functional in the hardware renderer because they require some refactoring in the data management first.
2016-02-05 12:31:41 +01:00
Christoph Oelckers
b2158c5b96
- removed unneeded parameter.
2016-02-05 01:48:53 +01:00
Christoph Oelckers
c129cb3ca4
- reinstated software clipping by light volumes for walls.
...
It turned out that using hardware clipping planes exclusively to handle this cost more than it gained.
Now only the expensive or formerly impossible cases of intersecting light volumes or light volumes intersecting with the top and bottom of the wall polygon will use hardware clipping. The trivial cases will go back to software splitting.
2016-02-04 15:34:12 +01:00
Christoph Oelckers
0c8a817df4
- fixed wall clipping with 3D lights.
2016-02-04 01:12:18 +01:00
Christoph Oelckers
db766f9fe5
- fixed some warnings.
2016-02-03 13:03:38 +01:00
Christoph Oelckers
df9c59bcff
- moved gl_builddraw.cpp to a new 'unused' directory and also added gl_sections, which is needed by the Build algorithm to preprocess the level.
2016-02-02 12:07:07 +01:00
Christoph Oelckers
d797415745
- fixed: dynamic lights did not relink themselves when their position changed.
2016-02-02 11:58:00 +01:00
Christoph Oelckers
22e9fc9b76
- re-fixed FTexture::CheckTrans
...
The original broken code had it always reset the translucency info to 'not present'.
The first fix completely removed that line, although it was merely misplaced, but still necessary to avoid constant re-checking of the same texture.
2016-02-02 11:37:39 +01:00
Christoph Oelckers
9453a8a7e6
- reuse the same vertex buffer data for all slices of a decal.
2016-02-01 21:50:55 +01:00
Christoph Oelckers
f11f86f05d
- added light plane clipping for decals as well.
2016-02-01 21:45:26 +01:00
Christoph Oelckers
faa08410de
- handle nocoloredspritelighting with 3D light splitter
2016-02-01 19:10:15 +01:00
Christoph Oelckers
2c55dcca27
- use hardware clipping to apply 3D lights to sprites. This solves all the problems with properly lighting models and billboarded sprites.
...
- add some restrictions for the checks that exclude sprites which are too close to the camera. Most importantly, for clipping the first frame of a projectile, do not solely clip against the projectile's speed but use the player's radius as a limiting factor to avoid too large distances.
2016-02-01 18:14:00 +01:00
Christoph Oelckers
1ad310e69b
- only draw visible 3D-lights.
2016-02-01 16:13:07 +01:00
Christoph Oelckers
67fc35e738
- some cleanup of wall processing code.
...
* removed SplitWall function
* split PutWall into PutWall and PutPortal because none of the portal cases needs the overhead for normal walls.
2016-02-01 01:49:49 +01:00
Christoph Oelckers
9305cd86a0
- remove the GLWallLightEntry type. Everything it contains can be retrieved from the existing lightlist just as easily, and this approach avoids a lot of memory allocations.
...
- removed the SplitWall profiling timer because all it measures now is an almost empty function.
2016-02-01 01:03:34 +01:00
Christoph Oelckers
71da7406bd
- since we no longer split walls at 3D floor boundaries, those planes no longer need to be added to the vertex height lists.
2016-02-01 00:42:37 +01:00
Christoph Oelckers
53a389aafc
- fixed: for untextured walls, the texture must be disabled before rendering.
...
- fixed: untextured walls should never be passed to SplitWall.
- fixed: untextured walls should not be affected by dynamic lights (it's either fog boundaries or outsides of 3D fog volumes.)
2016-01-31 22:24:48 +01:00
Christoph Oelckers
9ce6a7932c
- implemented rendering of 3D lights with clip planes.
2016-01-31 22:04:20 +01:00
Christoph Oelckers
5448b335c6
- rewrote render loop for walls. Not working yet.
2016-01-31 21:10:59 +01:00
Christoph Oelckers
f86535407d
- forgot this.
2016-01-31 00:52:50 +01:00
Christoph Oelckers
1d9ab5c632
- clean out GLWall::SplitWall and instead of actually splitting the wall just attach a list of lights to it.
...
Actual handling will be in the rendering function because this doesn't need multiple vertex transfers to the GPU. All slices can be drawn from the same buffer with different uniform info being set.
2016-01-31 00:45:29 +01:00
Christoph Oelckers
fc57180d7e
- added necessary state to implement 3D light splitting using hardware clipping planes.
2016-01-30 23:01:11 +01:00
Christoph Oelckers
37ac6ef9a0
- fixed: Translucency detection for GL textures was broken.
...
- fixed: Textures which are already scaled should not be upsampled.
- fixed: The transparency check in the upscaling code checked the wrong modes for exclusion when handling translucent textures.
2016-01-30 02:13:47 +01:00
Christoph Oelckers
4a9b2bf76d
- fixed: The stencil cap drawer did not properly advance the vertex pointer.
2016-01-30 01:08:11 +01:00
Christoph Oelckers
342f1abcc7
- fixed: flickering dynamic lights with their first intensity value larger than the second one weren't properly linked into all touching sectors.
2016-01-30 00:45:47 +01:00
Christoph Oelckers
d037493ffe
- fixed handling of FF_FADEWALLS on 3D floors. The problems with the old method became quite obvious in the demo map after the light list bug got fixed.
2016-01-29 17:13:14 +01:00
Christoph Oelckers
238990c871
don't leave any gaps in the used clip planes.
2016-01-27 12:32:39 +01:00
Christoph Oelckers
47db3252f4
- it's really not necessary to waste two clip planes for reflective surfaces because only one can be active at any time.
2016-01-27 12:30:55 +01:00
Christoph Oelckers
3c16a23865
- when rendering mirrors, discard subsectors lying behind them.
2016-01-27 12:02:43 +01:00
Christoph Oelckers
685385635f
- made adjustments to FGLBitmap for the changes in its base class.
2016-01-26 12:05:40 +01:00
Christoph Oelckers
5816049510
- made necessary adjustments for the coordinate refactoring in ZDoom.
2016-01-21 12:36:37 +01:00
Christoph Oelckers
2657c08831
- fixed: stacked sector portals were not added to the render list
2016-01-13 21:33:27 +01:00
Christoph Oelckers
cd778b6bdc
- fixed CollectPortalSectors
2016-01-13 00:15:04 +01:00
Christoph Oelckers
65022b780a
- implemented 'copy portal to wall' linedef type.
2016-01-11 22:44:53 +01:00
Christoph Oelckers
196c9bc34d
- cleaned up the skybox type detection logic.
2016-01-11 20:29:24 +01:00
Christoph Oelckers
ef7bcb3a66
- implement Eternity-Style flat and horizon portals. Not tested yet due to lack of material to work with.
2016-01-11 15:07:58 +01:00
Christoph Oelckers
926e9fdac4
- fixed: For 2D-drawing of camera textures the render style was not set.
2016-01-07 22:20:57 +01:00
Christoph Oelckers
7d2bbbd351
- fixed rendering of two-sided polyobjects that have their upper or lower textures exposed.
2016-01-05 18:59:32 +01:00
Christoph Oelckers
cc10fe9bc3
- fixed: The stereo3D code accessed the global 'viewsector' variable at a place where it no longer contained a correct value.
...
- fixed: The same code did not exclude camera texture views from drawing the 2D overlay.
2016-01-04 00:45:44 +01:00
Christoph Oelckers
f2c890272f
- FRenderState::Apply does not need to call ApplyColorMask.
2016-01-01 10:59:34 +01:00
Christopher Bruns
ac6e2f4979
Use gl_RenderState to manipulate OpenGL color mask for anaglyph modes, to avoid glGet...
2015-12-31 11:57:21 -05:00
Christopher Bruns
95f4134630
Refactor stereo3d classes to use TArray instead of std::vector.
2015-12-31 09:36:37 -05:00
Christopher Bruns
5b7f9b04cd
Add license headers to stereo3d source files.
2015-12-31 09:06:44 -05:00
Christopher Bruns
655defed28
Avoid compile errors on Linux. Fixes #107 .
2015-12-30 17:54:54 -05:00
Christopher Bruns
8e237e6146
Merge branch 'master' of https://github.com/coelckers/gzdoom into stereo3d
2015-12-30 17:41:49 -05:00
alexey.lysiuk
f8c38a0bbe
- fixed GCC's 'unknown pragma' warnings in hqNx MMX implementation
2015-12-25 15:42:13 +02:00
alexey.lysiuk
1c5d0ccd65
- enabled hqNx MMX on all platforms with Intel intrinsics support
2015-12-25 15:41:06 +02:00
alexey.lysiuk
69813993b0
- added missing hqNx modes to options menu
2015-12-25 10:00:31 +02:00
alexey.lysiuk
19ae244f66
- fixed: allow to use all hqNx texture upscale modes
2015-12-25 09:52:27 +02:00
Christoph Oelckers
c8810db5fe
- fixed: clipping swimmable against non-swimmable translucent 3D-floors was broken due to an incorrect flag check.
2015-12-24 16:34:00 +01:00
Christoph Oelckers
17569139b6
Merge branch 'master' of https://github.com/coelckers/gzdoom
2015-12-11 22:26:45 +01:00
Christoph Oelckers
37ea94abf3
- fixed: translucent walls did not set up their dynamic lights in the GL4 render path.
2015-12-11 22:26:10 +01:00
Kyle Evans
841ddb0d63
<stdlib.h> has replaced <malloc.h> on FreeBSD as well
2015-12-10 23:01:59 -06:00
Christopher Bruns
10088544c3
Merge branch 'master' of https://github.com/coelckers/gzdoom into stereo3d
...
Conflicts:
src/win32/i_system.cpp
2015-12-09 18:34:20 -05:00
Christoph Oelckers
f9cbaef1df
- fixed: Boom's Transfer_Heights did not work for upper parts in sectors with a sky ceiling.
...
This incorrect check has been in the code for 12 years, unfortunately I have no idea anymore why it was added.
2015-11-30 00:11:30 +01:00
Christoph Oelckers
b00b49c111
- fixed skybox picking in GL renderer.
2015-11-25 11:57:53 +01:00
Christopher Bruns
bcac352265
Merge branch 'master' of https://github.com/coelckers/gzdoom into stereo3d
2015-11-09 19:40:53 -05:00
Christoph Oelckers
ad6ce5a726
- added a NULL check to gl_enhanced_nightvision's handler so that it won't crash without an uninitialized GL renderer.
2015-11-09 13:49:17 +01:00
Christopher Bruns
151b47c3ae
Merge branch 'master' of https://github.com/coelckers/gzdoom into merge_down
...
Conflicts:
src/win32/i_system.cpp
2015-11-03 20:21:27 -05:00
Christoph Oelckers
16cb4407a4
- disabled 'isVisibleToPlayerClass' check for dynamic lights affecting sprites.
...
Calling this function in the inner loop of a time critical rendering function apparently wreaks havoc with the CPU instruction cache - even though the function doesn't do anything substantial.
This needs some more in-depth investigation why just having that call can increase sprite rendering time by a factor of 10 and more if there's many lights in view.
2015-11-03 23:55:16 +01:00
Christopher Bruns
382d2cf74f
Simplify ShiftedEyePose::GetProjection() maths.
2015-10-31 08:02:41 -04:00
Christopher Bruns
789dca2ab3
Refactor stereo 3d projection matrix calculations to use VSMatrix.
2015-10-31 07:46:36 -04:00
Christopher Bruns
89328e685c
Use eye->TearDown method to restore glColorMask.
...
Restore assert in i_system.cpp that was interfering with my debugging.
Restore scoped colorMask-ing in gl_portal.cpp and gl_drawinfo.cpp.
2015-10-30 21:48:42 -04:00
Christopher Bruns
b82d611936
Call EndDrawScene for each eye.
...
Actually use stereoscopic projection matrix.
2015-10-30 21:29:36 -04:00
Christopher Bruns
0874455faf
Initial implementation of five 3D modes -- some bugs remain.
2015-10-30 20:51:35 -04:00
Christopher Bruns
694dff67e4
Copy stereo3d source files from my GLOOME fork.
2015-10-26 09:08:18 -04:00
Christoph Oelckers
abf11f1a12
- print an error message if GL_ARB_sampler_objects cannot be found.
...
GZDoom requires this extension and all supported hardware has drivers implementing it but there still seem to be people out there who stuck to some older, obsolete drivers that don't.
2015-07-13 09:49:02 +02:00
Christoph Oelckers
065b7f9ad2
- fixed: The CollectSectorStack functions had a local sector_t variable used by gl_FakeFlat which caused a stack overflow. Using the global one defined at the top of the file is ok here.
2015-05-29 12:03:50 +02:00
Christoph Oelckers
a59824cd88
- fixed: MD2 vertex indices were signed shorts but should be unsigned.
...
- fixed a few warnings from Visual C++ 2015.
2015-05-07 11:36:31 +02:00
Christoph Oelckers
f273b6c46d
- fix uninitialized variable.
2015-04-27 21:25:16 +02:00
Christoph Oelckers
baa775b31c
- fixed: Light level must be clamped before accessing the distfogtable.
2015-04-24 16:55:31 +02:00
Christoph Oelckers
df6ffe6418
- adjustments for recent ZDoom changes.
2015-04-16 22:50:26 +02:00
Christoph Oelckers
052dda0fdd
- made MD3 models reloadable.
2015-04-12 19:42:03 +02:00
Christoph Oelckers
feeebf5265
- rework MD2 code for reloading/precaching of geometry data.
2015-04-12 18:26:52 +02:00
Christoph Oelckers
cf7cb4f00f
- use hardware clip planes to split translucent walls and sprites by 3D floor planes.
...
This method has the advantage that it also works for models, xy-billboarded sprites and walls that require complex splitting of the polygon. The old method using actual polygon splitting only works for strictly vertical data that could be trivially split in two.
2015-04-05 19:00:35 +02:00
Christoph Oelckers
45526c2769
- basics for using hardware clip planes to split translucent stuff by 3D floor planes.
2015-04-05 18:55:21 +02:00
Christoph Oelckers
bead3e046b
- fixed weapon positioning again, after finding out that the first fix just worked around the actual problem: The entire coordinate calculation must be done in floating point with no integer math at all. Due to roundoff errors the stored int values needed for wall and flat placement significantly lack precision and with the high scaling factor that needs to be used for weapon HUD sprites these can easily become several pixels. After fixing this the border around sprite textures could be reverted to one pixel again.
...
- fixed: The 'may not be expanded' state should be stored in the texture and reused later. This also needs to revalidate the material if it decides that expansion should be disallowed.
2015-04-04 17:50:22 +02:00
Christoph Oelckers
91eafed5d3
- fixed coordinate calculations for trimmed sprites which were quite a bit broken.
2015-04-04 13:37:55 +02:00
Christoph Oelckers
67334bfa2b
- calculate weapon positions fully in floating point to avoid roundoff errors.
...
- In order to get reliable results the empty border around scaled sprites must be the same scale as the sprite (i.e. 2 pixels for 2x scale and 4 pixels for 4x scale.)
2015-04-04 12:35:10 +02:00
Christoph Oelckers
48e21f6759
- consider MBF sky transfers when checking for skybox precaching.
2015-04-01 12:08:42 +02:00
Christoph Oelckers
1e9a6e667e
- GL code adjustments for reworked precaching.
2015-04-01 11:59:41 +02:00
Christoph Oelckers
7701d54b1f
- fixed: associated dynamic lights took the sprite/frame info from the actor's current state instead of from the actor's current sprite and frame, which may differ in case some placeholder sprite is used in the state.
2015-03-15 12:24:28 +01:00
Christoph Oelckers
fad3a54100
- fixed positioning for sky textures that are less than 128 pixels tall.
2015-03-15 12:10:22 +01:00
Christoph Oelckers
a5a53c51e6
- fixed: The flat drawing code assumed that the first element of the light list originated from the sector itself. This had been true formerly but in some situations it no longer is.
2015-02-10 21:52:19 +01:00
Christoph Oelckers
00639121c0
- added the missed parts of camera roll in gl_scene.cpp.
2015-02-10 20:34:10 +01:00
Christoph Oelckers
8a9692c29f
- fixed: The code which decided whether to clamp two sided middle textures used the texture size instead of the render size for the specific linedef, meaning that any per-sidedef scaling was ignored.
2015-02-10 20:16:25 +01:00
Christoph Oelckers
a578ff5d06
- fixed a problem with some older AMD drivers: Normally calling glBindBufferBase should imply a call to glBindBuffer, but on these drivers it was never done, which resulted in the light uniform buffer never being created...
2015-01-24 13:13:54 +01:00
Christoph Oelckers
d4d041d5fc
- fixed: FMaterial::ValidateTexture must determine whether to expand sprites before actually constructing the FMaterial object.
2015-01-08 18:44:55 +01:00