11// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
2- // ($PIXELFOGTYPE == 0) && ($WRITEWATERFOGTODESTALPHA != 0)
32// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTSHADOWS == 1 )
43// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTDEPTHFILTERMODE != 0 )
5- // ( $LIGHTMAPPED == 0 ) && ( $PARALLAXCORRECT != 0 )
4+ // !$HSV && $HSV_BLEND
5+ // defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
6+ // defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
7+ // defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
8+ // defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
9+ // ($FLASHLIGHT || $FLASHLIGHTSHADOWS) && $LIGHTING_PREVIEW
610// defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
711// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
812// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
@@ -27,15 +31,27 @@ class pbr_ps20b_Static_Index
2731 unsigned int m_nFLASHLIGHTDEPTHFILTERMODE : 2 ;
2832 unsigned int m_nLIGHTMAPPED : 2 ;
2933 unsigned int m_nEMISSIVE : 2 ;
30- unsigned int m_nSPECULAR : 2 ;
34+ unsigned int m_nPARALLAXOCCLUSION : 1 ;
35+ unsigned int m_nWVT : 2 ;
36+ unsigned int m_nHSV : 2 ;
37+ unsigned int m_nHSV_BLEND : 2 ;
3138 unsigned int m_nPARALLAXCORRECT : 2 ;
39+ unsigned int m_nBLENDTINTBYMRAOALPHA : 2 ;
40+ unsigned int m_nPARALLAXDITHER : 1 ;
41+ unsigned int m_nEMISSIVEFRESNEL : 1 ;
3242#ifdef _DEBUG
3343 bool m_bFLASHLIGHT : 1 ;
3444 bool m_bFLASHLIGHTDEPTHFILTERMODE : 1 ;
3545 bool m_bLIGHTMAPPED : 1 ;
3646 bool m_bEMISSIVE : 1 ;
37- bool m_bSPECULAR : 1 ;
47+ bool m_bPARALLAXOCCLUSION : 1 ;
48+ bool m_bWVT : 1 ;
49+ bool m_bHSV : 1 ;
50+ bool m_bHSV_BLEND : 1 ;
3851 bool m_bPARALLAXCORRECT : 1 ;
52+ bool m_bBLENDTINTBYMRAOALPHA : 1 ;
53+ bool m_bPARALLAXDITHER : 1 ;
54+ bool m_bEMISSIVEFRESNEL : 1 ;
3955#endif // _DEBUG
4056public:
4157 void SetFLASHLIGHT ( int i )
@@ -74,12 +90,39 @@ public:
7490#endif // _DEBUG
7591 }
7692
77- void SetSPECULAR ( int i )
93+ void SetPARALLAXOCCLUSION ( int i )
94+ {
95+ Assert ( i >= 0 && i <= 0 );
96+ m_nPARALLAXOCCLUSION = i;
97+ #ifdef _DEBUG
98+ m_bPARALLAXOCCLUSION = true ;
99+ #endif // _DEBUG
100+ }
101+
102+ void SetWVT ( int i )
103+ {
104+ Assert ( i >= 0 && i <= 1 );
105+ m_nWVT = i;
106+ #ifdef _DEBUG
107+ m_bWVT = true ;
108+ #endif // _DEBUG
109+ }
110+
111+ void SetHSV ( int i )
112+ {
113+ Assert ( i >= 0 && i <= 1 );
114+ m_nHSV = i;
115+ #ifdef _DEBUG
116+ m_bHSV = true ;
117+ #endif // _DEBUG
118+ }
119+
120+ void SetHSV_BLEND ( int i )
78121 {
79122 Assert ( i >= 0 && i <= 1 );
80- m_nSPECULAR = i;
123+ m_nHSV_BLEND = i;
81124#ifdef _DEBUG
82- m_bSPECULAR = true ;
125+ m_bHSV_BLEND = true ;
83126#endif // _DEBUG
84127 }
85128
@@ -92,69 +135,87 @@ public:
92135#endif // _DEBUG
93136 }
94137
138+ void SetBLENDTINTBYMRAOALPHA ( int i )
139+ {
140+ Assert ( i >= 0 && i <= 1 );
141+ m_nBLENDTINTBYMRAOALPHA = i;
142+ #ifdef _DEBUG
143+ m_bBLENDTINTBYMRAOALPHA = true ;
144+ #endif // _DEBUG
145+ }
146+
147+ void SetPARALLAXDITHER ( int i )
148+ {
149+ Assert ( i >= 0 && i <= 0 );
150+ m_nPARALLAXDITHER = i;
151+ #ifdef _DEBUG
152+ m_bPARALLAXDITHER = true ;
153+ #endif // _DEBUG
154+ }
155+
156+ void SetEMISSIVEFRESNEL ( int i )
157+ {
158+ Assert ( i >= 0 && i <= 0 );
159+ m_nEMISSIVEFRESNEL = i;
160+ #ifdef _DEBUG
161+ m_bEMISSIVEFRESNEL = true ;
162+ #endif // _DEBUG
163+ }
164+
95165 pbr_ps20b_Static_Index ( IShaderShadow* pShaderShadow, IMaterialVar** params )
96166 {
97167 m_nFLASHLIGHT = 0 ;
98168 m_nFLASHLIGHTDEPTHFILTERMODE = 0 ;
99169 m_nLIGHTMAPPED = 0 ;
100170 m_nEMISSIVE = 0 ;
101- m_nSPECULAR = 0 ;
171+ m_nPARALLAXOCCLUSION = 0 ;
172+ m_nWVT = 0 ;
173+ m_nHSV = 0 ;
174+ m_nHSV_BLEND = 0 ;
102175 m_nPARALLAXCORRECT = 0 ;
176+ m_nBLENDTINTBYMRAOALPHA = 0 ;
177+ m_nPARALLAXDITHER = 0 ;
178+ m_nEMISSIVEFRESNEL = 0 ;
103179#ifdef _DEBUG
104180 m_bFLASHLIGHT = false ;
105181 m_bFLASHLIGHTDEPTHFILTERMODE = false ;
106182 m_bLIGHTMAPPED = false ;
107183 m_bEMISSIVE = false ;
108- m_bSPECULAR = false ;
184+ m_bPARALLAXOCCLUSION = false ;
185+ m_bWVT = false ;
186+ m_bHSV = false ;
187+ m_bHSV_BLEND = false ;
109188 m_bPARALLAXCORRECT = false ;
189+ m_bBLENDTINTBYMRAOALPHA = false ;
190+ m_bPARALLAXDITHER = false ;
191+ m_bEMISSIVEFRESNEL = false ;
110192#endif // _DEBUG
111193 }
112194
113195 int GetIndex () const
114196 {
115- Assert ( m_bFLASHLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bLIGHTMAPPED && m_bEMISSIVE && m_bSPECULAR && m_bPARALLAXCORRECT );
197+ Assert ( m_bFLASHLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bLIGHTMAPPED && m_bEMISSIVE && m_bPARALLAXOCCLUSION && m_bWVT && m_bHSV && m_bHSV_BLEND && m_bPARALLAXCORRECT && m_bBLENDTINTBYMRAOALPHA && m_bPARALLAXDITHER && m_bEMISSIVEFRESNEL );
116198 AssertMsg ( !( ( m_nFLASHLIGHT == 0 ) && ( m_nFLASHLIGHTDEPTHFILTERMODE != 0 ) ), " Invalid combo combination ( ( FLASHLIGHT == 0 ) && ( FLASHLIGHTDEPTHFILTERMODE != 0 ) )" );
117- AssertMsg ( !( ( m_nLIGHTMAPPED == 0 ) && ( m_nPARALLAXCORRECT != 0 ) ) , " Invalid combo combination ( ( LIGHTMAPPED == 0 ) && ( PARALLAXCORRECT != 0 ) )" );
118- return ( 80 * m_nFLASHLIGHT ) + ( 160 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 480 * m_nLIGHTMAPPED ) + ( 960 * m_nEMISSIVE ) + ( 1920 * m_nSPECULAR ) + ( 3840 * m_nPARALLAXCORRECT ) + 0 ;
199+ AssertMsg ( !( !m_nHSV && m_nHSV_BLEND ) , " Invalid combo combination ( !HSV && HSV_BLEND )" );
200+ return ( 40 * m_nFLASHLIGHT ) + ( 80 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 240 * m_nLIGHTMAPPED ) + ( 480 * m_nEMISSIVE ) + ( 960 * m_nPARALLAXOCCLUSION ) + ( 960 * m_nWVT ) + ( 1920 * m_nHSV ) + ( 3840 * m_nHSV_BLEND ) + ( 7680 * m_nPARALLAXCORRECT ) + ( 15360 * m_nBLENDTINTBYMRAOALPHA ) + ( 30720 * m_nPARALLAXDITHER ) + ( 30720 * m_nEMISSIVEFRESNEL ) + 0 ;
119201 }
120202};
121203
122- #define shaderStaticTest_pbr_ps20b psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_LIGHTMAPPED + psh_forgot_to_set_static_EMISSIVE + psh_forgot_to_set_static_SPECULAR + psh_forgot_to_set_static_PARALLAXCORRECT
204+ #define shaderStaticTest_pbr_ps20b psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_LIGHTMAPPED + psh_forgot_to_set_static_EMISSIVE + psh_forgot_to_set_static_PARALLAXOCCLUSION + psh_forgot_to_set_static_WVT + psh_forgot_to_set_static_HSV + psh_forgot_to_set_static_HSV_BLEND + psh_forgot_to_set_static_PARALLAXCORRECT + psh_forgot_to_set_static_BLENDTINTBYMRAOALPHA + psh_forgot_to_set_static_PARALLAXDITHER + psh_forgot_to_set_static_EMISSIVEFRESNEL
123205
124206
125207class pbr_ps20b_Dynamic_Index
126208{
127- unsigned int m_nWRITEWATERFOGTODESTALPHA : 2 ;
128- unsigned int m_nPIXELFOGTYPE : 2 ;
129209 unsigned int m_nNUM_LIGHTS : 3 ;
130210 unsigned int m_nWRITE_DEPTH_TO_DESTALPHA : 2 ;
131211 unsigned int m_nFLASHLIGHTSHADOWS : 2 ;
212+ unsigned int m_nPIXELFOGTYPE : 2 ;
132213#ifdef _DEBUG
133- bool m_bWRITEWATERFOGTODESTALPHA : 1 ;
134- bool m_bPIXELFOGTYPE : 1 ;
135214 bool m_bNUM_LIGHTS : 1 ;
136215 bool m_bWRITE_DEPTH_TO_DESTALPHA : 1 ;
137216 bool m_bFLASHLIGHTSHADOWS : 1 ;
138217#endif // _DEBUG
139218public:
140- void SetWRITEWATERFOGTODESTALPHA ( int i )
141- {
142- Assert ( i >= 0 && i <= 1 );
143- m_nWRITEWATERFOGTODESTALPHA = i;
144- #ifdef _DEBUG
145- m_bWRITEWATERFOGTODESTALPHA = true ;
146- #endif // _DEBUG
147- }
148-
149- void SetPIXELFOGTYPE ( int i )
150- {
151- Assert ( i >= 0 && i <= 1 );
152- m_nPIXELFOGTYPE = i;
153- #ifdef _DEBUG
154- m_bPIXELFOGTYPE = true ;
155- #endif // _DEBUG
156- }
157-
158219 void SetNUM_LIGHTS ( int i )
159220 {
160221 Assert ( i >= 0 && i <= 4 );
@@ -182,16 +243,19 @@ public:
182243#endif // _DEBUG
183244 }
184245
246+ void SetPIXELFOGTYPE ( int i )
247+ {
248+ Assert ( i >= 0 && i <= 1 );
249+ m_nPIXELFOGTYPE = i;
250+ }
251+
185252 pbr_ps20b_Dynamic_Index ( IShaderDynamicAPI* pShaderAPI )
186253 {
187- m_nWRITEWATERFOGTODESTALPHA = 0 ;
188- m_nPIXELFOGTYPE = 0 ;
189254 m_nNUM_LIGHTS = 0 ;
190255 m_nWRITE_DEPTH_TO_DESTALPHA = 0 ;
191256 m_nFLASHLIGHTSHADOWS = 0 ;
257+ m_nPIXELFOGTYPE = ( pShaderAPI->GetSceneFogMode () == MATERIAL_FOG_LINEAR_BELOW_FOG_Z ) ;
192258#ifdef _DEBUG
193- m_bWRITEWATERFOGTODESTALPHA = false ;
194- m_bPIXELFOGTYPE = false ;
195259 m_bNUM_LIGHTS = false ;
196260 m_bWRITE_DEPTH_TO_DESTALPHA = false ;
197261 m_bFLASHLIGHTSHADOWS = false ;
@@ -200,14 +264,10 @@ public:
200264
201265 int GetIndex () const
202266 {
203- Assert ( m_bWRITEWATERFOGTODESTALPHA && m_bPIXELFOGTYPE && m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS );
204- AssertMsg ( !( ( m_nPIXELFOGTYPE == 0 ) && ( m_nWRITEWATERFOGTODESTALPHA != 0 ) ), " Invalid combo combination ( ( PIXELFOGTYPE == 0 ) && ( WRITEWATERFOGTODESTALPHA != 0 ) )" );
205- AssertMsg ( !( 1 && ( 1 && ( ( m_nPIXELFOGTYPE != 1 ) && m_nWRITEWATERFOGTODESTALPHA ) ) ), " Invalid combo combination ( 1 && ( 1 && ( ( PIXELFOGTYPE != 1 ) && WRITEWATERFOGTODESTALPHA ) ) )" );
206- AssertMsg ( !( 1 && ( 1 && ( ( m_nPIXELFOGTYPE != 1 ) && m_nWRITEWATERFOGTODESTALPHA ) ) ), " Invalid combo combination ( 1 && ( 1 && ( ( PIXELFOGTYPE != 1 ) && WRITEWATERFOGTODESTALPHA ) ) )" );
207- AssertMsg ( !( 1 && ( 1 && ( ( m_nPIXELFOGTYPE != 1 ) && m_nWRITEWATERFOGTODESTALPHA ) ) ), " Invalid combo combination ( 1 && ( 1 && ( ( PIXELFOGTYPE != 1 ) && WRITEWATERFOGTODESTALPHA ) ) )" );
208- return ( 1 * m_nWRITEWATERFOGTODESTALPHA ) + ( 2 * m_nPIXELFOGTYPE ) + ( 4 * m_nNUM_LIGHTS ) + ( 20 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 40 * m_nFLASHLIGHTSHADOWS ) + 0 ;
267+ Assert ( m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS );
268+ return ( 1 * m_nNUM_LIGHTS ) + ( 5 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 10 * m_nFLASHLIGHTSHADOWS ) + ( 20 * m_nPIXELFOGTYPE ) + 0 ;
209269 }
210270};
211271
212- #define shaderDynamicTest_pbr_ps20b psh_forgot_to_set_dynamic_WRITEWATERFOGTODESTALPHA + psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS
272+ #define shaderDynamicTest_pbr_ps20b psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS
213273
0 commit comments