alexey.lysiuk
7de242930a
Removed obsolete gamma correct shader used on macOS only
2016-07-30 15:30:35 +03:00
Christoph Oelckers
b52d457146
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-07-30 11:45:19 +02:00
alexey.lysiuk
e2a2d38a25
Removed redundant comparison in compatibility renderer
...
Clang no longer reports "warning: comparison of array 'this->tcs' not equal to a null pointer is always true"
2016-07-30 10:25:42 +03:00
Major Cooke
36705b0f04
Added GZDoom version of SpriteAngle and SpriteRotation.
2016-07-30 00:33:33 +02:00
Christoph Oelckers
f4cbde856b
Merge branch 'bloom' of https://github.com/dpjudas/zdoom
2016-07-30 00:30:27 +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
Christoph Oelckers
da1762ac2c
- fixed: DoSetMapSection could cause a stack overflow on large maps. Made it iterative instead of recursive to avoid that.
2016-07-27 16:27:40 +02:00
Magnus Norddahl
e82c38e4f9
Update copyright and typo fix
2016-07-27 11:15:20 +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
Magnus Norddahl
41e959e102
Adds the last texture filter mode (trilinear min filter with nearest magnification)
2016-07-23 18:57:37 +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
Christoph Oelckers
a2f56b6ef5
- This should have been part of an earlier commit, no idea why it wasn't saved...
2016-07-16 09:35:20 +02:00
Jordon Moss
1ef8057fa7
Updated SurfaceSkin to take the path property.
2016-07-16 09:30:26 +02:00
Jordon Moss
6014bde3d0
Renamed PushSpriteFrame to PushSpriteMDLFrame for consistency.
2016-07-16 09:30:26 +02:00
Jordon Moss
8bbc04a46f
Fixed a minor typo in SurfaceSkin validity check.
2016-07-16 09:30:25 +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
bc7b439dd0
- addressed: MDL_INHERITACTORPITCH got the direction of the rotation wrong. Fixed by deprecating this flag (and also MDL_INHERITACTORROLL) and introducing proper flags, named MDL_USE*. This not only resolves the issue but also elimintates the nonsensical INHERIT part of the names.
2016-07-16 09:10:18 +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
alexey.lysiuk
e6a7db99e4
Fixed missing polyobjects in compatibility renderer
2016-06-29 12:23:16 +02:00
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