Commit graph

563 commits

Author SHA1 Message Date
Magnus Norddahl
c7c0ffadb5 Move SSAO pass to be before translucent rendering
Fix depth sampling location when not using fullscreen scene
2016-09-25 00:19:16 +02:00
Magnus Norddahl
9076d46261 Added SSAO pass 2016-09-25 00:19:15 +02:00
Christoph Oelckers
8907a8bfe8 - fixed incorrect function name in sprites drawer.
- fixed duplicate property key in ADynamicLight serializer. Radius was already claimed by AActor so this needs a different name.
2016-09-24 12:09:53 +02:00
Major Cooke
561edd31ec Added check for angle visibility for GZDoom. 2016-09-24 09:29:00 +02:00
Christoph Oelckers
ee2766d00b - made adjustments for new savegame code. 2016-09-24 01:47:44 +02:00
Christoph Oelckers
18ee6353fa - let's be safe and set the proper texture mode for the fullscreen blend rect. I've got spurious reports that on some occasions it was rendered opaque. 2016-09-22 10:54:16 +02:00
Christoph Oelckers
52d4c3970e - use glPOlygonOffset on non-translucent flat and wall sprites to avoid z-fighting. 2016-09-22 10:00:40 +02:00
Christopher Bruns
a1cbd39f3f Move call to Stereo3DMode.AdjustPlayerSprites into FGLRenderer.DrawPlayerSprites()
(cherry picked from commit 5b5598d7d85c6bb8930e874d5d94cca835061bf0)
2016-09-22 09:25:48 +02:00
Christopher Bruns
a5c27af59b Show weapon at full width in SideBySideFull 3D mode.
(cherry picked from commit c42e98c0042937adc05c1f1569d909d58a5b8ffb)
2016-09-22 09:25:48 +02:00
Christopher Bruns
1f79e23d5b Implement wide side-by-side mode, using adjusted aspect ratio in projection matrix.
Use optimal framebuffer size for side-by-side modes.
2016-09-22 09:25:46 +02:00
Magnus Norddahl
f7b6b1433c Added exposure pass calculating the bloom/tonemap exposure based on what the eye is seeing 2016-09-22 09:13:32 +02:00
Christoph Oelckers
146b5d2d06 - use 'override' qualifier on renderer interface.
Bad things can happen if these get changed in ZDoom without adapting to the change so better let the compiler handle this automatically.
2016-09-22 09:06:21 +02:00
Christoph Oelckers
ceaa040750 - added a workaround to avoid sprite splitting when it may cause glitches for sprites that get rotated in the draw pass. 2016-09-18 17:45:02 +02:00
Major Cooke
80c1baa596 Fixed: Pitch was rotating around the wrong axis. 2016-09-17 12:10:22 -05:00
Christoph Oelckers
bec17bd222 - FLATSPRITE fixes. 2016-09-17 08:26:30 +02:00
Major Cooke
d01b0e061e Moved flatsprite code into CalculateVertices. 2016-09-16 12:07:28 -05:00
Major Cooke
66d20726c2 Reintroduced flat sprites once more.
- Take note, current flat sprites will change. With no pitch involved, sprites are now flat across the ground.
2016-09-16 11:47:20 -05:00
Christoph Oelckers
8b6e09ca09 - changed the license of the OpenGL renderer to LGPL v3.
This was done to clean up the license and to ensure that any commercial fork of the engine has to obey the far stricter requirements concerning source distribution. The old license was compatible with GPLv2 whereas combining GPLv2 and LGPLv3 force a license upgrade to GPLv3. The license of code that originates from ZDoomGL has not been changed.
2016-09-14 20:01:13 +02:00
Christoph Oelckers
a98f364cc3 - added another missing nullptr check. 2016-09-13 23:37:19 +02:00
Christoph Oelckers
c593dda8f3 - added missing nullptr check. 2016-09-12 23:03:27 +02:00
Magnus Norddahl
7bdbaaff22 GL aspect ratio adjustments 2016-09-12 20:29:26 +02:00
Christoph Oelckers
71f4bacbd7 - missed something for last commit. 2016-09-10 12:36:44 +02:00
Christoph Oelckers
d3246be488 - draw wall sprites without translucent pixels as opaque. This looses the border smoothing with texture filtering but avoids sorting problems. 2016-09-10 12:24:13 +02:00
Christoph Oelckers
30cb651d92 - completely removed the flat sprite code.
This was conceptionally so wrong that there is no chance to salvage any of it.
2016-09-10 10:58:53 +02:00
Magnus Norddahl
d83a72f361 Add missing IsEnabled check 2016-09-09 00:36:12 +02:00
Magnus Norddahl
aaa3581ee6 Hook up eye textures in renderer 2016-09-09 00:36:10 +02:00
Christoph Oelckers
b9ca3c85f8 - fixed: translucency detection in multipatch textures did not work.
- fixed: The flat drawer never checked if a texture had translucent parts.
2016-09-08 12:18:09 +02:00
Christoph Oelckers
181e5dc4db - fixed floor clipping of sprites. 2016-09-06 22:18:47 +02:00
Christoph Oelckers
bfe34f4dc7 - cleanup. 2016-09-06 21:39:13 +02:00
Christoph Oelckers
a36d89405a - separated the coordinate calculation from GLSprite::Draw. 2016-09-06 12:22:00 +02:00
Christoph Oelckers
a5c0f9a548 - use the predefined fullscreen vertices for clearing a portal instead of using the quad drawer. 2016-09-06 11:58:22 +02:00
Christoph Oelckers
74ede7bb4e - fixed: The DrawBlend call in the postprocessing case was using the global 'viewsector' variable directly.
As with the Stereo3D stuff, this cannot be done because recursive processing of portals will change it. Instead the local copy has to be used here, just like the EndDrawScene call already did.
2016-09-05 09:10:29 +02:00
Christoph Oelckers
d2ead39bcc - force framebuffers for camera textures on GL 3+ hardware. With all the postprocessing stuff added I don't think it's ok to use the screenbuffer for this anymore.
- disable framebuffers for camera textures in legacy mode entirely. This depends on a GL_DEPTH24_STENCIL8 surface which most of these old chipsets do not support, and I really see no point to invest any work here. The worst that can happen is that oversized camera textures won't be processed, which, due to general performance issues, might even be a good thing.
2016-09-04 14:16:05 +02:00
Christoph Oelckers
8b01a88b76 - removed gl_lights_size and gl_lights_intensity.
Both of these were inherited from ZDoomGL and in terms of light design in maps it makes absolutely no sense to have them user configurable. They should have been removed 11 years ago.
2016-09-04 12:45:09 +02:00
Christoph Oelckers
e7856ce1e3 - removed unused forceadditive parameter from gl_GetLight.
- restricted gl_lights_additive to legacy code and removed menu entry for this.

