Skip to content

Commit 0814449

Browse files
author
Mike Bond
committed
Fix AO compilation errors for OpenPBR
1 parent c229e29 commit 0814449

File tree

8 files changed

+88
-16
lines changed

8 files changed

+88
-16
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
struct ambientOcclusionOutParams
2+
{
3+
vec3 ambientOcclusionColor;
4+
#if DEBUGMODE > 0 && defined(AMBIENT_OCCLUSION)
5+
vec3 ambientOcclusionColorMap;
6+
#endif
7+
};
8+
9+
ambientOcclusionOutParams ambientOcclusionBlock(
10+
#ifdef AMBIENT_OCCLUSION
11+
in vec3 ambientOcclusionColorMap_,
12+
in vec2 ambientInfos
13+
#endif
14+
)
15+
{
16+
ambientOcclusionOutParams outParams;
17+
vec3 ambientOcclusionColor = vec3(1., 1., 1.);
18+
19+
#ifdef AMBIENT_OCCLUSION
20+
vec3 ambientOcclusionColorMap = ambientOcclusionColorMap_ * ambientInfos.y;
21+
#ifdef AMBIENTINGRAYSCALE
22+
ambientOcclusionColorMap = vec3(ambientOcclusionColorMap.r, ambientOcclusionColorMap.r, ambientOcclusionColorMap.r);
23+
#endif
24+
// ambientOcclusionColor = mix(ambientOcclusionColor, ambientOcclusionColorMap, ambientInfos.z);
25+
26+
#if DEBUGMODE > 0
27+
outParams.ambientOcclusionColorMap = ambientOcclusionColorMap;
28+
#endif
29+
#endif
30+
31+
outParams.ambientOcclusionColor = ambientOcclusionColor;
32+
33+
return outParams;
34+
}

packages/dev/core/src/Shaders/openpbr.fragment.fx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ precision highp float;
6363
#include<openpbrDielectricReflectance>
6464
#include<openpbrConductorReflectance>
6565

66-
// #include<openpbrBlockAmbientOcclusion>
66+
#include<openpbrBlockAmbientOcclusion>
6767
#include<openpbrIblFunctions>
6868
#include<openpbrGeometryInfo>
6969

packages/dev/core/src/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.fx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,38 +18,38 @@ var alpha: f32 = 1.0;
1818

1919
// Sample Base Layer properties from textures
2020
#ifdef BASE_WEIGHT
21-
var baseWeightFromTexture: vec4f = textureSample(baseWeightSampler, baseWeightSamplerSampler, uniforms.vBaseWeightUV + uvOffset);
21+
var baseWeightFromTexture: vec4f = textureSample(baseWeightSampler, baseWeightSamplerSampler, fragmentInputs.vBaseWeightUV + uvOffset);
2222
#endif
2323

2424
#ifdef BASE_COLOR
25-
var baseColorFromTexture: vec4f = textureSample(baseColorSampler, baseColorSamplerSampler, uniforms.vBaseColorUV + uvOffset);
25+
var baseColorFromTexture: vec4f = textureSample(baseColorSampler, baseColorSamplerSampler, fragmentInputs.vBaseColorUV + uvOffset);
2626
#endif
2727

2828
#ifdef METALLIC_ROUGHNESS
29-
var metallicRoughnessFromTexture: vec4f = textureSample(baseMetalRoughSampler, baseMetalRoughSamplerSampler, uniforms.vBaseMetalRoughUV + uvOffset);
29+
var metallicRoughnessFromTexture: vec4f = textureSample(baseMetalRoughSampler, baseMetalRoughSamplerSampler, fragmentInputs.vBaseMetalRoughUV + uvOffset);
3030
#endif
3131

3232
#ifdef BASE_DIFFUSE_ROUGHNESS
33-
var baseDiffuseRoughnessFromTexture: f32 = textureSample(baseDiffuseRoughnessSampler, baseDiffuseRoughnessSamplerSampler, uniforms.vBaseDiffuseRoughnessUV + uvOffset).r;
33+
var baseDiffuseRoughnessFromTexture: f32 = textureSample(baseDiffuseRoughnessSampler, baseDiffuseRoughnessSamplerSampler, fragmentInputs.vBaseDiffuseRoughnessUV + uvOffset).r;
3434
#endif
3535

3636
#ifdef GEOMETRY_OPACITY
37-
var opacityFromTexture: vec4f = textureSample(opacitySampler, opacitySamplerSampler, uniforms.vOpacityUV + uvOffset);
37+
var opacityFromTexture: vec4f = textureSample(opacitySampler, opacitySamplerSampler, fragmentInputs.vOpacityUV + uvOffset);
3838
#endif
3939

4040
#ifdef DECAL
41-
var decalFromTexture: vec4f = textureSample(decalSampler, decalSamplerSampler, uniforms.vDecalUV + uvOffset);
41+
var decalFromTexture: vec4f = textureSample(decalSampler, decalSamplerSampler, fragmentInputs.vDecalUV + uvOffset);
4242
#endif
4343

4444
#ifdef SPECULAR_COLOR
45-
var specularColorFromTexture: vec4f = textureSample(specularColorSampler, specularColorSamplerSampler, uniforms.vSpecularColorUV + uvOffset);
45+
var specularColorFromTexture: vec4f = textureSample(specularColorSampler, specularColorSamplerSampler, fragmentInputs.vSpecularColorUV + uvOffset);
4646
#ifdef SPECULAR_COLOR_GAMMA
4747
specularColorFromTexture = toLinearSpace(specularColorFromTexture.rgb);
4848
#endif
4949
#endif
5050

