Commit graph

62 commits

Author SHA1 Message Date
myT
6b9d35df8c fixed /imageinfo and /shadermixeduse 2022-12-11 19:09:34 +01:00
myT
a7e87a065b fixed the reported selected MSAA sample counts for GL2/GL3 2022-12-04 01:02:37 +01:00
myT
69c1bee127 simplified and improved r_vertexLight handling 2022-12-03 04:57:58 +01:00
myT
cfdba32b24 added /imageinfo and /shadermixeduse 2022-11-25 03:32:41 +01:00
myT
0be40a60a7 the new demo player now has smoother animations at low time scales 2022-11-04 05:06:38 +01:00
myT
f401f742ee added a new demo player with fast seeking support
added cl_demoPlayer and cl_escapeAbortsDemo
2022-11-04 05:01:00 +01:00
myT
c8c9bef131 added r_depthClamp and cap_DepthClamp 2022-10-23 02:58:20 +02:00
myT
1b74aed8b9 removed the useless myftol macro 2022-06-17 03:38:39 +02:00
myT
3dc34d47f3 replaced the CPU image resampling functions with something better 2022-06-17 01:59:56 +02:00
myT
2389b5db39 updated stb_image.h 2022-06-17 01:46:01 +02:00
myT
e56a11b638 added /shaderinfo 2022-05-28 16:50:42 +02:00
myT
866b93ef5e turned r_showtris and r_shownormals into bitmasks 2022-04-29 21:12:01 +02:00
myT
4670a811c1 added r_ignoreShaderSortKey as a work-around for broken maps 2022-04-24 22:44:25 +02:00
myT
8c32b986f6 added r_mapGreyscale and r_mapGreyscaleCTF 2022-04-23 23:38:06 +02:00
myT
dbfb3c5028 fixed delayed shader loads leading to incorrect rendering and crashes (dynamic lights) 2022-04-10 22:14:19 +02:00
myT
981f059b7b do not replace older surfaces with newer ones but refuse to add new ones instead
surfaces added first are part of the map itself
it's better to drop e.g. some plasma cells rather than e.g. entire walls
it's also less error-prone to work with since we don't need to fix numbers on read
but only check on write in exactly 2 spots

also removed tr.shiftedEntityNum because it was unnecessary...
2022-04-10 21:45:59 +02:00
myT
f4e8e81ab5 fixed draw surface sorting
got broken with commit 633c5bd13c
2020-11-05 03:47:55 +01:00
myT
633c5bd13c tweaked the draw surface sort key for better performance
it minimizes depth fade <-> generic pipeline transitions
2020-10-08 04:08:38 +02:00
myT
7412c4b373 added r_alphaToCoverageMipBoost and did some other changes to A2C
- r_alphaToCoverageMipBoost scales the alpha value based on the current texture LoD
  this prevents the "fading with distance" effect
- mip 0 dimensions are tested to decide whether contrast boosting around 0.5 is enabled
  this is to deal with high r_picmip configs
- improved algorithm for excellent sharpness and minimized temporal artefacts
- GLSL 4.00 is required for the GL3 backend to use A2C (for textureQueryLod)
2020-07-07 03:49:52 +02:00
myT
d6f77a9b35 fixed crashes due to render command list overflows
also increased the buffer's size (e.g. to draw all chars in the console in 4K)

one of the crashes happens in R_SortDrawSurfs:
-> render command list is too full
-> RE_EndFrame returns early because it can't allocate RC_SWAP_BUFFERS
-> R_ClearFrame in RE_EndFrame doesn't get called
-> the next frame starts with r_firstSceneDrawSurf etc. not being reset to 0
-> r_firstSceneDrawSurf becomes really close to the maximum draw surface limit
-> the draw surface list is iterated incorrectly (no wrapping handled)
-> we fetch a draw surface we shouldn't
-> its sort key gets decoded and we get an invalid sorted shader index
-> we fetch a NULL shader at that index location
-> we attempt to read shader->sort
-> we crash reading address 76
-> 76 bytes is exactly the offset of the sort member into the shader_t struct
2020-05-08 03:38:26 +02:00
myT
1994475982 renamed r_noiseScale to r_ditherStrength for consistency 2020-04-28 17:04:43 +02:00
myT
718b966414 depth fade fixes and improvements
- renamed r_softSprites to r_depthFade
  the term's more descriptive and it helps that UE4 uses it
- fixed the GL3 fragment shader halving the depth bias
- fixed the D3D11 pixel shader only fetching depth sample 0
  not fixed for GL3 yet, see the code comments for that
- added support for more blend states
- added the q3map_cnq3_depthFade general shader directive
2020-04-26 16:32:51 +02:00
myT
a5e28eb08f added r_transpSort and we can now sort all surface types by depth
also fixed up RE_AddPolyToScene's overflow check
2020-04-16 05:01:48 +02:00
myT
d5984db690 removed r_nobind and r_showImages, wrote help etc. for the renderer's other temp/cheat CVars 2020-04-02 05:06:00 +02:00
myT
546296e6ef fixed r_showsky and cleaned up the related GAL code 2020-04-02 04:50:12 +02:00
myT
ae30c5a311 r_mapBrightness can now be used with r_fullbright for lightmapped surfaces 2020-02-27 05:26:19 +01:00
myT
36f363b47a D3D11 tweaks, added r_d3d11_presentMode, removed r_d3d11_maxQueuedFrames
the D3D11 tweaks:
- better error message formatting
- D3DDDIERR_DEVICEREMOVED from Present is a fatal error too
- synchronized offsets is always the automatic behavior for now
  it turns out that split mode isn't always the fastest for nVidia
