337 lines
10 KiB
Plaintext
337 lines
10 KiB
Plaintext
MaterialDef PBR Lighting {
|
|
|
|
MaterialParameters {
|
|
Int BoundDrawBuffer
|
|
|
|
// Alpha threshold for fragment discarding
|
|
Float AlphaDiscardThreshold (AlphaTestFallOff)
|
|
|
|
//metallicity of the material
|
|
Float Metallic : 1.0
|
|
//Roughness of the material
|
|
Float Roughness : 1.0
|
|
// Base material color
|
|
Color BaseColor : 1.0 1.0 1.0 1.0
|
|
// The emissive color of the object
|
|
Color Emissive
|
|
// the emissive power
|
|
Float EmissivePower : 3.0
|
|
// the emissive intensity
|
|
Float EmissiveIntensity : 2.0
|
|
|
|
// BaseColor map
|
|
Texture2D BaseColorMap
|
|
|
|
// Metallic map
|
|
Texture2D MetallicMap -LINEAR
|
|
|
|
// Roughness Map
|
|
Texture2D RoughnessMap -LINEAR
|
|
|
|
//Metallic and Roughness are packed respectively in the b and g channel of a single map
|
|
// r: AO (if AoPackedInMRMap is true)
|
|
// g: Roughness
|
|
// b: Metallic
|
|
Texture2D MetallicRoughnessMap -LINEAR
|
|
|
|
// Texture of the emissive parts of the material
|
|
Texture2D EmissiveMap
|
|
|
|
// Normal map
|
|
Texture2D NormalMap -LINEAR
|
|
// The scalar parameter applied to each normal vector of the normal map
|
|
Float NormalScale
|
|
|
|
//The type of normal map: -1.0 (DirectX), 1.0 (OpenGl)
|
|
Float NormalType : -1.0
|
|
|
|
// For Spec gloss pipeline
|
|
Boolean UseSpecGloss
|
|
Texture2D SpecularMap
|
|
Texture2D GlossinessMap
|
|
Texture2D SpecularGlossinessMap
|
|
Color Specular : 1.0 1.0 1.0 1.0
|
|
Float Glossiness : 1.0
|
|
|
|
// Parallax/height map
|
|
Texture2D ParallaxMap -LINEAR
|
|
|
|
// Specular-AA
|
|
Boolean UseSpecularAA : true
|
|
// screen space variance,Use the slider to set the strength of the geometric specular anti-aliasing effect between 0 and 1. Higher values produce a blurrier result with less aliasing.
|
|
Float SpecularAASigma
|
|
// clamping threshold,Use the slider to set a maximum value for the offset that HDRP subtracts from the smoothness value to reduce artifacts.
|
|
Float SpecularAAKappa
|
|
|
|
//Set to true if parallax map is stored in the alpha channel of the normal map
|
|
Boolean PackedNormalParallax
|
|
|
|
//Sets the relief height for parallax mapping
|
|
Float ParallaxHeight : 0.05
|
|
|
|
//Set to true to activate Steep Parallax mapping
|
|
Boolean SteepParallax
|
|
|
|
//Horizon fade
|
|
Boolean HorizonFade
|
|
|
|
// Set to Use Lightmap
|
|
Texture2D LightMap
|
|
|
|
// A scalar multiplier controlling the amount of occlusion applied.
|
|
// A value of `0.0` means no occlusion. A value of `1.0` means full occlusion.
|
|
Float AoStrength
|
|
|
|
// Set to use TexCoord2 for the lightmap sampling
|
|
Boolean SeparateTexCoord
|
|
// the light map is a grayscale ao map, only the r channel will be read.
|
|
Boolean LightMapAsAOMap
|
|
Boolean AoPackedInMRMap
|
|
//shadows
|
|
Int FilterMode
|
|
Boolean HardwareShadows
|
|
|
|
Texture2D ShadowMap0
|
|
Texture2D ShadowMap1
|
|
Texture2D ShadowMap2
|
|
Texture2D ShadowMap3
|
|
//pointLights
|
|
Texture2D ShadowMap4
|
|
Texture2D ShadowMap5
|
|
|
|
Float ShadowIntensity
|
|
Vector4 Splits
|
|
Vector2 FadeInfo
|
|
|
|
Matrix4 LightViewProjectionMatrix0
|
|
Matrix4 LightViewProjectionMatrix1
|
|
Matrix4 LightViewProjectionMatrix2
|
|
Matrix4 LightViewProjectionMatrix3
|
|
//pointLight
|
|
Matrix4 LightViewProjectionMatrix4
|
|
Matrix4 LightViewProjectionMatrix5
|
|
Vector3 LightPos
|
|
Vector3 LightDir
|
|
|
|
Float PCFEdge
|
|
Float ShadowMapSize
|
|
|
|
// For hardware skinning
|
|
Int NumberOfBones
|
|
Matrix4Array BoneMatrices
|
|
|
|
// For Morph animation
|
|
FloatArray MorphWeights
|
|
Int NumberOfMorphTargets
|
|
Int NumberOfTargetsBuffers
|
|
|
|
// For instancing
|
|
Boolean UseInstancing
|
|
|
|
// For Vertex Color
|
|
Boolean UseVertexColor
|
|
|
|
Boolean BackfaceShadows : false
|
|
|
|
Boolean UseFog
|
|
Color FogColor
|
|
Vector2 LinearFog
|
|
Float ExpFog
|
|
Float ExpSqFog
|
|
|
|
Texture2D SunLightExposureMap
|
|
Boolean UseVertexColorsAsSunIntensity
|
|
Float StaticSunIntensity
|
|
Boolean BrightenIndoorShadows //should be set true when shadows are enabled, in order to prevent areas with low SunExposure from being way too dark when shadows are cast
|
|
|
|
// debug the final value of the selected layer as a color output
|
|
Int DebugValuesMode
|
|
// Layers:
|
|
// 0 - albedo (unshaded)
|
|
// 1 - normals
|
|
// 2 - roughness
|
|
// 3 - metallic
|
|
// 4 - ao
|
|
// 5 - emissive
|
|
// 6 - exposure
|
|
// 7 - alpha
|
|
// 8 - geometryNormals
|
|
}
|
|
|
|
Technique {
|
|
LightMode SinglePassAndImageBased
|
|
|
|
VertexShader GLSL300 GLSL150 GLSL110: Common/MatDefs/Light/PBRLighting.vert
|
|
FragmentShader GLSL300 GLSL150 GLSL110: Common/MatDefs/Light/PBRLighting.frag
|
|
|
|
WorldParameters {
|
|
WorldViewProjectionMatrix
|
|
CameraPosition
|
|
WorldMatrix
|
|
WorldNormalMatrix
|
|
ViewProjectionMatrix
|
|
ViewMatrix
|
|
}
|
|
|
|
Defines {
|
|
BOUND_DRAW_BUFFER: BoundDrawBuffer
|
|
BASECOLORMAP : BaseColorMap
|
|
NORMALMAP : NormalMap
|
|
NORMALSCALE : NormalScale
|
|
METALLICMAP : MetallicMap
|
|
ROUGHNESSMAP : RoughnessMap
|
|
EMISSIVEMAP : EmissiveMap
|
|
EMISSIVE : Emissive
|
|
SPECGLOSSPIPELINE : UseSpecGloss
|
|
PARALLAXMAP : ParallaxMap
|
|
NORMALMAP_PARALLAX : PackedNormalParallax
|
|
STEEP_PARALLAX : SteepParallax
|
|
LIGHTMAP : LightMap
|
|
SEPARATE_TEXCOORD : SeparateTexCoord
|
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
|
NUM_BONES : NumberOfBones
|
|
INSTANCING : UseInstancing
|
|
USE_PACKED_MR: MetallicRoughnessMap
|
|
USE_PACKED_SG: SpecularGlossinessMap
|
|
SPECULARMAP : SpecularMap
|
|
SPECULAR_AA : UseSpecularAA
|
|
SPECULAR_AA_SCREEN_SPACE_VARIANCE : SpecularAASigma
|
|
SPECULAR_AA_THRESHOLD : SpecularAAKappa
|
|
GLOSSINESSMAP : GlossinessMap
|
|
NORMAL_TYPE: NormalType
|
|
VERTEX_COLOR : UseVertexColor
|
|
AO_MAP: LightMapAsAOMap
|
|
AO_PACKED_IN_MR_MAP : AoPackedInMRMap
|
|
AO_STRENGTH : AoStrength
|
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
|
HORIZON_FADE: HorizonFade
|
|
EXPOSUREMAP : SunLightExposureMap
|
|
USE_VERTEX_COLORS_AS_SUN_INTENSITY : UseVertexColorsAsSunIntensity
|
|
STATIC_SUN_INTENSITY : StaticSunIntensity
|
|
BRIGHTEN_INDOOR_SHADOWS : BrightenIndoorShadows
|
|
DEBUG_VALUES_MODE : DebugValuesMode
|
|
USE_FOG : UseFog
|
|
FOG_LINEAR : LinearFog
|
|
FOG_EXP : ExpFog
|
|
FOG_EXPSQ : ExpSqFog
|
|
}
|
|
}
|
|
|
|
|
|
Technique PreShadow {
|
|
|
|
VertexShader GLSL300 GLSL150 GLSL100: Common/MatDefs/Shadow/PreShadow.vert
|
|
FragmentShader GLSL300 GLSL150 GLSL100: Common/MatDefs/Shadow/PreShadowPBR.frag
|
|
|
|
WorldParameters {
|
|
WorldViewProjectionMatrix
|
|
WorldViewMatrix
|
|
ViewProjectionMatrix
|
|
ViewMatrix
|
|
}
|
|
|
|
Defines {
|
|
BOUND_DRAW_BUFFER: BoundDrawBuffer
|
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
|
NUM_BONES : NumberOfBones
|
|
INSTANCING : UseInstancing
|
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
|
}
|
|
|
|
ForcedRenderState {
|
|
FaceCull Off
|
|
DepthTest On
|
|
DepthWrite On
|
|
PolyOffset 5 3
|
|
ColorWrite Off
|
|
}
|
|
|
|
}
|
|
|
|
|
|
Technique PostShadow {
|
|
VertexShader GLSL310 GLSL300 GLSL150 GLSL100: Common/MatDefs/Shadow/PostShadow.vert
|
|
FragmentShader GLSL310 GLSL300 GLSL150 GLSL100: Common/MatDefs/Shadow/PostShadowPBR.frag
|
|
|
|
WorldParameters {
|
|
WorldViewProjectionMatrix
|
|
WorldMatrix
|
|
ViewProjectionMatrix
|
|
ViewMatrix
|
|
}
|
|
|
|
Defines {
|
|
BOUND_DRAW_BUFFER: BoundDrawBuffer
|
|
HARDWARE_SHADOWS : HardwareShadows
|
|
FILTER_MODE : FilterMode
|
|
PCFEDGE : PCFEdge
|
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
|
SHADOWMAP_SIZE : ShadowMapSize
|
|
FADE : FadeInfo
|
|
PSSM : Splits
|
|
POINTLIGHT : LightViewProjectionMatrix5
|
|
NUM_BONES : NumberOfBones
|
|
INSTANCING : UseInstancing
|
|
BACKFACE_SHADOWS: BackfaceShadows
|
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
|
}
|
|
|
|
ForcedRenderState {
|
|
Blend Modulate
|
|
DepthWrite Off
|
|
PolyOffset -0.1 0
|
|
}
|
|
}
|
|
|
|
Technique PreNormalPass {
|
|
|
|
VertexShader GLSL300 GLSL150 GLSL100 : Common/MatDefs/SSAO/normal.vert
|
|
FragmentShader GLSL300 GLSL150 GLSL100 : Common/MatDefs/SSAO/normal.frag
|
|
|
|
WorldParameters {
|
|
WorldViewProjectionMatrix
|
|
WorldViewMatrix
|
|
NormalMatrix
|
|
ViewProjectionMatrix
|
|
ViewMatrix
|
|
}
|
|
|
|
Defines {
|
|
BOUND_DRAW_BUFFER: BoundDrawBuffer
|
|
BASECOLORMAP_ALPHA : BaseColorMap
|
|
NUM_BONES : NumberOfBones
|
|
INSTANCING : UseInstancing
|
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
|
}
|
|
|
|
}
|
|
|
|
Technique Glow {
|
|
|
|
VertexShader GLSL300 GLSL150 GLSL100: Common/MatDefs/Misc/Unshaded.vert
|
|
FragmentShader GLSL300 GLSL150 GLSL100: Common/MatDefs/Light/PBRGlow.frag
|
|
|
|
WorldParameters {
|
|
WorldViewProjectionMatrix
|
|
ViewProjectionMatrix
|
|
ViewMatrix
|
|
}
|
|
|
|
Defines {
|
|
HAS_EMISSIVEMAP : EmissiveMap
|
|
HAS_EMISSIVECOLOR : Emissive
|
|
BOUND_DRAW_BUFFER: BoundDrawBuffer
|
|
NEED_TEXCOORD1
|
|
NUM_BONES : NumberOfBones
|
|
INSTANCING : UseInstancing
|
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
|
}
|
|
}
|
|
|
|
}
|