Christoph Oelckers
89d607c9a6
- moved all rendering code into a common subdirectory.
...
No changes to the files themselves was made.
2019-01-31 19:58:17 +01:00
Kevin Caccamo
758cd77e55
Rename ColorAdd to AddColor, and use it ingame
...
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel
2018-12-26 16:58:27 +01:00
Christoph Oelckers
f2dcff4386
- more options for Doom 64 style gradients on walls:
...
* Colors can npw be defined per sidedef, not only per sector.
* Gradients can be selectively disabled or vertically flipped per wall tier.
* Gradients can be clamped to their respective tier, i.e top and bottom of the tier, not the front sector defines where it starts.
The per-wall colors are implemented for hardware and softpoly renderer only, but not for the classic software renderer, because its code is far too scattered to do this efficiently.
2018-11-11 16:04:36 +01:00
Christoph Oelckers
118bc78fe3
- moved the entire OpenGL backend into a separate namespace.
2018-10-29 13:56:17 +01:00
Christoph Oelckers
5a4e5a8038
- moved the remaining parts of the main vertex buffer to hwrenderer.
2018-10-27 14:42:24 +02:00
Christoph Oelckers
9a03ba3cc5
- renamed FRenderState to FGLRenderState.
2018-10-20 13:05:36 +02:00
Christoph Oelckers
9253118bdc
- removed the quad drawer class
...
This isn't needed anymore.
2018-10-20 11:59:12 +02:00
Christoph Oelckers
bc1e659c7b
Revert "- reworked fog uniforms to move the global fog mode setting to the viewpoint buffer."
...
This reverts commit 8b26b6dd1e
.
This was causing problems with light mode 2 because some edge cases were no longer handled properly.
2018-09-16 22:38:20 +02:00
Christoph Oelckers
8b26b6dd1e
- reworked fog uniforms to move the global fog mode setting to the viewpoint buffer.
2018-09-06 19:14:30 +02:00
Christoph Oelckers
5e39890118
- use a uniform buffer for per-scene data like rotation matrices.
2018-09-02 18:40:36 +02:00
Christoph Oelckers
82d7e5970f
- moved the clipline uniform to the viewpoint buffer.
...
This was the final one of the per-scene values that could be taken out of the render state.
2018-06-22 23:49:39 +02:00
Christoph Oelckers
80a9028938
- mirror clip planes moved - not working yet.
2018-06-22 22:45:05 +02:00
Christoph Oelckers
d5af939119
- more uniforms moved.
...
(not working yet.)
2018-06-22 21:32:38 +02:00
Christoph Oelckers
43e1a2d249
- moved uViewHeight and uCameraPos to the viewpoint uniform struct.
2018-06-22 21:05:36 +02:00
Christoph Oelckers
9486180843
- simplify the interface.
2018-06-21 21:36:12 +02:00
Christoph Oelckers
eb277cc101
- calculate the normal view matrix at a higher level.
2018-06-20 13:49:06 +02:00
Christoph Oelckers
4937848123
- refactoring of fixed colormap stuff to have it better organized and to reduce the number of uniforms in the main shader.
...
This removes 3 uniforms, consisting of 9 floats. Those were merged into other values that never get used at the same time.
It also moves the costly setup of the fixed colormap out of the render state into the 2D processing code.
Since 3D forces use of render buffers now, it is no longer necessary to draw the entire scene with the colormap active, meaning it can be handled more efficiently.
2018-06-16 22:40:44 +02:00
Christoph Oelckers
3401876476
- use FShaderProgram through an abstract interface and remove all dependencies on the GL renderer from the shader definition source files.
2018-06-13 22:08:55 +02:00
Christoph Oelckers
ce50b0e46b
- read sampler bindings from the shader instead of tagging along a large amount of support data.
...
Works for most shaders, except SSAO.
2018-06-13 17:44:49 +02:00
Magnus Norddahl
763c5c9769
- change ssao pass to use an uniform block
2018-06-11 20:48:43 +02:00
Christoph Oelckers
1fc4c9801b
- moved all GLDEFS parsing into a dedicated source file.
...
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.
2018-04-02 12:28:20 +02:00
Christoph Oelckers
a40e085a46
- 2D drawer implementation complete for hardware renderer.
...
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Magnus Norddahl
07fa310f23
- move material light modes to their own subshader lumps
2018-02-20 00:13:05 +01:00
Magnus Norddahl
7a59bcde4c
- move glossiness and specular level to GLDEFS
2018-01-25 19:53:55 +01:00
Magnus Norddahl
0855418475
Merge branch 'gzdoom' into materials
...
# Conflicts:
# src/gl/shaders/gl_shader.cpp
# src/gl/shaders/gl_shader.h
2018-01-25 19:21:19 +01:00
Magnus Norddahl
0f69778e23
- Add new material shader entries for specular and PBR light modes
2018-01-21 01:53:44 +01:00
Magnus Norddahl
4dd2d789f4
- Rename mTextureEffects to mMaterialShaders to help distinguish between those and effect shaders (mEffectShaders)
...
- Add MaterialShaderIndex enum
2018-01-21 01:19:16 +01:00
Magnus Norddahl
a23e5f49f6
- Add "fuzz software" to GL that renders fuzz like the scaled fuzz mode in the software renderer
2018-01-07 02:29:55 +01:00
Magnus Norddahl
ddd1b629c3
- Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers
2017-07-09 19:01:34 +02:00
Christoph Oelckers
12d073a27d
- objectcolor stuff.
...
# Conflicts:
# src/gl/renderer/gl_renderstate.cpp
2017-01-28 19:06:21 +01:00
Rachael Alexanderson
9a777f719b
- Added "gl_bandedswlight" to reduce the software light emulation gradient to 32 levels.
2017-01-24 22:24:53 +01:00
Magnus Norddahl
ecb57d6cd9
Merge remote-tracking branch 'gzdoom/master' into ssao
...
# Conflicts:
# src/gl/renderer/gl_renderer.cpp
# src/gl/scene/gl_scene.cpp
# src/gl/shaders/gl_shader.cpp
# wadsrc/static/language.enu
# wadsrc/static/menudef.zz
2016-10-04 00:01:03 +02:00
Christoph Oelckers
4eb5f10b02
- use normals to have proper light attenuation. So far only implemented for walls and flats. Models are planned but need some thinking about how to efficiently collect all required lights for an object.
2016-10-03 16:09:32 +02:00
Magnus Norddahl
9af34bac69
Add gbuffer pass support to FShaderManager and FRenderState
2016-09-25 00:22:32 +02: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
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
5f09d3b7ef
Add FBufferedUniformSampler because sampler uniforms may default bind to other locations than zero
2016-08-26 01:46:39 +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
Christoph Oelckers
675822004d
- use static buffer data and a uniform to handle the texture positioning of the present shader.
...
That's again one less write access to the buffer. The uniform method was chosen because this way a buffer update can be completely avoided, and setting a single uniform is a lot cheaper and simpler to handle.
2016-08-08 16:06:02 +02:00
Christoph Oelckers
21283b18f4
- preparations for using clip planes on line portals.
2016-04-29 01:48:06 +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
fc57180d7e
- added necessary state to implement 3D light splitting using hardware clipping planes.
2016-01-30 23:01:11 +01: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
fd3128a164
- fixed: When changing enhanced nightvision mode the shaders need to have their fixed colormap state reset to ensure that the new settings get used.
...
- fixed: The shader code for handling special fixed colormaps did not use the color vertex attribute which was most evident with the 'shadow' render style on the spectre.
2014-10-05 09:40:36 +02:00
Christoph Oelckers
a63871d170
- at least for Intel GMA we need shaders without 'discard' to render non-transparent stuff. The performance penalty is rather hefty here.
2014-08-02 21:06:34 +02:00
Christoph Oelckers
7967082e60
- use the light buffer to handle dynamic lighting.
2014-08-01 20:59:39 +02:00
Christoph Oelckers
bdf5bbd34e
- make the shader timer part of the render state.
2014-07-26 20:56:10 +02:00
Christoph Oelckers
1b7f5a2e6a
- replaced builtin texture coordinate vertex attribute.
2014-07-15 00:59:01 +02:00
Christoph Oelckers
5a322742c3
- remove use of builtin and deprecated color vertex attribute.
2014-07-15 00:37:13 +02:00
Christoph Oelckers
ed8a21fd86
- replaced deprecated alpha testing with shader code.
2014-07-14 21:14:43 +02:00