For modern hardware this setting is completely pointless, it offers no advantage and degrades visual quality. Its only reason for existence was that drawing additive lights with textures is a lot faster, and that's all it's being used for now.
2016-09-04 12:35:26 +02:00
Magnus Norddahl
527703ae8c Fix missing flash if multisampling was on and no post processing effects active 2016-09-04 03:21:47 +02:00
Christoph Oelckers
217601f338 - fixed: FPortal::ClearScreen may not use the 2D drawing code anymore.
2D calls are accumulated and then executed all at once at the end of the frame, but this one needs to be interleaved with the 3D rendering. It now uses the quad drawer to fill the portal with blackness.
2016-09-04 01:46:29 +02:00
Christoph Oelckers
4a80f8e4ed - fixed: Camera textures and savegame pictures should not be drawn with a Stereo3D mode. 2016-09-03 16:54:17 +02:00
Christoph Oelckers
aece9aaa58 - added xBRZ texture scaler after clearing the licensing conditions. A screenshot of the confirmation that this is ok has been added to the 'licenses' folder. 2016-09-03 14:01:51 +02:00
Christoph Oelckers
8b7a87f256 - fix conditions for DrawBlend calls. 2016-09-03 00:43:18 +02:00
Christoph Oelckers
4e8027612f - restored 2 lines of code that somehow got lost before the last commit. 2016-09-01 17:38:17 +02:00
Christoph Oelckers
589936f570 - draw the colormap blend after postprocessing, not before it.
- added colormap shader to postprocessing.