5151
#ifdef SPECULAR_WEIGHT
52-
var specularWeightFromTexture: vec4f = textureSample(specularWeightSampler, specularWeightSamplerSampler, uniforms.vSpecularWeightUV + uvOffset);
52+
var specularWeightFromTexture: vec4f = textureSample(specularWeightSampler, specularWeightSamplerSampler, fragmentInputs.vSpecularWeightUV + uvOffset);
5353
#endif
5454

5555
// Initalize base layer properties from uniforms
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
struct ambientOcclusionOutParams
2+
{
3+
ambientOcclusionColor: vec3f,
4+
#if DEBUGMODE > 0 && defined(AMBIENT_OCCLUSION)
5+
ambientOcclusionColorMap: vec3f
6+
#endif
7+
};
8+
9+
#define pbr_inline
10+
fn ambientOcclusionBlock(
11+
#ifdef AMBIENT_OCCLUSION
12+
ambientOcclusionColorMap_: vec3f,
13+
ambientInfos: vec2f
14+
#endif
15+
) -> ambientOcclusionOutParams
16+
{
17+
var outParams: ambientOcclusionOutParams;
18+
var ambientOcclusionColor: vec3f = vec3f(1., 1., 1.);
19+
20+
#ifdef AMBIENT_OCCLUSION
21+
var ambientOcclusionColorMap: vec3f = ambientOcclusionColorMap_ * ambientInfos.y;
22+
#ifdef AMBIENTINGRAYSCALE
23+
ambientOcclusionColorMap = vec3f(ambientOcclusionColorMap.r, ambientOcclusionColorMap.r, ambientOcclusionColorMap.r);
24+
#endif
25+
// ambientOcclusionColor = mix(ambientOcclusionColor, ambientOcclusionColorMap, ambientInfos.z);
26+
27+
#if DEBUGMODE > 0
28+
outParams.ambientOcclusionColorMap = ambientOcclusionColorMap;
29+
#endif
30+
#endif
31+
32+
outParams.ambientOcclusionColor = ambientOcclusionColor;
33+
34+
return outParams;
35+
}

packages/dev/core/src/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.fx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@ var coat_darkening: f32 = 1.0f;
1010

1111
// Sample Coat Layer properties from textures
1212
#ifdef COAT_WEIGHT
13-
var coatWeightFromTexture: vec4f = textureSample(coatWeightSampler, coatWeightSamplerSampler, uniforms.vCoatWeightUV + uvOffset);
13+
var coatWeightFromTexture: vec4f = textureSample(coatWeightSampler, coatWeightSamplerSampler, fragmentInputs.vCoatWeightUV + uvOffset);
1414
#endif
1515

1616
#ifdef COAT_COLOR
17-
var coatColorFromTexture: vec4f = textureSample(coatColorSampler, coatColorSamplerSampler, uniforms.vCoatColorUV + uvOffset);
17+
var coatColorFromTexture: vec4f = textureSample(coatColorSampler, coatColorSamplerSampler, fragmentInputs.vCoatColorUV + uvOffset);
1818
#endif
1919

2020
#ifdef COAT_ROUGHNESS
21-
var coatRoughnessFromTexture: vec4f = textureSample(coatRoughnessSampler, coatRoughnessSamplerSampler, uniforms.vCoatRoughnessUV + uvOffset);
21+
var coatRoughnessFromTexture: vec4f = textureSample(coatRoughnessSampler, coatRoughnessSamplerSampler, fragmentInputs.vCoatRoughnessUV + uvOffset);
2222
#endif
2323

2424
#ifdef COAT_ROUGHNESS_ANISOTROPY
25-
var coatRoughnessAnisotropyFromTexture: f32 = textureSample(coatRoughnessAnisotropySampler, coatRoughnessAnisotropySamplerSampler, uniforms.vCoatRoughnessAnisotropyUV + uvOffset).r;
25+
var coatRoughnessAnisotropyFromTexture: f32 = textureSample(coatRoughnessAnisotropySampler, coatRoughnessAnisotropySamplerSampler, fragmentInputs.vCoatRoughnessAnisotropyUV + uvOffset).r;
2626
#endif
2727

2828
#ifdef COAT_DARKENING
29-
var coatDarkeningFromTexture: vec4f = textureSample(coatDarkeningSampler, coatDarkeningSamplerSampler, uniforms.vCoatDarkeningUV + uvOffset);
29+
var coatDarkeningFromTexture: vec4f = textureSample(coatDarkeningSampler, coatDarkeningSamplerSampler, fragmentInputs.vCoatDarkeningUV + uvOffset);
3030
#endif
3131

3232
// Initalize coat layer properties from uniforms

packages/dev/core/src/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.fx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_SAMPLERNAME_,coatColor)
99
#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_SAMPLERNAME_,coatRoughness)
1010
#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_SAMPLERNAME_,geometryOpacity)
11-
#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_SAMPLERNAME_,geometryNormal)
1211
#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_SAMPLERNAME_,emissionColor)
1312

1413
#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_SAMPLERNAME_,ambientOcclusion)

packages/dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.fx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_SAMPLERNAME_,geometryNormal)
33
#endif
44

5+
#if defined(GEOMETRY_COAT_NORMAL)
6+
#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_SAMPLERNAME_,geometryCoatNormal)
7+
#endif
8+
59
#if defined(DETAIL)
610
#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
711
#endif

packages/dev/core/src/ShadersWGSL/openpbr.fragment.fx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
#include<openpbrDielectricReflectance>
4848
#include<openpbrConductorReflectance>
4949

50-
// #include<openpbrBlockAmbientOcclusion>
50+
#include<openpbrBlockAmbientOcclusion>
5151
#include<openpbrIblFunctions>
5252
#include<openpbrGeometryInfo>
5353

0 commit comments

Comments
 (0)