View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0005867 | The Dark Mod | Graphics | public | 04.01.2022 03:25 | 27.11.2025 12:01 |
| Reporter | stgatilov | Assigned To | stgatilov | ||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | feedback | Resolution | open | ||
| Product Version | TDM 2.10 | ||||
| Target Version | TDM 2.14 | ||||
| Summary | 0005867: Try to support interactions on projected decals | ||||
| Description | It turns out that decals generated dynamically (e.g. blood splats) go through simplified processing in renderer frontend: // add the lightweight decal surfaces for ( idRenderModelDecal *decal = def.decals; decal; decal = decal->Next() ) { decal->AddDecalDrawSurf( vEntity ); } Most importantly, interactions are not generated for them. It makes it impossible to apply bumpmapping to them. Maybe we can change that... | ||||
| Additional Information | Internal discussion: https://forums.thedarkmod.com/index.php?/topic/21214-normalmaps-for-temporary-decals/ | ||||
| Tags | No tags attached. | ||||
|
I currently see two ways: 1) Enable interactions for the current decals (idRenderModelDecal, which is actually not derived from idRenderModel). The problem here is that interactions will be cached as part of interactions with the owner entity, which is usually static. So one has to hack frontend to force regeneration of interactions with owner whenever that is a decal on it. 2) For every decal, create a separate idRenderEntityLocal which represents it. This involves some lifetime management (store links, delete decal REs when owner RE dies). But then frontend should work out of the box, and interactions too (basically everything should). The model should probably be DM_CONTINUOUS, so that it can regenerate alpha every frame. This might also be more costly performance-wise... |
|
|
Here are some generic changes: r11021 Renamed idRenderModelDecal -> idDecalOnRenderModel, idRenderModelOverlay -> idOverlayOnRenderModel. r11022 Optimized Bvh build slightly. r11023 For two-sided material with interactions, make sure to set ID for duplicated surfaces. The last fix is quite critical: I won't be surprised if previously two-sided material randomly stopped working. And here is the implementation of the feature: r11024 Implemented projected decals which can generate interactions. r11025 Force using decal models with interactions by default. As of now, the new decal system is force on by default. If we discover some issue with it, we'll use both system depending on material flag. If not, then I guess material flag "forceInteractions" should be deleted. |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 04.01.2022 03:25 | stgatilov | New Issue | |
| 04.01.2022 03:30 | stgatilov | Relationship added | related to 0005868 |
| 15.11.2022 04:42 | nbohr1more | Target Version | TDM 2.11 => TDM 2.12 |
| 04.11.2023 08:22 | stgatilov | Note Added: 0016161 | |
| 05.12.2023 01:21 | nbohr1more | Target Version | TDM 2.12 => TDM 2.13 |
| 08.01.2025 02:17 | nbohr1more | Target Version | TDM 2.13 => TDM 2.14 |
| 27.11.2025 11:23 | stgatilov | Assigned To | => stgatilov |
| 27.11.2025 11:23 | stgatilov | Status | new => assigned |
| 27.11.2025 11:26 | stgatilov | Note Added: 0017080 | |
| 27.11.2025 12:01 | stgatilov | Status | assigned => feedback |