mirror of
https://bitbucket.org/CPMADevs/cnq3
synced 2024-11-22 20:11:43 +00:00
afc81437c3
- added the foundation for a GPU particle system - reworked volumetric particle injection
1315 lines
54 KiB
Text
1315 lines
54 KiB
Text
|
|
See the end of this file for known issues.
|
|
|
|
|
|
DD Mmm YY - 1.54
|
|
|
|
add: FFmpeg piping support for compression of audio/video captures
|
|
cl_ffmpeg <0|1> (default: 0) uses FFmpeg instead of writing raw .avi files
|
|
cl_ffmpegCommand <string> are the FFmpeg command-line options for the output file
|
|
cl_ffmpegExePath <string> (default: "ffmpeg") is the path of the FFmpeg executable to use
|
|
note that the path cannot contain spaces on Windows
|
|
cl_ffmpegOutPath <string> (default: "") is the video output directory
|
|
leave empty to write to cpma/videos as with .avi files
|
|
cl_ffmpegOutExt <string> (default: "mp4") is the output file extension
|
|
cl_ffmpegLog <0|1> (default: 0) enables the creation of 1 log file per capture
|
|
|
|
add: togglegui and toggleguiinput to toggle (the mouse input of) the built-in GUI system
|
|
|
|
add: key binds starting with "keycatchgui" always take precedence over everything else
|
|
they will work in the main menu, the demo player in protected mode, when the console is down, ...
|
|
here's how you would bind keys to access the new built-in GUI:
|
|
bind F1 "keycatchgui;togglegui"
|
|
bind F2 "keycatchgui;toggleguiinput"
|
|
|
|
add: r_guiFont <0 to 2> (default: 0) sets the GUI's font
|
|
0 - Proggy Clean (13px)
|
|
1 - Sweet16 Mono (16px)
|
|
2 - custom font file (see r_guiFontFile and r_guiFontHeight)
|
|
note that the custom font can only get loaded at client start-up
|
|
|
|
add: r_guiFontFile <string> (default: "") is the file path to the custom .ttf font file
|
|
|
|
add: r_guiFontHeight <7 to 48> (default: 24) is the custom font's height
|
|
|
|
add: r_gpuPreference <0 to 2> (default: 0) sets the GPU selection preference
|
|
0 - high performance (discrete graphics)
|
|
1 - low power (integrated graphics)
|
|
2 - none
|
|
|
|
add: r_gpuIndex <0 to GPU count> (default: 0) sets the specific GPU to use
|
|
0 - default (falls back to r_gpuPreference)
|
|
I - uses the GPU at index I from /gpulist
|
|
|
|
add: /gpulist lists available GPUs, the numbers can be used to set r_gpuIndex
|
|
|
|
add: r_sleepThreshold <2000 to 4000> (default: 2500) is the frame sleep time cushion, in microseconds
|
|
it's a trade-off between frame time consistency and CPU usage
|
|
set to 2000 if you have a struggling old/low-power CPU
|
|
2500 should be enough to deal with delayed thread wake-ups
|
|
use the frame graph to confirm that higher values help on your system
|
|
|
|
add: r_smaa <0 to 4> (default: 0) enables enhanced sub-pixel morphological anti-aliasing
|
|
0 - no SMAA
|
|
1 - low quality
|
|
2 - medium quality
|
|
3 - high quality
|
|
4 - ultra quality
|
|
|
|
add: r_shadingRate <0 to 6> (default: 0) sets the variable-rate shading (VRS) mode
|
|
0 - 1x1 (VRS off)
|
|
1 - 2x1 (base mode)
|
|
2 - 1x2 (base mode)
|
|
3 - 2x2 (base mode)
|
|
4 - 4x2 (extended mode)
|
|
5 - 2x4 (extended mode)
|
|
6 - 4x4 (extended mode)
|
|
the numbers are the horizontal and vertical subsampling factors
|
|
1x1 is forced for the sky, nopicmipped sprites (e.g. simple items)
|
|
and nopicmipped alpha tested surfaces (e.g. grates)
|
|
if extended modes are not supported, 2x2 is used instead
|
|
prefer horizontal subsampling as many maps have textures with thin horizontal lines
|
|
which become an aliased mess when vertically subsampled
|
|
|
|
add: r_normalSmoothing <0|1> (default: 1) enables smooth vertex normal generation
|
|
|
|
add: r_normalAreaWeight <0|1> (default: 1) enables area weighting for vertex normal generation
|
|
|
|
add: Cinematic Rendering Pipeline CVars
|
|
depth of field:
|
|
crp_dof <0|1|2> (default: 1) selects the depth of field mode
|
|
0 - disabled
|
|
1 - scatter-as-gather
|
|
2 - accumulation
|
|
crp_dof_overlay <0|1|2> (default: 0) draws a debug overlay mode
|
|
0 - disabled
|
|
1 - colorized blur
|
|
2 - focus plane
|
|
crp_dof_blades <0 to 16> (default: 6) is the aperture's blade count
|
|
set to less than 3 for a disk shape
|
|
crp_dof_angle <0 to 360> (default: 20) is the aperture's angle, in degrees
|
|
scatter-as-gather depth of field (fast, doesn't handle transparency properly):
|
|
crp_gatherDof_focusNearDist <1 to 2048> (default: 192) is the near-field's focus distance
|
|
crp_gatherDof_focusNearRange <1 to 2048> (default: 256) is the near-field's focus range
|
|
crp_gatherDof_focusFarDist <1 to 2048> (default: 512) is the far-field's focus distance
|
|
crp_gatherDof_focusFarRange <1 to 2048> (default: 384) is the far-field's focus range
|
|
crp_gatherDof_brightness <0 to 8> (default: 2) is the blur brightness' weight
|
|
accumulation depth of field (extremely slow, looks perfect with enough samples):
|
|
crp_accumDof_focusDist <2 to 2048> (default: 256) is the focus distance
|
|
crp_accumDof_radius <0.001 to 20> (default: 0.1) is the aperture radius in world units
|
|
crp_accumDof_samples <1 to 12> (default: 2) is per-axis sampling density
|
|
density N means (2N + 1)^2 scene renders in total, so be careful or you'll trigger TDR
|
|
crp_accumDof_preview <0|1|2> (default: 0) selects the real-time preview mode
|
|
0 - disabled
|
|
1 - 1/4 pixel count, 9 samples total
|
|
2 - 1/16 pixel count, 25 samples total
|
|
motion blur:
|
|
crp_mblur <0 to 3> (default: 0) sets the motion blur mode
|
|
0 - disabled
|
|
1 - camera blur only
|
|
2 - object blur only
|
|
3 - camera and object blur
|
|
crp_mblur_exposure <0.0 to 1.0> (default: 0.5) is the exposure time in percentage of frame time
|
|
miscellaneous:
|
|
crp_sunlight <0|1> enables sunlight on non-lightmapped surfaces
|
|
crp_volLight <0|1> enables volumetric lighting
|
|
fog volumes are lit by ambient light, dynamic lights and sunlight
|
|
crp_drawNormals <0|1> (default: 0) draws vertex normals as colorized wireframe lines
|
|
crp_updateRTAS <0|1> (default: 1) enables raytracing acceleration structure builds every frame
|
|
|
|
add: Cinematic Rendering Pipeline commands
|
|
cin_freezeFrame freezes the rendered frame (minus ImGUI and tone map) and G-Buffer for inspection
|
|
cin_freezeFrameMB freezes the rendered frame (minus ImGUI, tone map and motion blur)
|
|
|
|
fix: allocating enough memory for 4K screenshots and video captures
|
|
|
|
fix: the new demo player now drops zombie snapshots and snapshots from before a server time rewind
|
|
these problematic snapshots happen right before and after gamestate changes
|
|
|
|
chg: dropped 32-bit support
|
|
|
|
chg: dropped Linux/FreeBSD client
|
|
|
|
chg: Windows support is limited to 10 and 11
|
|
|
|
chg: reworked renderer with 2 new rendering pipelines
|
|
- removed all the Direct3D 11 and OpenGL code, now using Direct3D 12
|
|
- much improved input latency when V-Sync is enabled
|
|
- improved frame-time consistency ("frame pacing")
|
|
- MSAA and alpha-to-coverage have been removed
|
|
- Gameplay Rendering Pipeline (GRP)
|
|
- improved performance and better worst case input latency
|
|
- added SMAA for anti-aliasing (gamma-corrected and not applied to UI for best results)
|
|
- added VRS (Variable Rate Shading) support
|
|
- overhauled fog handling (faster, simpler, decoupled from surfaces)
|
|
- Cinematic Rendering Pipeline (CRP)
|
|
- order-independent transparency
|
|
- depth of field (scatter-as-gather or accumulation)
|
|
- shadowed point lights and sunlight
|
|
- volumetric lighting: fog and NanoVDB animations lit by ambient light, point lights and sunlight
|
|
- all corresponding CVars have the "crp_" prefix
|
|
|
|
chg: removed cl_drawMouseLag, r_backend, r_frameSleep, r_gpuMipGen, r_alphaToCoverage, r_alphaToCoverageMipBoost
|
|
removed r_d3d11_syncOffsets, r_d3d11_presentMode, r_gl3_geoStream, r_ignoreGLErrors, r_finish, r_khr_debug
|
|
removed r_verbose, r_customaspect, r_speeds, r_msaa, r_showsky, r_showtris
|
|
replaced r_swapInterval with r_vsync <0|1> (default: 0) to enable V-Sync
|
|
replaced r_textureMode with r_lego <0|1> (default: 0) to enable nearest-neighbor texture filtering
|
|
replaced r_shownormals with crp_debugNormals <0|1> (default: 0) to draw vertex normals
|
|
|
|
|
|
30 Oct 23 - 1.53
|
|
|
|
add: /registerdemos adds Windows file associations for demo files (.dm_68 .dm_67 .dm_66)
|
|
/unregisterdemos removes Windows file associations for demo files
|
|
on Windows, /demo can now play demo files that have an absolute path (e.g. /demo C:\test.dm_68)
|
|
|
|
add: r_teleporterFlash <0|1> (default: 1) draws bright colors when being teleported (use 0 for black)
|
|
|
|
add: s_khz <22|44> (default: 22) is the sound mixing sampling frequency: 22.05 kHz or 44.1 kHz
|
|
|
|
add: /writeconfig now has a "-f" option to force writing all CVars (whether archived or not)
|
|
|
|
add: /imageinfo <imagepath> prints where the image was loaded from and shaders that reference it
|
|
|
|
add: /shadermixeduse prints all images referenced in shaders with conflicting global directives
|
|
|
|
add: cl_demoPlayer <0|1> (default: 1) selects the demo playback system to use
|
|
cl_demoPlayer 0 = always uses the original demo player
|
|
cl_demoPlayer 1 = uses the new demo player with time rewind support when the mod supports it
|
|
|
|
add: cl_escapeAbortsDemo <0|1> (default: 1) decides whether the escape key can abort demo playback
|
|
reminder: you can always use /disconnect to stop demo playback
|
|
|
|
add: r_depthClamp <0|1> (default: 0) disables vertex clipping against the near and far clip planes
|
|
enabling this feature will raise the maximum allowed FoV value of CPMA 1.53
|
|
it turns the view frustum into a pyramid and prevents any vertex between the near clip plane
|
|
and the camera's position from getting clipped (but will still clip anything behind the camera),
|
|
which prevents solid objects from being seen through when too close to the camera
|
|
because depth values are clamped, improper depth ordering can potentially occur
|
|
|
|
add: /shaderinfo <shadername> [code] prints where the shader was loaded from and optionally the code
|
|
|
|
add: console mark mode (selection mode) can be toggled with Ctrl-M
|
|
use arrow keys, home/end or page up/down to move the cursor or extend the area when pressing shift
|
|
Ctrl-C/enter copies the selected text to the clipboard without color codes and exits mark mode
|
|
|
|
add: /searchconsole begins a new console search
|
|
press ctrl-F when the console is down to bring up the command
|
|
press (shift-)F3 to find the next match going up or down
|
|
just like in cmdlist/cvarlist/etc, * will match any amount of characters
|
|
|
|
add: r_ignoreShaderSortKey <0|1> (default: 0) ignores the shader sort key of transparent surfaces
|
|
instead, it sorts by depth and original registration order only
|
|
this is a work-around for broken maps like bones_fkd_b4 (grates drawn in front of simple items)
|
|
|
|
add: r_mapGreyscale <0.0 to 1.0> (default: 0) controls the map's desaturation level
|
|
r_mapGreyscale 0 = full color (nothing done)
|
|
r_mapGreyscale 1 = completely monochrome
|
|
|
|
add: r_mapGreyscaleCTF <0.0 to 1.0> (default: 0) controls the CTF map surfaces' desaturation level
|
|
r_mapGreyscaleCTF 0 = full color (nothing done)
|
|
r_mapGreyscaleCTF 1 = completely monochrome
|
|
it applies to the red/blue color-coded surfaces of popular CTF/NTF maps
|
|
|
|
add: net_proxy <ip> (default: "") is the proxy server to use when establishing client connections
|
|
|
|
add: /waitms <milliseconds> to delay command executions by the specified number of milliseconds
|
|
|
|
add: r_alphaToCoverageMipBoost <0.0 to 0.5> (default: 0.125) boosts the alpha value of higher mip levels
|
|
with A2C enabled, it prevents alpha-tested surfaces from fading (too much) in the distance
|
|
|
|
chg: with hybrid core CPUs (e.g. Intel gen 12+) on Windows, the main thread will only run on the P-cores
|
|
|
|
chg: the client can now read .wav files from the local file system when connected to a pure server
|
|
this allows e.g. cg_fragSound to load sounds from the local file system instead of .pk3 files
|
|
|
|
chg: CVar sets will use all arguments instead of only the first one
|
|
example: pressing n with `bind n "name x y z"` will rename to "x y z" instead of "x"
|
|
|
|
chg: invertedpenguin's RA blood pool has a new look to help better see the RA against its background
|
|
|
|
chg: forcing the nopicmip flag on 2 new texture folders: "textures/npmenv" and "textures/npmpads"
|
|
|
|
chg: r_vertexLight 1 no longer collapses shaders but replaces lightmaps with vertex colors
|
|
for transparent shaders, lightmaps are still used because vertex colors are broken on some maps
|
|
|
|
chg: bots can no longer get timed out (it happened sv_timeout seconds after bot_pause was enabled)
|
|
|
|
chg: r_gpuMipGen 0 now respects r_mipGenFilter but not r_mipGenGamma (gamma 2 is used)
|
|
the new code will slow down map loads in general but produces higher quality results
|
|
r_mipGenFilter BL is a special case without gamma correction that's much faster than before
|
|
|
|
chg: image load/save errors now print warnings instead of triggering drop errors
|
|
|
|
chg: the maximum texture resolution of 2048 is now enforced in all image loads
|
|
|
|
chg: updated icon courtesy of deft
|
|
|
|
chg: r_showtris/r_shownormals <bitmask> (default: 0) draws wireframe triangles/vertex normals
|
|
1 - enables the feature
|
|
2 - only draws for visible triangles
|
|
4 - draws for backfacing triangles
|
|
8 - uses the original vertex color
|
|
16 - uses the original vertex alpha as vertex color
|
|
|
|
chg: r_lightmap 1 now handles most alpha-tested surfaces
|
|
|
|
chg: com_soundMegs now defaults to 16
|
|
|
|
chg: the camera's near clip plane distance is now 1 instead of 4
|
|
|
|
chg: with r_backend GL3, depth fade with MSAA now requires GLSL 4.00 at a minimum
|
|
depth access is now correctly multi-sampled (less aliasing) and performance has improved as well
|
|
|
|
chg: with r_backend GL3, alpha to coverage now requires GLSL 4.00 at a minimum
|
|
|
|
fix: the renderer could crash on some maps without lightmaps (e.g. b0_beta5)
|
|
|
|
fix: with r_backend GL2, the extra clip plane for mirror/portal surfaces was not being used
|
|
this quick fix is likely to fail for some drivers and vendors due to its use of deprecated features
|
|
based on a few tests: OK on NVIDIA and Intel, not working on AMD
|
|
|
|
fix: long demo file names would cause video recording to output files with no extension or outright fail
|
|
|
|
fix: invalid skybox texture mip-mapping and filtering settings (e.g. cpm25 skybox seams)
|
|
|
|
fix: in render batches with multiple shaders where the second or later surface had a shader using
|
|
"rgbGen lightingDiffuse", the colors would be wrong and crashes could occur
|
|
|
|
fix: the reported MSAA sample counts for the GL2 and GL3 back-ends could be wrong
|
|
|
|
fix: registration of a read-only CVar would keep the existing value
|
|
|
|
fix: the Direct3D projection transform didn't perfectly match the OpenGL version
|
|
|
|
fix: /video was writing incorrect audio stream lengths to the .avi file headers
|
|
|
|
fix: /systeminfo /serverinfo /clientinfo /dumpuser would crash when tokens were too long
|
|
|
|
fix: with r_lightmap 1 and r_dynamiclight 1, lighting transparent surfaces could crash
|
|
|
|
fix: delayed shader loads could lead to incorrect rendering and crashes (mostly with dynamic lights)
|
|
|
|
fix: the nextdemo variable wasn't used to start the playback of a new demo when:
|
|
- a drop error happened during demo playback
|
|
- the engine failed to open the current demo file
|
|
|
|
fix: the Linux/FreeBSD client could crash during start-up
|
|
|
|
fix: with r_backend D3D11, the alpha channel's blend factors now match the original Q3 behavior
|
|
this affects shaders that use the following blendFunc modes: GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA
|
|
examples: jumppads on cpm3a and cpmctf3, jumppad trims on q3wcp14, shiny walls on q3wcp9
|
|
|
|
fix: batched surfaces with "tcMod turb" would generate incorrect texture coordinates
|
|
|
|
fix: throwing a fatal error when com_soundMegs is too low to load a map instead of freezing
|
|
|
|
fix: /video produced .avi files that started with silence when they were not first in the sequence
|
|
|
|
fix: with r_backend D3D11, some device reset scenarios caused fatal errors instead of video restarts
|
|
|
|
fix: CVar slots that have been freed (e.g. through unset/cvar_trim/cvar_reset) can now be re-used
|
|
|
|
fix: with alpha to coverage enabled, high r_picmip values should no longer cause
|
|
alpha-tested surfaces to become transparent in the distance (e.g. q3wcp14 corridor floors)
|
|
|
|
fix: with r_backend GL3, caching of shader uniforms could break with fog-only shaders
|
|
|
|
fix: with r_backend D3D11, partial clears incorrectly affected entire render targets
|
|
example: black views in CPMA multi-view with r_fastsky 1
|
|
|
|
|
|
01 Jun 20 - 1.52
|
|
|
|
add: FreeBSD x64 support
|
|
|
|
add: r_backend <GL2|GL3|D3D11> (default: D3D11 on Windows, GL3 otherwise) selects the rendering back-end
|
|
GL2 - OpenGL 2.0 minimum, OpenGL 3+ features used for r_msaa
|
|
GL3 - OpenGL 3.2 minimum, OpenGL 4+ features used for faster geometry upload, compute shaders, etc
|
|
D3D11 - Direct3D 11 hardware feature level 10.1 minimum, feature level 11.0 for compute shaders
|
|
|
|
r_backend | GL2 | GL3 | D3D11
|
|
feature avail. | | |
|
|
-----------------------|--------|--------|-------------------
|
|
MSAA | GL 3.0 | always | always
|
|
MSAA centroid sampling | never | always | always
|
|
depth fade | never | always | always
|
|
alpha to coverage AA | never | always | always
|
|
dithering | never | always | always
|
|
GPU mip-map generation | never | GL 4.3 | feature level 11.0
|
|
|
|
add: r_depthFade <0|1> (default: 1) enables depth fade rendering
|
|
this helps explosions, smoke, blood, etc. not having "sharp edges" when intersecting geometry
|
|
|
|
add: r_alphaToCoverage <0|1> (default: 1) enables alpha to coverage anti-aliasing
|
|
A2C AA can only work if MSAA is enabled (i.e. r_msaa > 1)
|
|
it is used to super-sample all fragments of alpha-tested surfaces
|
|
|
|
add: r_dither <0|1> (default: 0) reduces color banding artefacts by adding noise
|
|
|
|
add: r_ditherStrength <0.125 to 8.0> (default: 1.0) controls the amount of noise added by dithering
|
|
|
|
add: r_gpuMipGen <0|1> (default: 1) enables GPU-side mip-map generation
|
|
this helps improve map load time (less to upload) and image quality (see r_mipGenGamma, r_mipGenFilter)
|
|
|
|
add: r_mipGenGamma <1.0 to 3.0> (default: 1.8) specifies the gamma space in which the textures are stored
|
|
r_gpuMipGen 1 is required
|
|
it should be closer to 2.4 but defaults lower to not break the looks of some things (e.g. cpm3a tele)
|
|
while 1.0 will preserve the original engine's look, higher values will preserve contrast better
|
|
|
|
add: r_mipGenFilter <filter> (default: "L4") specifies which filter window is used to generate mips
|
|
r_gpuMipGen 1 is required
|
|
the numbers specify the "radius" of the window filters
|
|
r_mipGenFilter L4 = Lanczos
|
|
r_mipGenFilter L3 = Lanczos
|
|
r_mipGenFilter BL = Bi-linear
|
|
r_mipGenFilter MN2 = Mitchell-Netravali (B = 1/3, C = 1/3)
|
|
r_mipGenFilter BH4 = 3-term Blackman-Harris
|
|
r_mipGenFilter BH3 = 3-term Blackman-Harris
|
|
r_mipGenFilter BH2 = 3-term Blackman-Harris
|
|
r_mipGenFilter T2 = Tent (1/3 2/3) -> same as the CPU version (r_gpuMipGen 0)
|
|
|
|
add: r_frameSleep <0|1|2> (default: 2) selects the frame capping mode
|
|
r_frameSleep 0 = forced OFF (when V-Sync is enabled)
|
|
r_frameSleep 1 = forced ON (when V-Sync is disabled)
|
|
r_frameSleep 2 = automatic (detects V-Sync status)
|
|
this only applies to OpenGL rendering back-ends
|
|
for Direct3D 11, the behavior is always equivalent to "automatic"
|
|
the new default mode fixes the V-Sync stutter from previous releases
|
|
|
|
add: r_gl3_geoStream <0 to 4> (default: 0) sets the geometry upload strategy
|
|
r_gl3_geoStream 0 = decide automatically
|
|
r_gl3_geoStream 1 = BufferSubData
|
|
r_gl3_geoStream 2 = Map Unsychronized
|
|
r_gl3_geoStream 3 = Map Persistent when possible, else automatic
|
|
r_gl3_geoStream 4 = AMD pinned memory when available, else automatic
|
|
this only applies to the GL3 rendering back-end
|
|
|
|
add: r_d3d11_syncOffsets <0|1|2> (default: 2) synchronizes vertex buffer offsets
|
|
r_d3d11_syncOffsets 0 = split buffer offsets (more data transferred)
|
|
r_d3d11_syncOffsets 1 = sync'd buffer offsets (more API calls)
|
|
r_d3d11_syncOffsets 2 = decide automatically
|
|
this only applies to the D3D11 rendering back-end
|
|
|
|
add: r_d3d11_presentMode <0|1> (default: 0) sets the Direct3D presentation mode
|
|
r_d3d11_presentMode 0 = blit + discard
|
|
r_d3d11_presentMode 1 = flip + discard when available, else blit + discard
|
|
about the 'flip + discard' presentation mode:
|
|
- Windows 10 is required and tearing must be supported
|
|
- it should help performance by sharing buffer data (less copying)
|
|
- it allows for V-Sync to be disabled with variable refresh rate displays
|
|
- performance issues were observed on some machines, so it's off by default
|
|
|
|
add: r_khr_debug <0|1|2> (default: 2) decides whether to create an OpenGL debug context
|
|
r_khr_debug 0 = forced OFF
|
|
r_khr_debug 1 = forced ON
|
|
r_khr_debug 2 = only in debug builds
|
|
|
|
add: r_rtColorFormat <0|1|2> (default: 0) selects the color format for render targets
|
|
r_rtColorFormat 0 = R8G8B8A8
|
|
r_rtColorFormat 1 = R10G10B10A2
|
|
r_rtColorFormat 2 = R16G16B16A16
|
|
higher color bit depths help reduce color banding
|
|
|
|
add: r_lightmapGreyscale <0.0 to 1.0> (default: 0) controls the level of color desaturation in the lightmap
|
|
r_lightmapGreyscale 0 = full color (nothing done)
|
|
r_lightmapGreyscale 1 = completely monochrome
|
|
|
|
add: r_transpSort <0|1> (default: 0) selects the transparency sorting mode
|
|
r_transpSort 0 = sort dynamic transparent surfaces
|
|
r_transpSort 1 = sort all transparent surfaces
|
|
the drawback of r_transpSort 1 is that gameplay legibility might suffer and results might look
|
|
quite inconsistent based on the view angles and surface dimensions
|
|
example: dropped items in the cpm18r acid with cg_simpleItems 1
|
|
|
|
add: global shader directive q3map_cnq3_depthFade <scale> <bias> enables depth fade rendering
|
|
scale is the depth range over which to fade the currently rendered surface
|
|
bias is a value added to the currently rendered surface's depth, positive goes towards the camera
|
|
whether this is enabled is decided by r_depthFade (must be 1) and r_backend (can't be GL2)
|
|
depth writes must be disabled in all stages (no shader stage can use the depthWrite directive)
|
|
the blend mode (blendFunc) must be the same for all stages and must be one of:
|
|
(one, one) (src_alpha, one) (one_minus_src_alpha, one) (dst_color, zero) (zero, src_color)
|
|
(src_alpha, one_minus_src_alpha) (one, one_minus_src_alpha)
|
|
|
|
add: r_mapBrightness now works on q3map2's external lightmap atlas images
|
|
|
|
add: the renderer can now batch surfaces with different (but sufficiently similar) shaders
|
|
this new optimization works with the output of "Frozen Sand Particle Studio"
|
|
|
|
add: /modellist /skinlist /imagelist /shaderlist can now filter results with pattern matching
|
|
|
|
chg: improved the map download initiation logic and updated the CNQ3 map server addresses
|
|
|
|
chg: increased the small zone allocator's size from 512 KB to 4 MB (1 MB in the dedicated executable)
|
|
|
|
chg: dynamic lights now use a different fall-off curve to create softer edges
|
|
|
|
chg: reverted an old change to the Escape key handling for cgame
|
|
this fixes demo playback behavior in CPMA, which enables custom binds after pressing Escape once
|
|
|
|
chg: searching for valid sample counts for MSAA in GL2 and GL3 instead of failing right away
|
|
|
|
chg: switched away from stb_image for .tga file loading and now using an updated version of the old code
|
|
this lowers the chances of a fatal error from the zone memory allocator when reading large images
|
|
|
|
chg: SSE2 instruction set support is now required
|
|
|
|
chg: removed FreeType 2 and the unused R_REGISTERFONT syscalls that were using it
|
|
|
|
chg: removed light flares and all related cvars (r_flare*)
|
|
|
|
chg: r_textureMode <filter> (default: "best") is now latched and only supports 2 modes:
|
|
r_textureMode GL_NEAREST = LEGO(R) mode - nearest-neighbor filtering for a subset of surfaces
|
|
r_textureMode anything else = normal mode - the engine picks the most appropriate filters
|
|
|
|
chg: removed the following CVars: r_measureOverdraw, r_nobind, r_showImages
|
|
|
|
chg: r_speeds is no longer cheat-protected
|
|
it now also reports more precise timings, V-Sync status, GPU time and the selected back-end
|
|
|
|
chg: using the roundss SSE4.1 instruction for inlining floor and ceil syscalls when possible
|
|
|
|
chg: improved face and grid processing performance with SSE2
|
|
|
|
chg: r_lightmap is now latched again
|
|
the implementation is now more correct and will apply to all surfaces referencing a lightmap
|
|
it now also supports surfaces referencing q3map2's "external lightmap" atlas images
|
|
|
|
chg: r_fullbright is now latched again
|
|
it now also supports surfaces referencing q3map2's "external lightmap" atlas images
|
|
r_mapBrightness is now used by r_fullbright for lightmapped surfaces when r_vertexLight is 0
|
|
|
|
chg: negative r_swapInterval values will request adaptive V-Sync when using an OpenGL back-end
|
|
|
|
fix: the engine could crash due to render command list overflows
|
|
|
|
fix: made more keys bindable on Linux/FreeBSD and /bind now accepts uppercase hex digits
|
|
|
|
fix: removing CVars through unset/cvar_trim/cvar_restart could leave data in an invalid state
|
|
|
|
fix: r_detailTextures 0 would mess up shaders where "detail" was used in a stage that isn't the last one
|
|
|
|
fix: dynamic lights could incorrectly stop applying to moving entities (e.g. cpm25 elevator)
|
|
|
|
fix: crash due to lack of memory for the sound system
|
|
|
|
fix: incorrect shader state when loading a map with no lighting
|
|
|
|
fix: fog-only non-sky shaders were incorrectly handled as sky shaders, which broke fog on many maps
|
|
|
|
fix: r_monitor on Linux/FreeBSD is now 0-based and the value doesn't change incorrectly on its own anymore
|
|
|
|
fix: when a latched cvar's value is set to its default, the cvar is no longer marked as changed
|
|
|
|
fix: broken face normals get fixed up on map load, which helps with dynamic lights (e.g. industrial)
|
|
|
|
fix: classes of transparent surfaces (sprites, beams, etc) now get drawn in the right order
|
|
|
|
fix: dynamic lights can now affect transparent surfaces and double-sided surfaces on both sides
|
|
|
|
fix: dynamic lights no longer "reveal" the diffuse texture when r_lightmap is 1
|
|
|
|
fix: incorrect image flags for various things (clamp mode, mip generation, anisotropic filtering, ...)
|
|
|
|
|
|
31 Mar 19 - 1.51
|
|
|
|
add: now showing the cvar's current and latched values in the help panel
|
|
|
|
add: new console and chat keyboard shortcuts
|
|
Ctrl-left/right arrow | move caret to previous/next word
|
|
Shift-left/right arrow | move caret to previous/next argument
|
|
|
|
add: new console keyboard shortcuts
|
|
Ctrl-I | insert cvar's current value
|
|
Ctrl-D | insert cvar's default value
|
|
|
|
add: demo recording status query extension for CPMA 1.52+
|
|
|
|
add: /cvar_add <cvar> <number> to add a number to a cvar
|
|
|
|
add: /cvar_mul <cvar> <number> to multiply a cvar by a number
|
|
|
|
add: /unset <cvar> to remove a user-created cvar
|
|
|
|
add: /setempty <cvar> to set a string cvar to an empty string
|
|
|
|
add: /toggle can now accept a value sequence (2 or more entries) to loop through
|
|
syntax: /toggle <cvar> [<value1> <value2> [value3]..]
|
|
if the cvar's current value is in the sequence and not in the last spot, the next one is used
|
|
otherwise, the first value in the sequence is used
|
|
|
|
chg: r_lodCurveError <250.0 to 10000.0> (default: 2000) is now archived and no longer cheat-protected
|
|
|
|
chg: multi-monitor support improvements
|
|
add: /monitorlist will print all detected monitors and the indices to use with r_monitor
|
|
chg: the monitor list now gets updated during video restarts and calls to /monitorlist
|
|
chg: Linux | r_monitor is a 0-based index and monitors are sorted top-to-bottom, left-to-right
|
|
fix: Windows | the Windows + shift + left/right arrow key shortcuts should be usable now
|
|
|
|
chg: bundling lightmap tiles into texture atlases for improved rendering performance
|
|
|
|
chg: faster map loads by limiting the rendering back-end's frame-rate
|
|
|
|
chg: on Windows, the upper limit of open stdio file handles was raised from 512 to 2048
|
|
|
|
fix: the presence of .shader files outside of PK3s no longer triggers a drop error
|
|
|
|
fix: shader stage collapsing was happening in cases where it would yield incorrect results
|
|
|
|
fix: map download improvements
|
|
add: using numeric addresses as fallbacks in case DNS resolves fail
|
|
chg: made connections non-blocking so the engine won't freeze for long when starting a download
|
|
chg: writing to $(fs_homepath)/baseq3 instead of $(fs_basepath)/baseq3
|
|
fix: only using valid (TCP/stream) addresses from getaddrinfo
|
|
fix: setting send time-outs so the engine can't freeze indefinitely
|
|
fix: creating the destination directory when it doesn't already exist
|
|
fix: the file name suffixes generated by /dlmapf would often repeat due to a constant seed
|
|
|
|
fix: the last byte of a maximum length bitstream string wasn't parsed ("q3msgboom")
|
|
|
|
fix: aborting demo playback would crash when the "nextdemo" cvar was set to play a demo
|
|
|
|
fix: no longer feeding cs commands that came from a previous gamestate to cgame
|
|
example in CPMA: "/map cpm22" -> "/cv map cpm25" -> elevator sound was broken
|
|
|
|
fix: on Windows, could sometimes click outside the engine's window in raw mouse input mode
|
|
|
|
fix: when r_msaa was in the range [2, 16], the requested sample count was always 4
|
|
|
|
fix: /video and /stopvideo fixes
|
|
chg: /video can only be used during demo playback
|
|
fix: broken audio in the output files
|
|
fix: properly named file sequences
|
|
fix: using a better supported video codec (FourCC 0x00000000) for raw BGR output
|
|
fix: broken raw video output when r_width wasn't a multiple of 4
|
|
fix: /stopvideo no longer leaves sound output broken for a while after stopping
|
|
|
|
fix: /cv and /callvote map auto-completion was disabled after cgame was shut down at least once
|
|
|
|
|
|
12 Feb 18 - 1.50
|
|
|
|
add: on Windows, "/crashreport:yes" and "/crashreport:no" command-line arguments
|
|
they enable the crash handler's quiet mode (no dialog window will be shown)
|
|
|
|
add: the fs_restart command to manually restart the file system
|
|
|
|
chg: the client executable will now write to q3config.cfg on exit
|
|
|
|
chg: even lower CPU usage when minimized
|
|
|
|
chg: during id downloads (cl_allowDownload -1), the time-out is 5 seconds instead of cl_timeout
|
|
|
|
chg: the "nextdemo" cvar is now also used when playback stops before reaching the demo's end
|
|
|
|
chg: mouse motion is no longer forwarded to the mod when the console is down
|
|
|
|
chg: with 2+ monitors, having the console down will always disable input grabbing
|
|
|
|
chg: on Windows, a fatal error will move the early console window to the foreground
|
|
|
|
chg: com_hunkMegs doesn't have a maximum value anymore
|
|
a value too high would reset it and the engine might fail to load with the default value
|
|
|
|
fix: broken pk3 files could cause crashes (entry names too long) and mess up the FS
|
|
|
|
fix: using /demo when running a listen server would load the map and then abort playback
|
|
|
|
fix: no longer making local copies of all the system info cvars of the current server
|
|
this avoids undesired local changes to cvars such as sv_pure
|
|
|
|
fix: now updating the FS (connected to pure server, pak references) on client disconnects
|
|
|
|
fix: the condump command was truncating its file path argument to 64 characters
|
|
|
|
fix: "timedemo" playback runs at full speed again
|
|
|
|
fix: on Windows, when unfocused, the client would always sleep 5+ ms regardless of com_maxFPS
|
|
|
|
fix: conditional FS restarts will always re-order the pak list when connected to a pure server
|
|
|
|
fix: lifted the directory scanning restriction that affected pure listen servers
|
|
|
|
fix: getting stuck on "Awaiting snapshot..." when the server shuts down during client connection
|
|
|
|
fix: demo playback would crash when delta entities/players had an invalid field count
|
|
|
|
fix: strcpy calls with overlapping buffers (undefined behavior), which were responsible for the
|
|
"chars.h not found" / "couldn't load any skills" issue preventing bots from being added
|
|
|
|
fix: on Linux, the 'Z' and '9' keys could not be bound
|
|
|
|
fix: cl_allowDownload 1 failing on "connect" (error 10047 on Windows)
|
|
|
|
fix: cl_allowDownload 1 was using the current directory instead of fs_basepath
|
|
|
|
fix: jitter due to snapshots piling up with the same server timestamp for loopback and LAN clients
|
|
|
|
fix: the Windows crash handler would incorrectly consider certain exceptions as fatal
|
|
|
|
|
|
07 Jan 18 - 1.49
|
|
|
|
add: color cvars for console customization
|
|
con_colBG <RGBA> (default: "101013F6") - console and help panel background
|
|
con_colBorder <RGBA> (default: "4778B2FF") - the console and help panel borders
|
|
con_colArrow <RGBA> (default: "4778B2FF") - console backscroll arrows
|
|
con_colShadow <RGBA> (default: "000000FF") - text shadows
|
|
con_colHL <RGBA> (default: "303033FF") - auto-completion highlight (see con_completionStyle 1)
|
|
con_colText <RGB> (default: "E2E2E2") - normal text
|
|
con_colCVar <RGB> (default: "4778B2") - cvar names
|
|
con_colCmd <RGB> (default: "4FA7BD") - command names
|
|
con_colValue <RGB> (default: "E5BC39") - cvar values
|
|
con_colHelp <RGB> (default: "ABC1C6") - help text
|
|
|
|
add: con_drawHelp <bitmask> (default: 1) controls the help panel displayed below the console
|
|
1 - enables the help panel
|
|
2 - draws the help panel even if the current cvar/cmd has no help text
|
|
4 - draws the list of modules the current cvar/cmd belongs to
|
|
8 - draws the list of attributes of the current cvar
|
|
|
|
add: r_blitMode <0|1|2> (default: 0) selects the upscale mode used by r_mode 1
|
|
r_blitMode 0 = aspect-ratio preserving (black bars if necessary)
|
|
r_blitMode 1 = no scaling, centered
|
|
r_blitMode 2 = full-screen stretching (no black bars)
|
|
|
|
add: cvar_trim command to remove all user-created cvars
|
|
|
|
add: with compatible mods, drop and disconnect errors will be displayed in the UI
|
|
|
|
add: s_autoMute <0|1|2> (default: 1) selects when the audio output should be disabled
|
|
s_autoMute 0 = never mute
|
|
s_autoMute 1 = mute when the window doesn't have input focus
|
|
s_autoMute 2 = mute when the window is minimized
|
|
|
|
add: cl_matchAlerts <bitmask> (default: 7) lets you know when a match is starting
|
|
1 - when unfocused (otherwise only when minimized)
|
|
2 - flash the task bar (Windows only)
|
|
4 - beep once (Windows only)
|
|
8 - unmute (temporarily overrides s_autoMute)
|
|
|
|
add: new commands to take screenshots with the console hidden
|
|
screenshotnc for TARGA (.tga) images
|
|
screenshotncJPEG for JPEG (.jpg) images
|
|
they will be used for end-game screenshots by compatible mods like CPMA 1.50
|
|
|
|
add: in_noGrab <0|1> (default: 0) disables input grabbing
|
|
|
|
add: bindkeylist command to print all bindable key names
|
|
|
|
add: uptime command that prints uptimes for the process, the current map and the parent process
|
|
|
|
add: keys F13 to F24 are now bindable
|
|
|
|
add: new cvar type and range extension for compatible mods like CPMA 1.50
|
|
|
|
add: new help commands for commands and cvars of the engine and compatible mods like CPMA 1.50
|
|
help|man <cvar|cmd> to display the help of a cvar or command
|
|
searchhelp <pattern> to list all cvars and commands whose help or name matches the pattern
|
|
|
|
add: new CNQ3 download system that uses checksums to get the right pak files
|
|
the CNQ3 download system will use the WorldSpawn map server for inexact queries
|
|
(when loading demos or using /dlmap) when the CNQ3 map server doesn't have the file
|
|
|
|
system | speed | cases | source(s) | file availability | server requirements
|
|
-------|-------|---------------------|---------------|-------------------|--------------------
|
|
CNQ3 | fast | pure servers, demos | map server(s) | not guaranteed | none
|
|
id | slow | pure servers only | the Q3 server | guaranteed | sv_allowDownload 1
|
|
|
|
add: new commands for manually initiating and canceling fast downloads:
|
|
dlpak <checksum> to download a pak by its checksum if the pak doesn't exist locally
|
|
dlmap <map_name> to download a map by name if no map with such a name exists locally
|
|
dlmapf <map_name> to force download a map by name
|
|
dlstop to cancel the download in progress, if any
|
|
|
|
add: r_greyscale <0.0 to 1.0> (default: 0) to control how monochromatic the final image looks
|
|
r_greyscale 0 = full color (nothing done)
|
|
r_greyscale 1 = completely monochrome
|
|
|
|
add: con_completionStyle <0|1> (default: 0) to select the auto-completion style
|
|
con_completionStyle 0 = always print all results
|
|
con_completionStyle 1 = print once, then cycle results like Enemy Territory's console
|
|
|
|
add: m_accelStyle <0|1> (default: 0) to control the mouse accel style
|
|
m_accelStyle 0 = legacy CNQ3 accel style
|
|
m_accelStyle 1 = new accel style, similar to quake3e's cl_mouseAccelStyle 1
|
|
|
|
add: m_accelOffset <0.001 to 5000> (default: 5) to control the power offset with m_accelStyle 1
|
|
|
|
add: sv_minRestartDelay <2 to 48> (default: 2)
|
|
the min. amount of hours to wait for before restarting the server
|
|
a scheduled restart won't happen until there are no more human players connected
|
|
|
|
add: con_scaleMode <0|1|2> (default: 0) specifies the console text scaling mode
|
|
con_scaleMode 0 = text size scales with con_scale but not the resolution
|
|
con_scaleMode 1 = text size scales with con_scale and the resolution
|
|
con_scaleMode 2 = text size is always 8x12
|
|
|
|
add: command history saving with con_history (default: 1)
|
|
|
|
add: r_monitor <0 to monitor count> (default: 0) to select the monitor to display the game on
|
|
r_monitor is the 1-based index of the monitor to use
|
|
r_monitor 0 = use the primary monitor
|
|
r_monitor N = use monitor number N
|
|
|
|
add: crash handlers with crash report generation
|
|
|
|
add: improved auto-completion with support for map names, bind key names, etc
|
|
|
|
add: 64-bit support
|
|
|
|
chg: new system requirements: OpenGL 2, SDL 2 on the Linux client, Windows Vista or later
|
|
|
|
chg: sv_pure 1 now allows new image files (no overrides) to be read from directories
|
|
|
|
chg: now ignoring q3config.cfg and autoexec.cfg outside fs_game to avoid config poisoning
|
|
|
|
chg: removed the r_maplight* cvars
|
|
|
|
chg: reduced CPU usage in the client
|
|
|
|
chg: console/messagemode input buffers now display the "^" character of color codes
|
|
|
|
chg: r_brightness <0.25 to 32.0> (default: 2) replaces r_overBrightBits
|
|
r_mapBrightness <0.25 to 32.0> (default: 2) replaces r_mapOverBrightBits
|
|
the new cvars use floating-point values (more control) and a linear scale (more intuitive)
|
|
to convert the old engine values to the new values:
|
|
r_brightness = pow(2, r_overBrightBits)
|
|
r_mapBrightness = pow(2, max(r_mapOverBrightBits - r_overBrightBits, 0))
|
|
|
|
chg: r_mode <0|1|2> (default: 0) selects the video mode
|
|
r_mode 0 = no screen mode change, desktop resolution
|
|
r_mode 1 = no screen mode change, custom resolution, custom upscale mode
|
|
r_mode 2 = screen mode change, custom resolution (for the CRT users)
|
|
Custom resolution means using r_width and r_height.
|
|
Custom upscale mode means using r_blitMode.
|
|
|
|
chg: cl_allowDownload <-1|0|1> (default: 1) can be used to select the download system
|
|
cl_allowDownload -1 = id's original download system
|
|
cl_allowDownload 0 = downloads disabled
|
|
cl_allowDownload 1 = CNQ3 download system
|
|
|
|
chg: cvars and commands are alphabetically sorted
|
|
|
|
chg: removed r_stencilbits, r_depthbits, r_colorbits, r_texturebits and r_ext_compressed_textures
|
|
|
|
chg: using stb_image to load png and tga images
|
|
|
|
chg: con_scale <0.25 to 10.0> (default: 1.2) specifies the console text scaling factor and nothing else
|
|
|
|
chg: replaced monitor gamma by a post-process gamma shader and removed r_ignorehwgamma
|
|
|
|
chg: removed stereo rendering
|
|
|
|
chg: anti-aliasing sample count is set with r_msaa on all platforms (on Windows, it was r_ext_multisample)
|
|
|
|
chg: file system start-up will now verify the presence and integrity of baseq3/pak0-8.pk3 instead of only pak0
|
|
|
|
chg: replaced id's Huffman codec code with something both simpler and much faster
|
|
|
|
chg: tweaked console scrolling speeds, fixed backtip insertion on Windows
|
|
|
|
chg: improved level load times
|
|
|
|
chg: sound fall-off is linear instead of using a power function
|
|
|
|
chg: switch from libjpeg 6 to libjpeg-turbo
|
|
|
|
chg: removed the byzantine r_mode usage added in 1.47
|
|
|
|
fix: console/messagemode input buffers would ignore the last off-screen color modifier when scrolled
|
|
|
|
fix: console/messagemode input buffers would sometimes display the cursor at the wrong position
|
|
|
|
fix: taking screenshots with a render width (r_width) that wasn't a multiple of 4
|
|
would either crash or produce bad screenshots
|
|
|
|
fix: false positives of the "SCR_UpdateScreen: recursively called" fatal error
|
|
repro: connect, get kicked, connect, get kicked
|
|
|
|
fix: crash when the number of shader stages was wrong (would happen with the "brandon" player model)
|
|
|
|
fix: the release of a key bound to "+vstr a b" would execute "b" even though the key press didn't execute "a"
|
|
|
|
fix: /bind was treating single-character key names in a case sensitive manner
|
|
|
|
fix: r_fullbright is no longer latched and actually does its job
|
|
|
|
fix: r_lightmap is now archived and actually does its job
|
|
|
|
fix: commands registered by cgame no longer auto-complete after the cgame qvm has shut down
|
|
|
|
fix: libjpeg errors no longer shut down the engine
|
|
|
|
fix: broken rendering when the 2nd stage of a collapsed shader stage pair had non-white colors
|
|
|
|
fix: shader stages using "wave" were not animated when the server time was too large
|
|
|
|
fix: the pukka3tourney2 slime wasn't green with r_vertexLight 1
|
|
|
|
fix: the ct3ctf1 grate near quad was getting picmipped when it wasn't supposed to be
|
|
|
|
fix: improved the player name look-up behavior for these commands: kick, banUser, dumpuser
|
|
if 2 players had the same name, it would just pick the first one (lowest client number)
|
|
|
|
fix: multi-view mouse input sensitivity is now the same as in the UI for compatible mods like CPMA 1.50
|
|
|
|
fix: fixed the start-up console window staying visible when starting in full-screen
|
|
|
|
|
|
Windows:
|
|
|
|
add: in_minimize registers a hotkey to minimize/restore the client
|
|
key names must be separated by white space and there can be at most 2 modifier keys
|
|
|
|
add: auto-completion and command history in the dedicated server console window
|
|
|
|
add: new bindable key: BACKSLASH (the key to the right of the left shift button)
|
|
|
|
chg: removed DirectInput mouse input mode
|
|
|
|
chg: updated mouse input for better grab (de-)activation and fixed window dragging not working
|
|
|
|
chg: reduced raw mouse input latency and added cl_drawMouseLag
|
|
|
|
fix: disabled DPI scaling on the client
|
|
|
|
fix: the crash handler will reset the system timer resolution
|
|
|
|
fix: if requesting a resolution too high for the display, the image would be offset vertically
|
|
|
|
fix: in raw mouse input mode, keeping any button pressed while focusing the window would keep
|
|
the cursor visible even after releasing all buttons
|
|
|
|
|
|
Linux:
|
|
|
|
add: m_relative <0|1> (default: 1) enables SDL's relative mouse mode
|
|
you might want to set it to 0 if you have a messed up input driver
|
|
|
|
add: in_focusDelay <0 to 100> (default: 5) is the time in ms keypresses are ignored after the window gets the focus
|
|
|
|
add: minimize command to minimize the client's window
|
|
|
|
add: automatic dedicated server process restarts for crashes and timed reboots (sv_minRebootDelayMins)
|
|
this means 2 CNQ3 processes run per server: a parent (fixed pid) and a child (new pid after each restart)
|
|
this behavior can be disabled by passing "nohardreboot" as a command-line argument
|
|
the new command sv_restartProcess can be used to shut down the child process and start a new one
|
|
|
|
chg: the client requires SDL 2 - the following things are handled by it:
|
|
window, GL context, video modes, audio, kb and mouse input, monitor list, clipboard
|
|
|
|
chg: tty input behavior matches in-game behavior when cgame is running and fixed the truncated tty input
|
|
|
|
fix: color codes (e.g. "^1") don't get printed to the terminal anymore
|
|
|
|
fix: tty handling of the leading "]" character
|
|
|
|
fix: dedicated servers no longer insert a leading backslash when running auto-completion
|
|
|
|
fix: the crash handler will reset tty input mode correctly
|
|
|
|
|
|
17 Sep 11 - 1.47
|
|
|
|
add: backported another bunch of dlight stuff from the pmx branch
|
|
adds support for bmodel entities (doors, plats, etc)
|
|
|
|
add: back directInput mouse (in_mouse 2)
|
|
|
|
add: back flare support
|
|
|
|
add: disable/enable windows keyboard shortcuts
|
|
|
|
add: cnq3 windows can minimize/restore
|
|
|
|
add: dynamic light by GLSL shaders
|
|
|
|
add: r_maplightBrightness (from 0 to 8) and r_maplightSaturation(0-4). to use this parameters set r_maplightColorMode 1.
|
|
|
|
add: r_maplightColorMode to configure lightmaps
|
|
|
|
add: r_mode can be set resolution and frequency display. For example, r_mode "640x480@100"
|
|
|
|
fix: in_mouse -1 kept relocating the system cursor even if not focused
|
|
|
|
fix: implement the sound change from 1.45 *correctly* :P
|
|
|
|
fix: default build does not create option r_smp. To assemble the build
|
|
with the option r_smp need to use preprocessor USE_R_SMP
|
|
|
|
fix: small fixes to CVA rendering code
|
|
|
|
fix: fix opStack and rename targets for unix
|
|
|
|
fix: GTV/spectator can't change POV after map changed
|
|
|
|
fix: render shader time overflow (fix splashdamage bug).
|
|
|
|
fix: mouse event queue
|
|
|
|
|
|
24 Nov 09 - 1.46
|
|
|
|
add: hopefully worked around some vistajoke mousewheel issues
|
|
|
|
add: m_limit (default: 0 = off), the maximum post-accel speed to use
|
|
|
|
chg: sensitivity renamed to m_speed
|
|
|
|
chg: rewrote pretty much all the mouse code
|
|
|
|
chg: removed the DI code in favor of "raw" mouse input
|
|
this means only mouse1-mouse5 are supported on windows, sigh MS...
|
|
|
|
chg: updated freetype from 2.3.5 to 2.3.11
|
|
|
|
|
|
05 Nov 09 - 1.45
|
|
note: this release REQUIRES arb shader support
|
|
if your card doesn't have it, use an older version
|
|
|
|
add: hw gamma should work on Vista
|
|
|
|
add: r_measureoverdraw is actually useful
|
|
|
|
add: r_speeds is far more useful now
|
|
|
|
chg: sound attenuation is biased
|
|
i.e. distant sounds are much louder than in 1.43
|
|
since it's still more correctly spatialised than pre-1.43, this is
|
|
the best compromise i can come up with
|
|
|
|
chg: r_fullbright works in vertexlight mode (only)
|
|
instead of lightmap only, where it just wasted bandwidth and vram
|
|
|
|
chg: r_customwidth, r_customheight renamed to r_width, r_height
|
|
|
|
chg: hardcoded r_mode garbage and modelist removed:
|
|
r_mode 0 (default) = current desktop resolution, depth, hz, etc
|
|
r_mode 1 = custom resolution etc
|
|
note: r_mode 1 WILL NOT tolerate invalid r_displayRefresh values any more
|
|
|
|
chg: require opengl 1.4 or higher
|
|
removed r_allowExtensions, r_primitives, r_ext_compiled_vertex_array,
|
|
r_ext_multitexture, r_ext_texture_env_add
|
|
|
|
chg: removed a bunch of useless/obsolete cvars:
|
|
r_logfile, r_showcluster, r_facePlaneCull, r_ignoreFastPath, r_drawSun,
|
|
r_simpleMipMaps, r_offsetFactor, r_offsetUnits
|
|
|
|
chg: don't tablist cheatvar noise if cheats are off
|
|
|
|
chg: removed the last bits of legacy altivec cruft
|
|
|
|
chg: rewrote pretty much all the dlight stuff
|
|
not only does it actually work reliably now
|
|
but it's also massively improved in terms of quality
|
|
|
|
fix: ignorehwgamma 1 would fail to apply sw gamma to some images
|
|
|
|
fix: roqs failed to apply sw gamma
|
|
|
|
fix: sv_floodprotect could block all commands indefinitely
|
|
|
|
|
|
12 Aug 09 - 1.44 (server only)
|
|
|
|
fix: unbannable player exploit (stanway/auriemma)
|
|
|
|
|
|
08 Aug 08 - 1.43
|
|
|
|
fixed sfx0 using a real sound and thus "hiding" it
|
|
|
|
corrected sv_pure back to CVAR_ROM
|
|
|
|
added the correct "fastsky!=0 == disable portals" test, ffs me :P
|
|
|
|
removed long-obsoleted r_lastValidRenderer
|
|
|
|
removed long-obsoleted r_ext_gamma_control
|
|
|
|
removed pointless cl_forceavidemo
|
|
|
|
removed r_rail* and marked the never-used RT_BEAM etc as such
|
|
|
|
removed RAVENMD4 completely
|
|
|
|
r_fullbright is not a cheat var
|
|
|
|
fixed a bug with CVAR_CHEAT
|
|
|
|
fixed another bug in \video (hopefully)
|
|
|
|
fixed distance culling on dlit patch seams
|
|
|
|
changed r_ext_max_anisotropy default to 16
|
|
|
|
added con_scale for console font scaling
|
|
0 = Q3 style, always 8x12 pixels regardless of screen rez
|
|
1 = Q4 style, scales with screen rez
|
|
!0 = scale with screen rez and a custom multiplier
|
|
|
|
straightened out the con cvar mess:
|
|
cl_noprint -> con_noprint
|
|
scr_conspeed -> con_speed and correctly CVAR_ARCHIVE
|
|
con_notifytime correctly CVAR_ARCHIVE
|
|
removed cl_conXOffset since it basically doesn't work
|
|
|
|
sleep correctly if an unfocused client (win32-only)
|
|
don't sleep INcorrectly if a dedicated server (win32-only)
|
|
|
|
fixed a (huge) memory leak in the vm
|
|
|
|
fixed sv_pure 1 problems on listen servers
|
|
|
|
another overhaul of the sound code:
|
|
|
|
spatialisation is now correct, which has two huge impacts:
|
|
you can "place" sounds MUCH more accurately than before,
|
|
but as a result, distant sounds are MUCH quieter
|
|
|
|
removed s_doppler, it's almost right but it just sounds like shit
|
|
|
|
most of the s_mixprestep hackery has been removed, and you can
|
|
probably set it to 0 if your sound drivers work properly
|
|
|
|
OAL support has been dropped completely and indefinitely
|
|
it's crap and i'm tired of it poisoning the codebase
|
|
|
|
|
|
Mar 08 - 1.42
|
|
|
|
bots are no longer kicked by devmap
|
|
|
|
legacy cack like joystick/midi support only pollutes configs if enabled
|
|
|
|
fixed a memory leak in the sound code
|
|
|
|
fixed even more (hopefully all) dropped sound issues in snd_dma
|
|
|
|
made com_soundmegs SLIGHTLY less broken: now only 2x instead of 3x :P
|
|
note that "soundmegs" are taken FROM THE HUNK now to fix the leak
|
|
so you need to increase com_hunkmegs by 2x your com_soundmegs
|
|
|
|
removed the explicit and incorrect "fastsky==1 == disable portals" test
|
|
|
|
r_noportals is not a cheat var
|
|
|
|
hyperspace is a bit less annoying
|
|
|
|
purged the unused (never finished) idMD4 model code
|
|
|
|
fixed some bugs in referencedpak list generation
|
|
|
|
fixed roqs ignoring s_volume
|
|
|
|
fixed widescreen modes crashing on listen servers
|
|
|
|
fixed downloads not completing properly
|
|
|
|
|
|
18 Feb 08 - 1.41
|
|
|
|
removed all bs references to GT_SINGLE_PLAYER and ui_singlePlayerActive
|
|
(except from the bot code, which has bigger problems)
|
|
added sv_singleplayer
|
|
|
|
improved TTF overhead a lot: now as fast as crappy bitmap fonts :D
|
|
|
|
removed the stupidity of every key aborting demo playback: now ESC only
|
|
|
|
only play the id logo cin the FIRST time, not every fkn time
|
|
|
|
removed the broken stencil/projection shadow code
|
|
|
|
avis produced by \video actually work (bug+fix both from ioq3)
|
|
|
|
fixed some ABSURD buffer overruns and broken code in snd_dma
|
|
which caused random dropped sounds for no reason
|
|
it's a miracle it doesn't segfault any real OS
|
|
also dumped the unused-since-TA adpcm/mulaw/etc cruft
|
|
|
|
fixed a TA-era (surprise, surprise) bug that broke loopsound behavior
|
|
|
|
loop (ie ambient) sounds are now 75% volume
|
|
|
|
q3config is NEVER autowritten just because of bind/cvar changes
|
|
it sucks if you're playing and it sucks even more if you're on GTV
|
|
UI/SP code should write it EXPLICITLY if they want to save something
|
|
|
|
|
|
19 Dec 07 - 1.40
|
|
|
|
the code now requires a C++ compiler
|
|
MASSIVE cleanups of the codebase, tho still plenty of bits left
|
|
|
|
screenshot filename is YYYY_MM_DD-HH_MM_SS-TTT
|
|
this means they'll never collide *; moviemakers won't run out;
|
|
and the engine DOESN'T STAT 10,000 FILES EVERY FRAME
|
|
(* except at 2am on an autumn night if you're amazingly unlucky :P)
|
|
|
|
demo filename is YYYY_MM_DD-HH_MM_SS
|
|
|
|
fixed demos to be MAX_OSPATH instead of MAX_QPATH, ie 256 chars now
|
|
|
|
renamed cl_mouseAccel to m_accel
|
|
|
|
removed ioq3 "qkey" rubbish
|
|
|
|
removed support for BMP and PCX
|
|
|
|
removed fs_cdpath, fs_copyfiles, touchfile, fs_restrict
|
|
|
|
removed support for IPX
|
|
|
|
removed in_logitechbug
|
|
|
|
updated cpu detection
|
|
|
|
added TTF support
|
|
|
|
fixed a bunch of stuff in ScanAndLoadShaderFiles, but it's still crap
|
|
|
|
fixed the patch collision epsilon bugs of 1.34
|
|
|
|
reverted to id's tab-completion since ioq3's is so hated
|
|
i've semi-merged them atm, will fix up when i get time
|
|
|
|
interpreted vm is never used on platforms that support compiled vm
|
|
|
|
clampmaps and nomip images use GL_CLAMP_TO_EDGE rather than GL_CLAMP
|
|
|
|
disabled curl until it's brought up to standard
|
|
|
|
merged platform-specific *_net.* into qcommon/net_ip.cpp, <3 timbo :)
|
|
|
|
fixed USERINFO vars not being sent properly during connect
|
|
|
|
remove some network stuff (buffer sizes and TOS) http://support.microsoft.com/kb/248611
|
|
|
|
|
|
12 Sep 07 - released as 1.34, since it was about time we did :P
|
|
|
|
increased default MAX_POLYS to 8K and MAX_POLYVERTS to 32K
|
|
|
|
|
|
Aug 07
|
|
|
|
fixed a bug in the skybox code that tried to use a 0-length CVA
|
|
which makes recent nvidia drivers go into spaz mode
|
|
|
|
changed r_ext_multisample default to 0 to stop ix nagging :P
|
|
|
|
|
|
July 07
|
|
|
|
added support for curl
|
|
|
|
improved some network stuff (buffer sizes and TOS)
|
|
|
|
added support for mouse5-mouse8
|
|
|
|
|
|
1 May 07
|
|
|
|
remove broken useless cl_freezeDemo and make demo pausing work
|
|
just use timescale 0
|
|
|
|
|
|
27 Apr 07
|
|
|
|
ripped out all support for legacy substandard hw/drivers (ie Voodoo etc)
|
|
and r_maskMinidriver
|
|
|
|
uncorrected mode 8 back to 1280x1024
|
|
|
|
|
|
|
|
18 Jul 06
|
|
|
|
update various cvar defaults
|
|
r_stencilbits: 0
|
|
r_picmip: 0
|
|
r_roundImagesDown: 0
|
|
r_simpleMipMaps: 0
|
|
s_useOpenAL: 0
|
|
|
|
default fs_game to cpma
|
|
|
|
|
|
30 Jun 06 - initial build from ioq3 svn v810
|
|
|
|
mode 8 corrected to 1280x960
|
|
|
|
undefined USE_OPENAL
|
|
|
|
removed GetUserName call
|
|
|
|
removed stupid+broken r_dlightbacks
|
|
|
|
created dlight texture correctly
|
|
|
|
fixed the dlight code
|
|
|
|
removed the explicit and incorrect "vertexlight==1 == disable dlights" test
|
|
|
|
removed redundant r_ext_texture_filter_anisotropic
|
|
|
|
removed retarded cl_consoleHistory
|
|
|
|
removed redundant cl_autoRecordDemo
|
|
|
|
shader spew made developer 1
|
|
|
|
gl extensions spew made developer 1
|
|
|
|
pak list made fs_debug 1
|
|
|
|
removed the TA cvars that were hacked into the engine
|
|
|
|
reordered demo_protocols to reduce spew
|
|
|
|
|
|
====================
|
|
=== Known issues ===
|
|
====================
|
|
|
|
iss: OBS captures go blank after doing a video restart with the D3D11 back-end
|
|
exp: device/swap chain re-creation isn't handled by OBS' capture plug-in
|
|
fix: use the GL3 back-end
|
|
act: won't fix
|
|
|
|
iss: once the GL2 back-end is used, performance drops when switching back to the GL3 back-end
|
|
cfg: nVidia GeForce GTX 1070 - Windows 7 SP1 x64 - drivers 430.64 and 445.87
|
|
fix: don't switch back-ends at runtime or upgrade drivers
|
|
act: can't fix (root cause unknown)
|
|
|
|
iss: with GL3 and r_gpuMipGen 1, performance collapses big time
|
|
cfg: AMD Radeon HD 6950 - Windows 10 Pro version 10.0.16299 - drivers 15.201.1151.1008
|
|
exp: confirmed: whenever glTexStorage2D is called (even when using that function is the only change)
|
|
fix: use D3D11 or upgrade drivers
|
|
act: won't fix
|
|
|
|
iss: with GL3 and r_gpuMipGen 1, the GPU-generated mips are corrupted
|
|
cfg: AMD Radeon R7 360 - Windows 7 SP1 x64 - drivers 14.502.0.0
|
|
exp: not confirmed: broken barrier implementation?
|
|
fix: use D3D11 or upgrade drivers
|
|
act: can't fix (root cause unknown)
|
|
|
|
iss: strong gamma correction breaks anti-aliasing
|
|
exp: MSAA resolve happens before the post-process pass
|
|
act: won't fix
|
|
|
|
iss: D3D11 full-screen toggles with the 32-bit client freeze myT's PC :-(
|
|
cfg: nVidia GeForce GTX 1070 - Windows 7 SP1 x64 - drivers 445.87
|
|
fix: use the 64-bit client
|
|
act: can't fix (root cause unknown)
|
|
|
|
iss: with GL2, mirror/portal surface rendering doesn't use the extra clip plane
|
|
cfg: AMD Radeon 780M Graphics
|
|
exp: AMD drivers are more strict
|
|
fix: use another backend
|
|
act: won't fix
|