View Issue Details

IDProjectCategoryView StatusLast Update
0005044The Dark ModGraphicspublic26.07.2020 06:24
ReporterVanishedOne Assigned Tostgatilov  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.07 
Target VersionTDM 2.08Fixed in VersionTDM 2.08 
Summary0005044: Adjusting specular RGB in material stages fails under enhanced interaction shader
DescriptionWhat I brought up previously here:
http://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/page/313/&tab=comments#comment-414038
http://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/page/313/&tab=comments#comment-414162

According to http://forums.thedarkmod.com/index.php?/topic/11893-ungoliants-mapping-questions/page/14/&tab=comments#comment-333417 the enhanced interaction shader written to replace D3's broke the ability to write stages like

{
blend specularmap
map _white
rgb 0.1 // only works under the simple shader
}

The GLSL shader has inherited this behaviour. If that were changed we could reuse textures more effectively (often TDM specular maps are just darker versions of the diffuse maps) and tweak materials more easily.

Currently the enhanced shader actually takes RGB scaling from the diffuse stage, so if a material has e.g. "rgb 0.1" in the diffuse stage it affects diffuse *and* specular colour under the enhanced shader. (Changing this behaviour could therefore affect the look of some existing materials under the enhanced shader, but it would resolve inconsistency between shader settings, giving material authors better control.)
Additional InformationIn D3 rgb fading was even used to transition between diffuse and specular maps, as seen here:

models/characters/player/player_phantasm
{
        noselfshadow
        clamp
// blended part
    
    {
        blend bumpmap
        map addnormals(models/characters/player/playerhead_local.tga, heightmap(models/characters/player/playerhead_h.tga, 3 ) )
    // note that you do NOT put vertexColor on the bumpmap
    }
    {
        blend diffusemap
        map models/characters/player/playerhead.tga
        rgb 1-death_fade[(time+Parm4)*.4]
    }
    {
        blend specularmap
        map models/characters/player/playerhead_s.tga
        rgb 1-death_fade[(time+Parm4)*.4]
    }
// inverse blended part
    {
        blend bumpmap
        map addnormals(models/characters/player/playerheaddead_local.tga, heightmap(models/characters/player/playerhead_h.tga, 8 ) )
    }
    {
        blend diffusemap
        map models/characters/player/playerheaddead.tga
        rgb death_fade[(time+Parm4)*.4]
    }
    {
        blend specularmap
        map models/characters/player/playerheaddead_s.tga
        rgb death_fade[(time+Parm4)*.4]
    }
}
TagsNo tags attached.

Relationships

related to 0005043 new RGBA keywords have no effect in cubemap stages if material has light interaction 

Activities

stgatilov

stgatilov

04.01.2020 05:56

manager   ~0012057

Implemented in svn rev 8489 under cvar: r_testSpecularFix
Also discussed in internal forums:
  https://forums.thedarkmod.com/index.php?/topic/20205-5044-rgb-value-in-specular-stage/

However, it is not clear what would happen to this.
This problem was ignored for so much time, than now people are too afraid of such a global change to the visual appearance, and prefer to stick to the old behavior.
nbohr1more

nbohr1more

20.05.2020 22:52

developer   ~0012532

There is an issue with decals with colored specular.

Workaround applied for 2.08 in material def ( makeIntensity program keyword )

r15924
another specular decal fix
---------------------
r15923
force specular to black and white for wet decal to avoid flicker artifacts
nbohr1more

nbohr1more

20.05.2020 22:54

developer   ~0012533

textures/decals/stain01bwet
{
    TWOSIDED_DECAL_MACRO
    

    qer_editorimage textures/decals/stain01bwet.tga

    
     {
        blend gl_dst_color,gl_zero
        map textures/decals/stain01b.tga
     }

    {
       blend specularmap
       map makeIntensity(textures/decals/stain01b_s.tga)
       
    }
    
}
nbohr1more

nbohr1more

20.05.2020 23:05

developer   ~0012534

No mapper or dev objections to the changes. Marking as resolved.
stgatilov

stgatilov

26.07.2020 06:24

manager   ~0012675

Removed cvar for this in 8883.
Now it is always enabled and can't be disabled.

Issue History

Date Modified Username Field Change
17.08.2019 16:42 VanishedOne New Issue
17.08.2019 16:42 VanishedOne Relationship added related to 0005043
17.08.2019 16:51 VanishedOne Description Updated View Revisions
18.08.2019 13:03 VanishedOne Description Updated View Revisions
18.08.2019 13:05 VanishedOne Description Updated View Revisions
18.08.2019 15:04 VanishedOne Severity feature => normal
04.01.2020 05:56 stgatilov Note Added: 0012057
04.01.2020 05:56 stgatilov Assigned To => stgatilov
04.01.2020 05:56 stgatilov Status new => assigned
09.03.2020 11:11 stgatilov Product Version => TDM 2.07
09.03.2020 11:11 stgatilov Target Version => TDM 2.08
20.05.2020 17:10 nbohr1more Status assigned => feedback
20.05.2020 22:52 nbohr1more Note Added: 0012532
20.05.2020 22:54 nbohr1more Note Added: 0012533
20.05.2020 23:05 nbohr1more Note Added: 0012534
20.05.2020 23:11 nbohr1more Status feedback => resolved
20.05.2020 23:11 nbohr1more Resolution open => fixed
20.05.2020 23:11 nbohr1more Fixed in Version => TDM 2.08
26.07.2020 06:24 stgatilov Note Added: 0012675