View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004939||The Dark Mod||Graphics||public||01.01.2019 15:43||15.02.2021 16:35|
|Product Version||TDM 2.07|
|Summary||0004939: Wrong mirror reflection on model - bc_teatray|
|Description||When looking into mirror, I see something like a skybox texture.|
|Steps To Reproduce||1) Start "Crucible Omens: Behind Closed Doors" FM.|
2) Execute: setviewpos 1004.45 515.88 869.25 7.5 93.5 0.0
Now look at the mirror in front of you.
It is a bit muddy, but after a bit of strafing it is clear that the reflection is wrong.
|Tags||No tags attached.|
bcd_wrong_mirror_reflection.jpg (282,934 bytes)
Darkmod.cfg (13,288 bytes)
I used beta207-02 build to reproduce issue.
Although it will most likely happen in any version.
This is not a brush/patch-made mirror, but a model-made.
There are at least two issues with it:
1) The mirror material must have "mirrorRenderMap" in its main stage, but this material "bc_teatray" does not.
As the result, the subview rendering does not trigger, and things work as if the mirror was caulk.
2) The mirror surface must be exact plane, but this model is curved and material is applied to the whole of it.
That's because engine computes mirror plane from the first triangle of the model, which can be pretty arbitrary (and curved mirrors are impossible to support).
So I see two solutions:
a) Split model into two surfaces: the mirroring planar surface in the center, and the non-mirroring surroundings.
Then add "mirrorRenderMap" to the material (will have to review all of its usages too).
b) Remove "mirror" keyword from the material, so that the model looks like an ordinary one.
|Its a core mod asset, its a problem with the model - not the FM|
|Yes indeed, it is the problem of stock model + material entirely.|
This was caused by revision 7768.
There is a new check to prevent hall-of-mirror effects:
if ( tr.viewDef->superView && tr.viewDef->superView->isSubview ) // 0004615 HOM effect - only draw mirrors from player's view and top-level asubviews
if ( tr.viewDef->isSubview )
As I can tell, the old check would prevent skybox rendering to mirrors.
I think the best solution is to create a material flag "allowSkyBox" and set it to false by default then add it to this check
I have pointed to model/material errors in my comment (https://bugs.thedarkmod.com/view.php?id=4939#c13212).
Before trying to do anything else, these problems must be addressed anyway.
The problem affects puddles and other reflective materials which do not have the other material issues seen in this asset.
I second @stgatilov
This needs a model fix, although I would slap a fake environment on it (not that I actually know how to)
Rev 16143 now no longer has the skybox in the reflection.
A future update should replace this with a cubemap reflection.
I see that "map _scratch2" starts spreading over materials, thanks to nbohr1more's efforts.
Could anyone explain exactly how it works?
To me it sounds like a hack.
_scratch2 is not the right material to be used anywhere. Judging from its name, it can have arbitrary contents, which will most likely lead to phantom images being displayed at random places in future. We already have enough of such issues.
See the discussion here:
I think we need to have dedicated _scratch images for different reflective surfaces or some other structure to prevent
Incidentally, the new reflection looks great on when the tea tray is positioned vertically like a mirror as in "Behind Closed Doors"
but when laid flat on a table the issue with "random triangle" deciding the reflection vector really stands out.
It would be great if mirrorRenderMap materials had something like the "viewOffset" arg for cameras so that you could define your own
triangle orientation for the material by defining the entity origin. I guess the closest analogous thing we have is the spectrum keyword.
|01.01.2019 15:43||stgatilov||New Issue|
|01.01.2019 15:43||stgatilov||File Added: bcd_wrong_mirror_reflection.jpg|
|01.01.2019 15:44||stgatilov||File Added: Darkmod.cfg|
|01.01.2019 15:44||stgatilov||Note Added: 0011203|
|26.12.2020 08:56||stgatilov||Note Added: 0013212|
|26.12.2020 12:31||Bikerdude||Note Added: 0013221|
|26.12.2020 12:31||Bikerdude||Summary||Crucible Omens BCD: wrong mirror reflection => Wrong mirror reflection on model - bc_teatray|
|26.12.2020 13:34||stgatilov||Note Added: 0013236|
|05.02.2021 16:50||nbohr1more||Relationship added||related to 0005035|
|05.02.2021 16:51||nbohr1more||Relationship added||child of 0004615|
|06.02.2021 13:20||nbohr1more||Assigned To||=> duzenko|
|06.02.2021 13:20||nbohr1more||Status||new => confirmed|
|06.02.2021 13:25||nbohr1more||Note Added: 0013657|
|06.02.2021 14:44||stgatilov||Note Added: 0013658|
|06.02.2021 15:04||nbohr1more||Note Edited: 0013657||View Revisions|
|06.02.2021 15:05||nbohr1more||Note Added: 0013659|
|06.02.2021 15:06||nbohr1more||Note Edited: 0013659||View Revisions|
|06.02.2021 19:53||duzenko||Note Added: 0013661|
|07.02.2021 21:40||nbohr1more||Note Added: 0013665|
|15.02.2021 05:36||stgatilov||Note Added: 0013683|
|15.02.2021 15:43||nbohr1more||Note Added: 0013687|
|15.02.2021 16:35||nbohr1more||Note Added: 0013688|