2020-02-24 01:48:43 +01:00
myT
85583acc9c dynamic lights apply to even more surfaces and have a nicer fall-off
- ditched vertex colors (not wanted) and alpha tests (not needed) in the shaders
- using a Bezier fall-off to get much softer edges
- added no-depth-write transparent surfaces support by adjusting the depth test
- multiplying the diffuse texture's color by its alpha in non-opaque passes
- fixed triangle rejection based on cull type and normal direction
- reflecting normals in shaders to support two-sided surfaces
- rejecting surfaces with no diffuse stage or bad blend states as early as possible
- liquids get lit weaker than other surfaces
2020-02-21 08:26:12 +01:00
myT
01ce4063b5 added r_lightmapGreyscale
thanks to Jakub 'kubaxvx' Matraszek for his contribution
2020-01-12 23:03:54 +01:00
myT
e91f6e1c08 re-added r_textureMode to keep GL_NEAREST compatibility 2020-01-12 23:03:41 +01:00
myT
4968bfca6d crash and drawing fixes for r_shownormals, r_showtris and r_debugSurface
- preventing crashes and drops with r_shownormals
- fixed the colors of r_showtris, r_shownormals and r_debugSurface
- simplified the overflow macro
2019-12-26 16:16:30 +01:00
myT
0cbfe60d86 fixed hyperspace rendering 2019-11-12 04:23:49 +01:00
myT
7939488266 fixed incorrect state bits for shaders when loading a map with no lighting 2019-09-25 05:35:45 +02:00
myT
0087c2bf14 fixed fog-only shaders being recognized as sky shaders 2019-09-25 05:34:22 +02:00
myT
8ee79c7b9e added r_rtColorFormat to select the color format for render targets
fixed FindBestAvailableAA not testing the depth/stencil format
2019-09-25 05:31:55 +02:00
myT
db4fb31658 added OpenGL 3.2 and Direct3D 11 renderer back-ends 2019-09-25 05:25:59 +02:00
myT
6f3908ceaa completely removed flare support 2019-09-25 05:21:01 +02:00
myT
39af360fdc removed FreeType and the R_REGISTERFONT syscalls 2019-09-25 05:14:07 +02:00
myT
afb9b725e9 fixed lightmap texture coordinates in all cases 2019-03-19 17:47:19 +01:00
myT
b909f05195 bundling lightmap tiles into texture atlases to improve batching 2018-12-08 23:36:27 +01:00
myT
a26b150c59 faster map loads by limiting the rendering back-end's frame-rate 2018-12-08 22:43:58 +01:00
myT
515ca0883e minimizing disables the rendering back-end except for videos/screenshots
when minimized, we call the rest of the logic all the same (including the VM calls)
only 1 screenshot command can be issued per frame (i.e. only first one is kept)
2018-01-07 00:03:42 +01:00
myT
fe60c9e620 always clearing to avoid artifacts in unrendered areas (e.g. CPMA's server info UI) 2017-12-29 22:59:19 +01:00
myT
3c52752dd3 added help panel and colorized help text
added con_drawHelp and con_col*
letting the mod know we support the "cap_ExtraColorCodes" extension
con_colText overrides ^7 in the console and the help panel
extended console back scroll arrows all the way
2017-12-27 05:13:33 +01:00
myT
9b60bd762d replaced r_(map)OverBrightBits with r_(map)Brightness 2017-11-22 18:59:51 +01:00
myT
964879bc5e changed r_mode and added r_blitMode 2017-11-22 18:26:26 +01:00
myT
e26163aa79 added screenshotnc and screenshotncJPEG 2017-11-05 22:40:32 +01:00
myT
c60d47e93f cleaned up tr_gl2.cpp and prefixes in win32 code
tr_gl2.cpp now uses the proper interface for printing errors
tr_gl2.cpp now has function names that make sense
removed old references to GLimp_*
cleaned up prefixes in the Windows platform layer
2017-11-03 19:35:35 +01:00
myT
9362d9bf53 deleted 2-threads rendering support (SMP) 2017-11-03 19:34:32 +01:00
myT
4cd544217c platform layer GL interface cleanup
renamed and documented the core GLimp functions
moved the memset calls out of GLimp_Shutdown
dealing with anisotropic filtering properly and fixed the cvar's range and help
platform extension loading is done through Sys_GL_LoadExtensions
throwing fatal errors is done by the renderer exclusively
removed QGL_Init and QGL_Shutdown
cleaned up glconfig_t
filling up the unused glConfig fields in the renderer for old mods
2017-11-03 19:33:54 +01:00