Jump to content

Shadow Generations Shaders - DirectionBlend dpnndpn: Difference between revisions

From HedgeDocs
Justin113D (talk | contribs)
Added gallery
Justin113D (talk | contribs)
No edit summary
Line 135: Line 135:
| technical =
| technical =
For some reason using the <code>IBL_CAPTURE</code> debug view the directional blend factor is set to 0.  
For some reason using the <code>IBL_CAPTURE</code> debug view the directional blend factor is set to 0.  
Why this was done is unknown, and makes no sense.
<br/>Why this was done is unknown, and makes no sense, as this produces IBL textures with an incorrect looking environment.


| features =
| features =

Revision as of 13:28, 25 August 2025

Return to shaders list

Overview

Shader Behavior Overview
Shader model:

   [2] Standard (PBR)
Does not support:

An advanced PBR shader that uses

Warning
This shader has a bug where the second normal texture is not applied. It is advised to not used this shader.

Related shaders

Behavior

Distance blending

Uses distance blending to interpolate

  • from the normal texture
  • to the normal and normal[1] textures blended together

for the normal map of the first set of textures.


The shader uses detailDistance and detailFadeRange from the stage RFL to determine the detail range.

Directional blending

This shader has two sets of PBR textures:

  • diffuse, specular and normal
  • diffuse[1], specular[1] and normal[2]

The shader uses a blend factor to interpolate from the first set of textures to second one.
This blend factor is calculated using directional blending.

This involves various inputs:

Input Description
Normal map The normal (afterdistance blending) texture is applied to the normal direction before calculating the directional blend factor
Red vertex color channel The directional blend bias
DirectionParam parameter The directional blend direction
NormalBlendParam parameter The Directional blend intensity and offset
diffuse and diffuse[1] (multiplied together) The Directional blend limit

Transparency

(For some reason) the directional blend factor is used for the transparency, and not any of the diffuse textures alpha channels, which makes for limited use cases.

Vertex Colors

  • The colors...
  • Alpha is unused

Bugs

Warning
When the shader unpacks the normal[2] texture, the tangent and binormal vectors are left at 0, which results in no change by the normal map at all.


Speculation:

The developers could have attempted to implement multi-tangent here, but must have compiled the shader before the multi-tangent system was properly implemented, which left the tangent and binormal at 0 and resulted in incorrectly unpacking the normal map.

Material Inputs

Textures

Name

Index

UV Index

Kind

Red

Green

Blue

Alpha

diffuse 0 Any Albedo First Albedo color directional blend limit
diffuse 1 Any Albedo Second Albedo color directional blend limit
specular 0 Any PRM First Specular factor;
Gets multiplied by 0.25
First Smoothness factor First Metallic factor First Ambient Occlusion
specular 1 Any PRM Second Specular factor;
Gets multiplied by 0.25
Second Smoothness factor Second Metallic factor Second Ambient Occlusion
normal 0 Any Normal map First Normal map direction N/A N/A
normal 1 Any Detail Normal map Detail Normal map direction N/A N/A
normal 2 Any Normal map Second Normal map direction N/A N/A

Parameters

Name

X

Y

Z

W

DetailFactor UV scale for the normal[1] texture N/A N/A N/A
DirectionParam Directional blend direction N/A
NormalBlendParam Directional blend intensity Directional blend offset N/A N/A

Gallery

Technical

For some reason using the IBL_CAPTURE debug view the directional blend factor is set to 0.
Why this was done is unknown, and makes no sense, as this produces IBL textures with an incorrect looking environment.

Shader Features
is_compute_instancing
is_use_tex_srt_anim
enable_alpha_threshold
is_use_gi_prt
is_use_gi_sg
is_use_gi
Cookies help us deliver our services. By using our services, you agree to our use of cookies.