Commit graph

23 commits

Author SHA1 Message Date
Daniel Gibson
161a0b39b9 Better support for mirrors seeing other mirrors, #367
It used to crash because after recursing into R_MirrorPoint(), which
calls tr.CropRenderSize(), about MAX_RENDER_CROPS times,
CropRenderSize() wrote behind the end of tr.renderCrops[] and damaged
a pointer.
Even if it didn't crash because of that, endlessly recursing is a bad
idea, so it's limited now. The limit can be configued with the new
r_maxMirrorRecursion CVar, but the hard limit is MAX_RENDER_CROPS-3 = 5

Another problem was that mirrors and other subviews render into
a texture, specifically globalImages->scratchImage ("_scratch"), so
it could happen that it got written to several times before being used.
Now there are 8 scratch images (+ the original "_scratch" which is also
used by gamecode) that the subview code cycles through to minimize the
chance of overwriting something that's still in use.
2025-01-23 03:34:05 +01:00
Daniel Gibson
cef1178776 Allow Soft Particles for player-weapons after all, fix issue properly
The previous commit didn't fix the issue for the pistol and only was a
workaround anyway. So I reverted that and fixed the issue properly.

The underlying issue is that the particle's material sets the
texture matrix (with "translate" or "scale" or whatever), and the soft
particle rendering code (and shader) didn't take the texture matrix
into account.
Now it does, in a similar way as the interaction shader code.

Fixes https://github.com/dhewm/dhewm3-sdk/issues/36
2024-07-30 01:49:08 +02:00
Daniel Gibson
ac6ec0cc45 Fix some typos 2024-07-25 03:24:20 +02:00
Daniel Gibson
724ab1727c Add settings for soft particles in menu, documentation, cleanups
r_skipDepthCapture is now called r_enableDepthCapture, and instead of
being a bool it's now an int with -1 meaning "enable if soft particles
are used"
2024-07-25 03:24:20 +02:00
Daniel Gibson
3c887d5af5 Integrate (working!) soft particle shader, clean up that code a bit
turned out the whole problem with soft particles what that the vertex
shader used vertex.attrib[8] instead of vertex.texcoord (and with
nvidia drivers those are equivalent)

I integrated the shader source into the c++ code so I don't have to
ship glprogs/soft_particles.vfp
2024-07-25 03:24:20 +02:00
Daniel Gibson
a407a6060f hack to draw softened particles without blending
so when the shader writes a debug value as a color,
I get to see that color
2024-07-25 03:24:20 +02:00
Daniel Gibson
47bd8afa91 Try to ensure currentDepthImage always uses NEAREST filtering
cleaner than only setting it in CopyDepthbuffer()
2024-07-25 03:24:20 +02:00
Daniel Gibson
23627380dd some debug code for soft particles in RB_STD_T_RenderShaderPasses() 2024-07-25 03:24:20 +02:00
Daniel Gibson
41eef54611 Merge soft particles from thedarkmod 2.04
don't really work, though
2024-07-25 03:24:20 +02:00
Daniel Gibson
dc42bdc873 Do gamma correction (r_gamma, r_brightness) in shaders
by injecting code to do it into fragment shaders.

Can be disabled with r_gammaInShaders 0

refs #385
2021-06-20 03:36:39 +02:00
Daniel Gibson
f3a4d92d33 Remove C++11-isms
accidentally used nullptr instead of NULL, oops..
2020-07-13 05:34:13 +02:00
Daniel Gibson
f24f18a61e Use OpenGL2 glStencilOpSeparate() for shadows, if available
can be enabled/disabled with the r_useStencilOpSeparate for comparisons

(like Z-Fail, this doesn't really seem to make a difference on my main
 machine, neither on my RPi4)

Partly based on Pat Raynor's Code:
2933cb5545/neo/renderer/draw_stencilshadow.cpp
2019-11-03 03:13:21 +01:00
Daniel Gibson
aeb03cc4e4 Allow switching off "Carmacks Reverse" via CVar r_useCarmacksReverse
mainly useful for comparisons

The Z-Fail code is based on Leith Bade's code by the way:
d4de024341
2019-11-03 03:13:21 +01:00
Leith Bade
b6b5827aff Put back the old patented "Carmack's Reverse" depth fail stencil shadow technique. 2019-11-03 00:19:03 +01:00
dhewg
f4de0ed8c1 Remove the deprecated arb renderer 2012-07-20 00:13:02 +02:00
dhewg
6aa9b3602e Remove the deprecated nv20 renderer 2012-07-20 00:13:01 +02:00
dhewg
3f67a28abe Remove the deprecated nv10 renderer 2012-07-20 00:13:00 +02:00
dhewg
4b67aae8fe Remove the deprecated r200 renderer 2012-07-20 00:12:59 +02:00
dhewg
32530bf7a2 Get rid of GLimp_EnableLogging
Only stubs left.
2012-01-02 15:44:00 -05:00
dhewg
736ec20d4d Untangle the epic precompiled.h mess
Don't include the lazy precompiled.h everywhere, only what's
required for the compilation unit.
platform.h needs to be included instead to provide all essential
defines and types.
All includes use the relative path to the neo or the game
specific root.
Move all idlib related includes from idlib/Lib.h to precompiled.h.
precompiled.h still exists for the MFC stuff in tools/.
Add some missing header guards.
2011-12-19 23:21:47 +01:00
dhewg
79ad905e05 Fix all whitespace errors
Excluding 3rd party files.
2011-12-10 15:35:54 +01:00
dhewg
ff493f6847 Fix quoting in GPL headers 2011-12-10 15:34:48 +01:00
Timothee 'TTimo' Besset
fb1609f554 hello world 2011-11-22 15:28:15 -06:00