|
236 | 236 | Math_lengthAndNormalize(light.vector,dist,L);
|
237 | 237 |
|
238 | 238 | float invRange=light.invRadius; // position.w
|
239 |
| - const float light_threshold=0.01; |
| 239 | + const float light_threshold = 0.01; |
240 | 240 |
|
241 | 241 | #ifdef SRGB
|
242 | 242 | light.fallOff = (1.0 - invRange * dist) / (1.0 + invRange * dist * dist); // lightDir.w
|
|
272 | 272 |
|
273 | 273 | PBRSurface PBRLightingUtils_createPBRSurface(in vec3 wViewDir){
|
274 | 274 |
|
275 |
| - PBRSurface surface; |
| 275 | + PBRSurface surface; //creates a new PBRSurface |
| 276 | + |
276 | 277 | surface.position = wPosition;
|
277 | 278 | surface.viewDir = wViewDir;
|
278 | 279 | surface.geometryNormal = normalize(wNormal);
|
279 | 280 |
|
| 281 | + //set default values |
| 282 | + surface.hasTangents = false; |
| 283 | + surface.hasBasicLightMap = false; |
| 284 | + surface.albedo = vec3(1.0); |
| 285 | + surface.normal = surface.geometryNormal; |
| 286 | + surface.emission = vec3(0.0); |
| 287 | + surface.ao = vec3(1.0); |
| 288 | + surface.lightMapColor = vec3(0.0); |
| 289 | + surface.alpha = 1.0; |
| 290 | + surface.roughness = 1.0; |
| 291 | + surface.metallic = 0.0; |
| 292 | + surface.alpha = 1.0; |
| 293 | + surface.exposure = 1.0; |
| 294 | + |
280 | 295 | return surface;
|
281 | 296 | }
|
282 | 297 |
|
|
285 | 300 |
|
286 | 301 | void PBRLightingUtils_readPBRSurface(inout PBRSurface surface){
|
287 | 302 |
|
288 |
| - surface.bakedLightContribution = vec3(0); |
289 |
| - surface.directLightContribution = vec3(0); |
290 |
| - surface.envLightContribution = vec3(0); |
| 303 | + surface.bakedLightContribution = vec3(0.0); |
| 304 | + surface.directLightContribution = vec3(0.0); |
| 305 | + surface.envLightContribution = vec3(0.0); |
291 | 306 |
|
292 | 307 | #ifdef ENABLE_PBRLightingUtils_getWorldTangent
|
293 | 308 | vec3 tan = normalize(wTangent.xyz);
|
|
297 | 312 |
|
298 | 313 |
|
299 | 314 | #if (defined(PARALLAXMAP) || (defined(NORMALMAP_PARALLAX) && defined(NORMALMAP)))
|
300 |
| - vec3 vViewDir = wViewDir * surface.tbnMat; |
| 315 | + vec3 vViewDir = surface.viewDir * surface.tbnMat; |
301 | 316 | #ifdef STEEP_PARALLAX
|
302 | 317 | #ifdef NORMALMAP_PARALLAX
|
303 | 318 | //parallax map is stored in the alpha channel of the normal map
|
|
429 | 444 | #endif
|
430 | 445 | surface.emission = emissive.rgb * pow(emissive.a, m_EmissivePower) * m_EmissiveIntensity;
|
431 | 446 | #else
|
432 |
| - surface.emission = vec3(0); |
| 447 | + surface.emission = vec3(0.0); |
433 | 448 | #endif
|
434 | 449 |
|
435 | 450 | PBRLightingUtils_readSunLightExposureParams(surface);
|
|
573 | 588 |
|
574 | 589 |
|
575 | 590 | #if NB_PROBES > 0
|
576 |
| - float probeNdfSum=0; |
577 |
| - float invProbeNdfSum=0; |
| 591 | + float probeNdfSum = 0.0; |
| 592 | + float invProbeNdfSum = 0.0; |
578 | 593 |
|
579 | 594 | #for i=1..4 ( #if NB_PROBES >= $i $0 #endif )
|
580 | 595 | vec3 probeColor$i;
|
|
607 | 622 | #endfor
|
608 | 623 |
|
609 | 624 | #if NB_PROBES > 1
|
610 |
| - float probeWeightSum=0; |
| 625 | + float probeWeightSum = 0.0; |
611 | 626 | #for i=1..4 ( #if NB_PROBES >= $i $0 #endif )
|
612 | 627 | float probeWeight$i = ((1.0 - (probeNdf$i / probeNdfSum)) / (NB_PROBES - 1)) * ( probeInvNdf$i / invProbeNdfSum);
|
613 | 628 | probeWeightSum += probeWeight$i;
|
|
650 | 665 | else if(debugValuesMode == 7){
|
651 | 666 | outputColorForLayer.rgb = vec3(surface.alpha);
|
652 | 667 | }
|
| 668 | + else if(debugValuesMode == 8){ |
| 669 | + outputColorForLayer.rgb = vec3(surface.geometryNormal); |
| 670 | + } |
653 | 671 |
|
654 | 672 | if(debugValuesMode >= 0){
|
655 | 673 | gl_FragColor.a = 1.0;
|
|
0 commit comments