mirror of
https://github.com/overte-org/overte.git
synced 2025-08-11 10:23:30 +02:00
Fix glsl failed compilation on Mac
This commit is contained in:
parent
f2c4e04a5a
commit
67b9dd248d
1 changed files with 39 additions and 40 deletions
|
@ -15,49 +15,48 @@
|
||||||
|
|
||||||
uniform samplerCube skyboxMap;
|
uniform samplerCube skyboxMap;
|
||||||
|
|
||||||
vec4 evalSkyboxLight(vec3 direction, float lod) {
|
vec4 evalSkyboxLight(vec3 direction, float lod) {
|
||||||
|
|
||||||
<@if GPU_TRANSFORM_PROFILE == GPU_CORE@>
|
<@if GPU_TRANSFORM_PROFILE == GPU_CORE@>
|
||||||
vec4 skytexel = textureCubeLod(skyboxMap, direction, lod * textureQueryLevels(skyboxMap));
|
vec4 skytexel = textureCubeLod(skyboxMap, direction, lod * textureQueryLevels(skyboxMap));
|
||||||
<@else@>
|
<@else@>
|
||||||
const int NUM_LEVELS = 10;
|
vec4 skytexel = textureCube(skyboxMap, direction);
|
||||||
vec4 skytexel = textureCubeLod(skyboxMap, direction, lod * NUM_LEVELS);
|
<@endif@>
|
||||||
<@endif@>
|
return skytexel;
|
||||||
return skytexel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SphericalHarmonics {
|
struct SphericalHarmonics {
|
||||||
vec4 L00;
|
vec4 L00;
|
||||||
vec4 L1m1;
|
vec4 L1m1;
|
||||||
vec4 L10;
|
vec4 L10;
|
||||||
vec4 L11;
|
vec4 L11;
|
||||||
vec4 L2m2;
|
vec4 L2m2;
|
||||||
vec4 L2m1;
|
vec4 L2m1;
|
||||||
vec4 L20;
|
vec4 L20;
|
||||||
vec4 L21;
|
vec4 L21;
|
||||||
vec4 L22;
|
vec4 L22;
|
||||||
};
|
};
|
||||||
|
|
||||||
vec4 evalSphericalLight(SphericalHarmonics sh, vec3 direction ) {
|
vec4 evalSphericalLight(SphericalHarmonics sh, vec3 direction ) {
|
||||||
|
|
||||||
vec3 dir = direction.xzy; // we don;t understand why yet but we need to use z as vertical axis?
|
vec3 dir = direction.xzy; // we don;t understand why yet but we need to use z as vertical axis?
|
||||||
|
|
||||||
const float C1 = 0.429043;
|
const float C1 = 0.429043;
|
||||||
const float C2 = 0.511664;
|
const float C2 = 0.511664;
|
||||||
const float C3 = 0.743125;
|
const float C3 = 0.743125;
|
||||||
const float C4 = 0.886227;
|
const float C4 = 0.886227;
|
||||||
const float C5 = 0.247708;
|
const float C5 = 0.247708;
|
||||||
|
|
||||||
vec4 value = C1 * sh.L22 * (dir.x * dir.x - dir.y * dir.y) +
|
vec4 value = C1 * sh.L22 * (dir.x * dir.x - dir.y * dir.y) +
|
||||||
C3 * sh.L20 * dir.z * dir.z +
|
C3 * sh.L20 * dir.z * dir.z +
|
||||||
C4 * sh.L00 - C5 * sh.L20 +
|
C4 * sh.L00 - C5 * sh.L20 +
|
||||||
2.0 * C1 * ( sh.L2m2 * dir.x * dir.y +
|
2.0 * C1 * ( sh.L2m2 * dir.x * dir.y +
|
||||||
sh.L21 * dir.x * dir.z +
|
sh.L21 * dir.x * dir.z +
|
||||||
sh.L2m1 * dir.y * dir.z ) +
|
sh.L2m1 * dir.y * dir.z ) +
|
||||||
2.0 * C2 * ( sh.L11 * dir.x +
|
2.0 * C2 * ( sh.L11 * dir.x +
|
||||||
sh.L1m1 * dir.y +
|
sh.L1m1 * dir.y +
|
||||||
sh.L10 * dir.z ) ;
|
sh.L10 * dir.z ) ;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Need one SH
|
// Need one SH
|
||||||
|
|
Loading…
Reference in a new issue