Renderer FAQ
Contents
Troubleshooting
Q: I see a lot of ugly color banding, is this a bug? How to fix?
A: You have linear lighting enabled with high-precision rendering disabled, reapply your preferred graphics preset to fix it.
Hardware Compatibility
Q: Do you have a plan for Vulkan?
A: Yes, a Vulkan renderer is in development.
Q: Will you provide a renderer free of support from very old hardware?
A: Yes, the Vulkan renderer is meant to drop support for very old hardware.
Q: Does the OpenGL rendered have old hardware compatibility?
A: Yes, it supports down to OpenGL 2.1.
Q: Does the old-OpenGL compatibility mode slow down the renderer on newer hardware?
A: No, the old-OpenGL or new-OpenGL execution path is selected at game start and map load. It is not done while playing.
Q: Does the OpenGL renderer supports the most recent OpenGL versions?
A: Yes, it supports OpenGL 4.6 (which is the most recent OpenGL version) and can even rely on OpenGL extensions that are not part of OpenGL 4.6 like bindless textures.
Q: Can a single engine executable run either on old or new hardware?
A: Yes, the wide compatibility range is achieved by loading OpenGL 3.1 as a baseline and selectively enabling extensions from higher OpenGL versions when supported, this is done when the game starts. For even older hardware, older OpenGL versions and extensions are selected when the game starts and functions with alternative implementations are selected at map load.
Q: Is the code running on my GPU contains alternative code paths for every supported hardware?
A: No, the renderer implements an advanced templating system generating the smallest possible GLSL code for your hardware before the map is loaded. No compatibility branching is executed on the GPU and no superfluous code is stored in VRAM.
Q: Will you keep support for old hardware in the OpenGL renderer?
A: Yes, since the Vulkan renderer drops the support for very old hardware, we don't have to drop that support in OpenGL to provide a relic-free renderer.
Map compatibility
Q: Do you care about compatibility with legacy maps?
A: Yes, we consider legacy maps from the id Tech 3 generation (Quake 3, Tremulous, Wolf: ET…) should be supported and rendered the way they were.
Q: Is the compatibility with legacy maps considered complete?
A: Yes, except the alphaGen lightingSpecular feature (see below), everything should now be supported.
Q: Are the map features from any game code or mod from the id Tech 3 ecosystem supported?
A: No, some historical map features are not implemented in the renderer but in the game code and then such support is out of scope. It may or may not be supported in the game code, but it's not a renderer duty.
Q: Do you promise to be compatible with every experimental pre-release unfinished concept map that may be found in leaked dumps or attics?
A: No, if it works, good for you; if it's easy to make it work, we may have a look; if you propose a patch, we may accept it.
Lighting
Q: Did you change the way the map lighting was rendered?
A: No, but we added a new way to process lighting (linear lighting, aka sRGB support).
Q: Does the linear lighting (sRGB support) change the way existing maps are rendered?
A: No, maps have to be explicitly rebuilt for the linear lighting for the engine to use linear lighting.
Q: Can a legacy map be mistakenly rendered with the linear lighting?
A: No, maps have to be explicitly rebuilt for the linear lighting for the engine to use linear lighting.
Q: Does rebuilding a map with linear lighting change the way maps are rendered?
A: Yes, that's the purpose, the equations were not physically correct before.
Q: Is it still possible to rebuild maps the old way?
A: Yes, we provide multiple old map build presets. The renderer keeps the support for what is built the old way.
Q: Did the overbright patches change the way legacy maps are rendered?
A: No, they restored the way legacy maps were rendered. Previously we had a bug, so if you see a change, it's because a bug was misrendering something before.
Q: Did you have to roll back the overbright support?
A: No, but when overbright support was reintroduced in 0.55.0, it mistakenly made the effect too strong (equivalent to r_overbrightBits 2). In 0.55.3 it was corrected to use the historical Q3/Tremulous value of r_overbrightBits 1.
Q: Is the original overbright configuration used when rendering legacy maps?
A: Yes, when rendering legacy maps (or maps built the old way), the default overbright settings are the ones from the reference id Tech 3 experience which was “players playing full-screen on Windows”, we also have historical screenshots showing unambiguously that such overbright configuration was the expected behaviour in Tremulous time as well.
Q: Do you support other overbright variants?
A: Yes, mappers can customize the overbright feature using specific keys in the worldspawn entity, it is modifiable both in map source and precompiled BSP using existing tools.
Q: Do you implement realtime lights?
A: Yes, implemented using tiled techniques.
Q: Do you implement tone mapping?
A: Yes.
Q: Are the linear lighting and tone mapping meant to work together?
A: Yes, they even work better together.
Q: Will you provide adaptive lighting?
A: Adaptive lighting is planned, work is in progress but not merged yet.
Q: Are the linear lighting (sRGB support) and adaptive lighting meant to work together?
A: Yes, in fact, both linear lighting, tone mapping and adaptive lighting are not only meant to work together, they are cumulative. Adaptive lighting requires tone mapping to work and requires linear lighting to be correct.
Lighting Features
Q: Do you support vertex lighting?
A: Yes.
Q: Do you support grid lighting?
A: Yes.
Q: Do you support light mapping?
A: Yes.
Q: Do you support deluxe mapping?
A: Yes.
Q: Do you support grid deluxe mapping?
A: Yes.
Q: Do you support external lightmaps?
A: Yes.
Q: Do you support mixed vertex lighting and light mapping on world surfaces?
A: Yes.
Q: Do you support light styles (multiple lightmaps blended at runtime for special effects)?
A: Yes.
Texturing features
Q: Do you support terrain blending?
A: Yes, including with multitextured materials.
Q: Do you support portals and mirrors?
A: Yes.
Q: Do you support recursive portals and mirrors?
A: Yes.
Q: Do you support portal alpha blending?
A: Yes.
Q: Do you support distance-based alpha blending?
A: Yes, we do support alphaGen portal.
Q: Do you support heat haze materials?
A: Yes.
Q: Do you support water materials?
A: No, the code is there but broken, we haven't fixed it yet.
Q: Do you support specular mapping?
A: Yes.
Q: Do you support normal mapping?
A: Yes.
Q: Do you support height mapping?
A: Yes.
Q: Do you support PBR?
A: Mostly, but it still work in progress.
Q: Do you support cube mapping?
A: Mostly, but it is still work in progress.
Q: Do you support alphaGen lightingSpecular?
A: Not yet: Formats/Known regressions since Tremulous
Format features
Q: Do you support the Quake 3 BSP map format (IBSP46)?
A: Yes.
Q: Do you support the Wolf:ET BSP map format (IBSP47)?
A: Yes.
Q: Do you support any other BSP map format?
A: No.
Q: Do you support the old TGA image format?
A: Yes.
Q: Do you support any more modern image format?
A: Yes: JPG, PNG, WebP, DDS, KTX, CRN.
Q: Do you support the old WAV sound format?
A: Yes.
Q: Do you support any more modern sound format?
A: Yes: Ogg Vorbis and Opus.
Q: Do you support the old MD3 model format?
A: Yes.
Q: Do you support any more modern model format?
A: Yes: MD5Mesh/Anim, and IQM (InterQuake Model).
Q: Do you support skeleton models?
A: Yes.
Q: Do you support videoMap?
A: Yes.
Q: Do you support the old RoQ video format?
A: Yes.
Q: Do you support any more modern video format?
A: Not yet.
Tremulous features
Q: Do you know any renderer regression since Tremulous?
A: Nothing other than alphaGen lightingSpecular. If you find one, please report: issue tracker