This replaces the in-place application of fullscreen colormaps if renderbuffers are active. This way the fully composed scene gets inverted, not each element on its own which is highly problematic for additively blended things.
2016-09-01 17:14:51 +02:00
Christoph Oelckers
3389a5a74e - removed most of the specific options for legacy hardware and consolidated them in one variable (does not work yet.) 2016-09-01 11:52:52 +02:00
Christoph Oelckers
4a0e082836 - fixed: The wall splitter in the translucent sorting code needs to set fracleft and fracright so that vertex generation is done correctly for the split segments. 2016-08-31 23:26:49 +02:00
Christoph Oelckers
45ff15559d - removed gl_draw_synv because with the postprocessing this is no longer useful. 2016-08-30 00:33:02 +02:00
Christoph Oelckers
0f0dc2c852 - implemented buffers for GL 3.x. These only get mapped during the data collection pass so the order of some things is different here. 2016-08-29 10:43:03 +02:00
Magnus Norddahl
bb066f6f07 Fall back to gl_renderbuffers 0 if buffer creation fails 2016-08-28 18:07:44 +02:00
Christoph Oelckers
c9578ae72d - create vertex buffer data for horizon portals in the constructor instead of in the draw function.
This was the last remaining place where the vertex buffer was accessed in the render pass.
2016-08-26 18:18:50 +02:00
Christoph Oelckers
abba548e40 - render sector hacks through the quad renderer if the vertex buffer is not accessible. 2016-08-26 02:03:24 +02:00
Christoph Oelckers
f6544f3c44 - removed unused GLFLat::sub and all codes depending on it a valid pointer. 2016-08-26 00:04:29 +02:00
Christoph Oelckers
6755cb2a25 - use the quad drawer for skybox-flagged sectors. 2016-08-26 00:02:32 +02:00
Christoph Oelckers
b83c2056a8 - store the stencil caps in the reserved part of the main vertex buffer instead of constantly recreating them. 2016-08-26 00:01:51 +02:00
Christoph Oelckers
76d7b52fcd - handle the case where a wall gets drawn with an unmapped buffer and no vertex data.
This uses the quad drawer because it can only happen with translucent walls that got split during sorting.
2016-08-25 23:20:23 +02:00
Christoph Oelckers
4598c4138c - added vertex initialization for walls in the processing pass for core profile without persistent buffers.
This is slower than doing it in the render pass so it's only active when actually needed - it's also slower than using a client array so this code only gets used when there is no choice but to work with a 3.x core profile context.
2016-08-25 23:13:49 +02:00
Christoph Oelckers
8f331f56e2 - use MakeVertices directly in the portal code and remove all related code from RenderWall. 2016-08-25 23:02:43 +02:00
Christoph Oelckers
8cf53f04e8 - split off the vertex creation from RenderWall. 2016-08-25 22:54:08 +02:00
Christoph Oelckers
4ab8ca63ce - use more desctiptive names for the predefined vertex buffer indices. 2016-08-25 22:23:31 +02:00
alexey.lysiuk
52b51e79b9 Fixed missing decals in compatibility renderer
The problem was appeared in conjunction with dynamic lights only
See http://forum.zdoom.org/viewtopic.php?f=4&t=19321&start=405#p932733
2016-08-24 10:27:14 +03:00
alexey.lysiuk
a185886924 Added compatibility handling for fog and dynamic lights used together
See http://forum.drdteam.org/viewtopic.php?t=7063
2016-08-24 10:26:11 +03:00
Christoph Oelckers
b946114145 - removed unused variable. 2016-08-22 22:00:45 +02:00
Christoph Oelckers
7ba5acfb35 - added quad drawer interface so that this part can be done without altering a vertex buffer.
So far it's only the framework, the new code is not active yet.
2016-08-22 14:00:25 +02:00
Magnus Norddahl
302f59ea33 Fix r_clearbuffer color not being used 2016-08-22 01:52:51 +02:00
Magnus Norddahl
5eeac830eb Clear and InvalidateFramebuffer optimization 2016-08-17 17:37:13 +02:00
Christoph Oelckers
e03696a6c9 - fixed: The model matrix must be disabled right after rendering the sky dome, so that it won't get used for the skyfog layer. 2016-08-14 20:11:46 +02:00
Christoph Oelckers
4e8a96aa0e - removed FRenderState::set2DMode because it had no effect. This looks like development garbage from old times. 2016-08-14 09:14:26 +02:00
Magnus Norddahl
210fce1193 Fix bloom shader missing its target 2016-08-14 09:05:50 +02:00
Magnus Norddahl
c817979eae Remove GetTrueHeight from GL renderer and concentrate all viewport calculations in SetOutputViewport 2016-08-14 09:05:48 +02:00
Christoph Oelckers
8daaf61160 - predefine the vertex data for the blend overlay which will never change throughout the lifetime of the GLRenderer object. 2016-08-08 14:24:48 +02:00
Christoph Oelckers
9c9edbffdb - on older ATI drivers where the clip planes are broken, only disable the clip planes themselves, but not OpenGL 3.x so that dynamic lights still work as intended.
- only disable clip planes on Windows, but not on Linux or macOS.
- If a driver reports full OpenGL 4.5 support, assume that all features are working properly.
2016-08-08 12:55:09 +02:00
alexey.lysiuk
9ab9548723 Additional fix for splitting of complex wall in compatibility renderer
warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-08-08 12:19:37 +02:00
Christoph Oelckers
13a2bf57e5 - fixed vertex coordinate ordering for the sky cubemap.
This was done differently for FFlatVertex and FSkyVertex which caused a switch of the y and z coordinates for the skybox image.
2016-08-06 11:47:03 +02:00
Christoph Oelckers
13527fdd0a Merge branch 'lensshader' of https://github.com/dpjudas/zdoom 2016-08-05 00:58:14 +02:00
Christoph Oelckers
21536781a9 - forgot to save this. 2016-08-04 13:01:42 +02:00
Christoph Oelckers
7ba6269450 - changed rendering of sky cubemaps to use precalculated vertex data from the SkyVertexBuffer. 2016-08-04 12:16:53 +02:00
Magnus Norddahl
6b9529d70f Added lens distortion shader 2016-08-02 17:32:21 +02:00
Magnus Norddahl
e8c98a5901 No gamma and player sprites on screenshots 2016-07-31 16:56:41 +02:00
Magnus Norddahl
7709db4bb0 Fix broken viewport/backbuffer location for WriteSavePic 2016-07-31 16:23:21 +02:00
Magnus Norddahl
a6354c74cf Fix incorrect viewport location when not using fullscreen HUD 2016-07-31 13:23:49 +02:00
Magnus Norddahl
cfc20d1198 Added multisample support to FGLRenderBuffers and added gl_multisample to the menus 2016-07-30 15:33:30 +02:00
Major Cooke
36705b0f04 Added GZDoom version of SpriteAngle and SpriteRotation. 2016-07-30 00:33:33 +02:00
Magnus Norddahl
9bfce5b6ea Moved post processing effects to its own file 2016-07-30 00:02:26 +02:00
Magnus Norddahl
5849c83028 Added bloom and tonemap to menus
Added gl_renderbuffers CVAR that disables render buffers
Added patch shader support to FShaderProgram
Added OpenGL 2 fallback support to render buffers
2016-07-29 21:31:20 +02:00
Magnus Norddahl
0efee85bd8 Added tonemapping and sector based exposure control 2016-07-29 00:36:43 +02:00
Magnus Norddahl
69f52cc898 Added bloom shaders 2016-07-27 21:50:30 +02:00
Magnus Norddahl
aeb7df09de Added hardware gamma option and improved window handling on Windows 2016-07-27 11:15:19 +02:00
Christoph Oelckers
071485b22e - fixed: If the resulting render style, after all adjustments, is None for the weapon sprite, do not attempt to draw it at all. 2016-07-25 11:55:47 +02:00
Christoph Oelckers
54a120d612 - do not process subsectors if rendering a stacked sector portal and the clipper is set to 'blocked', i.e. no visible parts are present.
This solves the most severe occurences of sprites being drawn in front of a portal's contents. It is not a full fix, though, there's still some extreme cases where portals may glitch if some stuff gets between the camera and the actual portal area.
Normally this has to perform a full check of the subsector against the portal's camera-facing linedefs but that's too costly for those rare cases where it may be an issue.
2016-07-23 10:23:34 +02:00
Christoph Oelckers
d405cf5b7c - fixed: Before rendering a sector stack portal the clipper needs to be completely filled, if the view point's subsector is not inside the portal. If this is not done, some setups where a recursive look into the originating area is possible may exhibit some issues. 2016-07-23 09:47:14 +02:00
MajorCooke
35666f1e09 Fixed a nullptr crash with flatsprite actors. 2016-07-21 13:12:59 -05:00
Christoph Oelckers
c5db5dff99 - fixed a crash when initializing the GL portal data for an incomplete or inactive portal. Also did a bit of cleanup on this code, the 'delta' member was never used. 2016-07-16 12:45:49 +02:00
Jordon Moss
6014bde3d0 Renamed PushSpriteFrame to PushSpriteMDLFrame for consistency. 2016-07-16 09:30:26 +02:00
Jordon Moss
b3b2eb42c6 Added SurfaceSkin MODELDEF property, allows overriding MD3 per-surface skins. 2016-07-16 09:30:25 +02:00
Christoph Oelckers
f4b80a451e - fixed: The render style specific blend settings were overridden when adding code to ensure proper setup of all properties.
It turned out that the only thing that wasn't set is the alpha function, not the blend settings themselves.
2016-07-16 08:57:48 +02:00
MajorCooke
e56196eb1a Disable facing camera rotations if the actor is a flat/wall sprite.
- It not only looks bad, it also throws off users when trying to make perfectly aligned images since the plane is distorted wildly.
2016-07-13 09:31:22 +02:00
MajorCooke
cc8d84cd5d Fixed sprites defaulting to rotate around the center instead of the offsets. Seeing how it's still useful however, ROLLCENTER can still be used to center upon actors that are offsetted like monsters. 2016-07-13 09:31:22 +02:00
Christoph Oelckers
6b0b7ea049 - fixed sprite z coordinate calculation for flatsprites. 2016-07-04 01:00:01 +02:00
Christoph Oelckers
cc784fff14 Merge branch 'rollGZ2' of https://github.com/MajorCooke/zdoom 2016-07-04 00:45:37 +02:00
alexey.lysiuk
924b8105c5 Fixed splitting of complex walls in compatibility renderer
Example: +warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-06-29 12:34:35 +02: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
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
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
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
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
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
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
4fb17561bc - optimize VSMatrix::Translate.
- use FVector3 for sprite rotations.
2016-05-01 12:39:08 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
273c1ea510 - fixed PointOnSide caclulation for dynamic lights. 2016-04-11 19:59:39 +02:00
Christoph Oelckers
7a7e1652fc - fixed: lower textures used the wrong reference height for alignment 2016-04-09 21:06:32 +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
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