A renderer for ioquake3 that uses bgfx.
This is a renderer for ioquake3 that uses bgfx to support multiple graphics APIs.
Minimum requirements: OpenGL 3.2 or Direct3D 11.
| Bloom | Extra Dynamic Lights |
|---|---|
| |
|
| Planar Reflections | Soft Sprites |
|---|---|
| |
|
| Windows (x86) | Linux (x86_64) | |---------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
These are updated after every commit.
premake5 gmakeif premake5 is in your PATH. Otherwise,
./bin/premake5 gmaketo use the local copy of premake.
The generated makefiles are written to
build.
Packages: libgl1-mesa-dev libsdl2-dev
ioquake3 SDL2 libs and headers are required. Clone ioquake3 to the same parent directory as ioq3-renderer-bgfx.
Use ioq3-premake-msvc.
Linux/Cygwin/MinGW-w64/MSYS2:
premake5 shadersor
./bin/premake5 shaders
Visual Studio: run
bin/shaders.bat
Copy the renderer binaries from
build\bin_*to where you have a ioquake3 test build installed.
Select the renderer in-game with
cl_renderer bgfxfollowed by
vid_restart.
Run the following console variables without any arguments to see a list of possible values.
Variable |
Description |
---|---|
raa | Anti-aliasing. |
rbackend | Rendering backend - OpenGL, Direct3D 9 etc. |
rbgfxstats | Show bgfx statistics. |
rbloom | Enable bloom. |
rbloomScale | Scale the bloom effect. |
rdynamicLightIntensity | Make dynamic lights brighter/dimmer. |
rdynamicLightScale | Scale the radius of dynamic lights. |
rextraDynamicLights | Enable extra dynamic lights on Q3A weapons. |
rfastPath | Disables all optional features to improve performance. |
rlerpTextureAnimation | Use linear interpolation on texture animation - flames, explosions. |
rmaxAnisotropy | Enable anisotropic filtering. |
rtextureVariation | Hide obvious texture tiling in a few Q3A maps. |
rwaterReflections | Show planar water reflections. Only enabled on q3dm2 for now. |
Command |
Description |
---|---|
r_captureFrame | Capture a RenderDoc frame. |
screenshotPNG |
The renderer must be built in debug mode -
make config=debug_x86or
make config=debug_x86_64.
Place the RenderDoc shared library -
renderdoc.dllor
librenderdoc.so- in the same directory as the renderer binary.
Use the
r_captureFrameconsole command to capture a frame. Bind it to a key so the console doesn't show up in the capture.
Capture files will be saved to the same directory as the ioquake3 executable as
ioq3-renderer-bgfx_frameX.rdcwhere X is the frame number.