-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Emissive textures on !water
textures does not work
#56
Comments
Btw, it does get loaded and assigned to a texture. Not sure why it is not applied. Are you sure that's the right texture? |
With CRETE4_FLR01 has a similar result outside but not inside and !TOXICGRN still needs to be specified because there is only !TOXICGRN on the adjacent surface with a broken tank. |
Maybe it's because the textures which prefixed "!" automatically become a simplified water surface? (inside they work like water and there you can suffocate). Thus, the code associated with the water surface (it seems processed by different shader?) breaks the emissive logic. |
It was missing msurface_t reference which is (unnecessarily) required for light clusters computation Also add more verbose debug names for dynamic models.
Для c0a0d !TOXICGRN текстуры можно не делать subdivide полигонов, у неё нет func_water тем более (взять WaveHeight неоткуда). Таким образом светящихся полигонов будет в разы меньше (при желании там можно ещё объединить что-то из 18 поверхностей снизу и 10 сверху, но там ещё остаются 18 поверхностей от отсровков, итого без оптимизации будет ~46, с нарезкой видимо там сильно больше). Но нужно при этом оставить искажающую текстуру анимацию. |
!water
textures does not work
Polygon lights can be only loaded for surfaces which have loaded geometry. We only have geometry for We still need to somehow load water surfaces geometry for this. For performance reasons we might even have to join the bsp-split surfaces back into as large polygons as possible, and then do a lighting-aware triangulation. |
Disregard the geometry part, it is not true. For polygon lights we do load geometries by hand explicitly. What's broken is The fix is about moving relevant parts to submodels, and collect emissive values for those. |
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
E331: make water emissive again - [x] Make acid water surfaces emissive again. - [x] Update emissive color for them, fix #56
This is because polygon lights are one-sided. They only illuminate things in front of them, not in the back. This is a rather important optimization (at least now). The workaround would be to add back-side polylights for water surfaces. However, that eats too much polylight budget, and makes the rest of the level look way worse due to missing lights (that didn't fit into a budget). Another way to approach this would be to note the fact that physical reason for this emissive acid is not its surface being emissive, but the whole body of acid emitting lights. So probably we should do some kind of "participating medium" thing, similar to fog, etc. Which we need to do for underwater volumes eventually anyway. Will do this later. |
There's also missing emissive water surfaces in e.g. I tried experimentally addressing this issue here: 65f2403 but it solves only half of it, and also makes code way messier. I'm hesitant to accept it as a solution. It does not address double-sided issue either. |
Implements new totally automatic barrier placement. Also, staging is refactored. - [x] image staging - [x] some images are corrupted - ~~[ ] #745~~ -- postponed until next time we'd need to touch images; current code works good enough for now. - [x] use combuf auto barriers everywhere where it makes sense - [x] corrupted geometry in playdemo ... - [x] buffer staging - [x] #743 - [x] track copied staging regions: i.e. staging must know that it has been drained fully - [x] RT-trad dynamic toggle - [x] push-pull staging boundary - [x] frame dependency tracking: automatically free/flip buffers when frame using them is done - [x] replace ALL barriers with combuf ones - [x] buffers in rtx/resources - [x] images - [x] track images sync state inline where possible - [x] find other uses - [x] improve staging - [x] track staging users explicitly - [x] per-user stats: sizes, allocations, etc - [x] push remaining data for stale users - [x] use ring buffer directly, track frame boundaries externally in fctl - [x] crash in `buildBlases()`: 1. load map with rt disabled 2. change to another map 3. enable rt 4. 💥 - [x] suboptimal barrier, see comment #742 (comment) - [x] simplify creating and building TLAS - [x] Run rendering tests - [x] missing emissive toxic waters - Leave as a known problem: it's due to inadvertently skipping some water surfaces when looking for emissive ones, see: - #56 - #752 - [x] slightly different indirect blur - Assuming that this is due to Á-Trous filtering, which could've sneaked through before the gold images were set. Not going to investigate, as we're about to submit a big change to the denoiser.
!TOXICGRN and !TOXICGRN2 does not work (c0a0d)
The text was updated successfully, but these errors were encountered: