Commit graph

845 commits

Author SHA1 Message Date
Magnus Norddahl
c21090333f Merge remote-tracking branch 'qzdoom/master' into dpdoom 2016-09-24 08:17:49 +02:00
Magnus Norddahl
d126e91ded Merge remote-tracking branch 'gzdoom/master' into lightmath
# Conflicts:
#	src/gl/renderer/gl_renderbuffers.cpp
#	src/gl/renderer/gl_renderbuffers.h
#	src/gl/renderer/gl_renderer.h
#	src/gl/scene/gl_scene.cpp
2016-09-24 08:12:12 +02:00
Christoph Oelckers
ee2766d00b - made adjustments for new savegame code. 2016-09-24 01:47:44 +02:00
raa-eruanna
2a9e97688d Merge http://github.com/coelckers/gzdoom 2016-09-22 05:23:02 -04: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
1bddc277e6 - fixed winding of voxel polygons. 2016-09-22 10:28:14 +02:00
Christoph Oelckers
960ed5130c - fixed: DTA_ColorOverlay was not properly handled by F2DDrawer. 2016-09-22 10:20:36 +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
2e8d2ed626 Implement vr_swap_eyes CVAR, now that side-by-side mode is mostly working. 2016-09-22 09:25:49 +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
7b8847c6be Update comment for other file. 2016-09-22 09:25:47 +02:00
Christopher Bruns
d10a0309ab Update header comment in gl_sidebyside3d source files 2016-09-22 09:25:47 +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
Christopher Bruns
9a257ac158 Implement side-by-side narrow 3D mode. 2016-09-22 09:25:46 +02:00
raa-eruanna
72491049e0 Changes to the contrast/brightness/gamma formula for both hardware and shader gamma correction. Mainly makes a correction with the shader version where contrast/brightness being negative values would clip them inappropriately. 2016-09-22 09:23:25 +02:00
Magnus Norddahl
af699dcebc Make bloom/exposure less aggressive 2016-09-22 09:13:33 +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
Magnus Norddahl
7c862b85b3 Don't do ambient occlusion when rendering to texture 2016-09-22 03:49:19 +02:00
Magnus Norddahl
b6c64416be Added SceneData texture as the second colorbuffer when rendering a scene and placed fog data into it 2016-09-21 02:04:56 +02:00
Magnus Norddahl
24f748da03 Add gbuffer pass support to FShaderManager and FRenderState 2016-09-20 02:57:57 +02:00
raa-eruanna
20e620bbe7 Merge http://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2016-09-19 03:05:38 -04:00
Magnus Norddahl
b1871b272b Merge branch 'exposure_pass' into lightmath 2016-09-18 19:31:36 +02:00
Magnus Norddahl
210dd6d26a Make bloom/exposure less aggressive 2016-09-18 19:31:09 +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
Magnus Norddahl
38be2333d0 Merge branch 'exposure_pass' into lightmath
# Conflicts:
#	src/gl/renderer/gl_renderbuffers.cpp
#	src/gl/renderer/gl_renderbuffers.h
#	src/gl/renderer/gl_renderer.h
#	src/gl/scene/gl_scene.cpp
2016-09-18 16:22:44 +02:00
Magnus Norddahl
8dd12c8216 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath 2016-09-18 16:01:21 +02:00
Magnus Norddahl
1e2935f4e0 Added exposure pass calculating the bloom/tonemap exposure based on what the eye is seeing 2016-09-18 15:57:22 +02:00
raa-eruanna
e47e6d1d6e Merge http://github.com/coelckers/gzdoom 2016-09-17 20:06:22 -04:00
Major Cooke
80c1baa596 Fixed: Pitch was rotating around the wrong axis. 2016-09-17 12:10:22 -05:00
raa-eruanna
962291d18e Merge http://github.com/coelckers/gzdoom 2016-09-17 11:32:57 -04: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
raa-eruanna
7da94e5aca Merge http://github.com/coelckers/gzdoom 2016-09-16 11:49:42 -04:00
Christoph Oelckers
7c2886e8ea - fixed the last commit:
The altered vertices must always be copied to the actual buffer and it's not necessary to copy everything, copying the 4 changed ones is sufficient.
2016-09-16 08:10:19 +02:00
Magnus Norddahl
3c1868f7e6 Fix wrong flash rectangle size after window resize 2016-09-16 02:53:19 +02:00
Magnus Norddahl
95fef44200 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath 2016-09-15 00:31:34 +02:00
raa-eruanna
343cde4595 Merge http://github.com/coelckers/gzdoom 2016-09-14 14:08:19 -04: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
raa-eruanna
004c7de89b Part 1 of code merge 2016-09-14 04:03:39 -04:00
Magnus Norddahl
c54b4e74f5 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath 2016-09-13 23:44:12 +02:00
Christoph Oelckers
a98f364cc3 - added another missing nullptr check. 2016-09-13 23:37:19 +02:00
alexey.lysiuk
dcabcaa5b6 Fixed compilation on non-Windows platforms 2016-09-13 22:10:07 +03:00
Christoph Oelckers
c593dda8f3 - added missing nullptr check. 2016-09-12 23:03:27 +02:00
Magnus Norddahl
0fc5ee1ffd Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath 2016-09-12 22:30:46 +02:00
Magnus Norddahl
b378b3d05a Remove black bars from windowed mode 2016-09-12 20:43:45 +02:00
Magnus Norddahl
7bdbaaff22 GL aspect ratio adjustments 2016-09-12 20:29:26 +02:00
Magnus Norddahl
a0b6a0275c Fix random texture sampling bug 2016-09-11 11:09:40 +02:00
Christopher Bruns
924aaa3a92 fixed: Delay setup of quad-buffered stereo 3d mode, in case a useful OpenGL context is not immediately provided. 2016-09-11 00:45:17 +02:00
Magnus Norddahl
03d0b09f29 Fix depth blur 2016-09-10 22:39:09 +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
63fb604e98 Fix stripes in the reconstructed normals due to down scaling 2016-09-09 18:19:00 +02:00
Magnus Norddahl
8861b1aaff Grab tanHalfFovy from the projection matrix 2016-09-09 09:47:46 +02:00
Magnus Norddahl
f6bede8374 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath
# Conflicts:
#	src/gl/renderer/gl_renderbuffers.cpp
#	src/gl/renderer/gl_renderbuffers.h
#	src/gl/renderer/gl_renderer.h
#	src/gl/scene/gl_scene.cpp
#	wadsrc/static/language.enu
#	wadsrc/static/menudef.z
2016-09-09 09:31:30 +02:00
Magnus Norddahl
d83a72f361 Add missing IsEnabled check 2016-09-09 00:36:12 +02:00
Magnus Norddahl
63dc394913 Present function for left, right and quad-buffered stereo3d 2016-09-09 00:36:11 +02:00
Magnus Norddahl
8b7267cf87 MaskAnaglyph present mode 2016-09-09 00:36:11 +02:00
Magnus Norddahl
ccbe5160b0 Split F2DDrawer::Flush into Draw and Clear 2016-09-09 00:36:10 +02:00
Magnus Norddahl
aaa3581ee6 Hook up eye textures in renderer 2016-09-09 00:36:10 +02:00
Magnus Norddahl
4bdd872f09 Add eye textures and FBOs to FGLRenderBuffers 2016-09-09 00:36:09 +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
raa-eruanna
5a64307ad1 Changes the tonemap generation algorithm. 2016-09-08 00:51:48 +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
95bedac6ca - inlined FHardwareTexture::GetTexDimension. 2016-09-04 13:14:14 +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
3727c5ed0f Mark portals in scene alpha channel for the SSAO pass 2016-09-04 08:15:29 +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
Magnus Norddahl
5f02e08c8e Fix minimize crash 2016-09-04 03:15:50 +02:00
Magnus Norddahl
dc39a006dc Fix palette tonemap precision and compile error on Intel 2016-09-04 02:37:59 +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
3ae2e77512 - added xBRZ files. 2016-09-03 16:55:16 +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
Magnus Norddahl
e7765bb240 Move SSAO pass to be before translucent rendering
Fix depth sampling location when not using fullscreen scene
2016-09-03 04:29:50 +02:00
Magnus Norddahl
902097d6da Resolve multisampling depth in shader 2016-09-03 04:12:00 +02:00
Magnus Norddahl
b1c1e6aae7 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath
# Conflicts:
#	src/gl/renderer/gl_renderbuffers.cpp
2016-09-03 01:17:16 +02:00
Christoph Oelckers
8b7a87f256 - fix conditions for DrawBlend calls. 2016-09-03 00:43:18 +02:00
Christoph Oelckers
90ab0223a6 - handle colormap parameter reset when renderbuffers are toggled. 2016-09-03 00:36:23 +02:00
Magnus Norddahl
77dde2e3ad Fix not switching back to the default frame buffer when gl_renderbuffers is toggled off 2016-09-03 00:13:05 +02:00
Christoph Oelckers
ee503ea275 - removed now redundant mystdint.h file.
Visual Studio now ships stdint.h so this workaround is no longer needed.
2016-09-02 10:55:56 +02:00
Magnus Norddahl
98032bc73f Change SSAO blur to be depth aware 2016-09-02 05:45:00 +02:00
Magnus Norddahl
5a0c61a2d5 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_renderbuffers.cpp
#	src/gl/scene/gl_scene.cpp
2016-09-02 02:40:44 +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
Magnus Norddahl
8a2737a0ce Fix precision issue in SSAO shader 2016-09-01 07:15:40 +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
Magnus Norddahl
55ea4a7729 Add ssao random texture 2016-08-30 01:09:21 +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
Magnus Norddahl
240ebf94a1 Remove radius increase in point light modes 2016-08-29 22:42:46 +02:00