Makes acid water surfaces emissive again.
However, they are not assinged proper emissive color values for direct
ray hits yet, so they do emit light, but look dar still.
Ref: #56
E328-E330: Improve backface culling
- [x] Turn on backface culling in RT shaders for everything.
- [x] Force-disable culling for everything except alpha blended geometries.
- [x] Only leave water surfaces that are directed towards "air", fixes#264
Only leave water surfaces directed towards "air".
This is consistent with:
- non-`kRenderNormal` surfaces, for which there's only one surface present
- opt2 for translucent surfaces, where we aim to detect medium boundary
direction based on normal-vs-ray-direction
Also add notes about translucent surfaces in general, more info about
water rendering under ref_gl, etc.
Fixes#264
Cull everything except:
- opaque geometry: to avoid shadow and reflection holes
- bleded geometry: particles and such should be visible from any angle
Alpha-tested geometries result in visual glitches when not culled
(double-sided ladders, double shadows, etc). These glitches are worse
than slightly misaligned shadows.
Translucent geometries are still matter of research.
Adds a few things:
- verbose logs about surface flags/type/orientation
- same about surface subdivided polys
- tries culling back water surfaces (doesn't work that well)
- tries culling in rt shaders
This still unfinished
Many static worldmodel surfaces still contain alternate texture chains.
That was making these surfaces dynamic, even though there's no way to
trigger these alternate anims.
Make worldmodel ignore alternate_anims when looking for animated
surfaces.
Fixes#644
Things done during stream E326
- [x] list supported arguments for `rt_debug_display_only`
- [x] make `vk_debug_log` a command
- [x] rotate your owl, fix#625
- [x] fix skybox surface assert
- [x] half-fix water levels
- [x] add alternate anims to infotool
Pass current entity to compute wave height. Still doesn't switch to
negative height when underwater for some reason.
And still displays water sides.
Add some notes regarding water geometry generation and drawing.
Adds `_xvk_tex_rotate` field for surface patches. Angle is specified in
degrees.
Note that it rotates the texture around origin, which might be very far
away. So offset patching might be needed to re-align.
This makes it easily switchable at any point in time.
Still not sure how to properly manage log verbosity cvars:
- cvars are loaded after initialization and map load, so we can't really
depend on saved cvar values.
- reloading cvars each frame cancels `-vkverboselogs` arg that is
supposed to work around the above limitation
Fixes a typo that rewrote roughness value with garbage.
Also adds a few more debug channel displays for lighting phases. And
prints out available debug displays.
Fixes#641
Now:
- Not necessarily vulkan-specific cvars are prefixed with `r_`
- Vulkan-specific but not RT-specific things are `vk_`
- RT-specific are `rt_`
Fixes#632
When texture coordinates are inverted, it makes tangent look into
oppsite direction, which inverts TBN and therefore normal map.
Make sure the tangent points to a consistent direction.
Fixes#627
It was using old pre-transform values for prev_verts, and that was
confusing temporal denoiser.
We should bone-transform vertices first, and only then store them as
prev_verts.
Fixes#585