|
7 | 7 | #import "Common/ShaderLib/TriPlanarUtils.glsllib" |
8 | 8 |
|
9 | 9 | #ifdef ENABLE_PBRTerrainUtils_readPBRTerrainLayers |
| 10 | + |
| 11 | + #ifndef NORMAL_TYPE |
| 12 | + #define NORMAL_TYPE 1.0 |
| 13 | + #endif |
10 | 14 |
|
11 | 15 | #ifdef USE_TEXTURE_ARRAYS |
12 | 16 | //texture arrays: |
|
23 | 27 | uniform float m_AlbedoMap_$i_scale; |
24 | 28 | uniform vec4 m_EmissiveColor_$i; |
25 | 29 |
|
| 30 | + |
26 | 31 | #ifdef USE_TEXTURE_ARRAYS |
27 | 32 | uniform int m_AlbedoMap_$i; |
28 | 33 | #ifdef NORMALMAP_$i |
|
139 | 144 | // normal: |
140 | 145 | void PBRTerrainUtils_readNormalTexture(in sampler2D tex, in float scale, inout PBRTerrainTextureLayer layer){ |
141 | 146 | vec4 packedNormalParallaxVec = texture2D(tex, texCoord * scale); |
| 147 | + packedNormalParallaxVec.xyz *= normalize(vec3(2.0, NORMAL_TYPE * 2.0, 2.0) - vec3(1.0, NORMAL_TYPE * 1.0, 1.0)); |
142 | 148 | updateLayerFromPackedNormalParallaxVec(packedNormalParallaxVec, layer); |
143 | 149 | } |
144 | 150 | // metallicRoughnessAoEi: |
|
157 | 163 | // Triplanar normal: |
158 | 164 | void PBRTerrainUtils_readTriPlanarNormalTexture(in sampler2D tex, in float scale, inout PBRTerrainTextureLayer layer){ |
159 | 165 | vec4 packedNormalParallaxVec = getTriPlanarNormalBlend(lPosition, tex, scale); |
| 166 | + packedNormalParallaxVec.xyz *= normalize(vec3(2.0, NORMAL_TYPE * 2.0, 2.0) - vec3(1.0, NORMAL_TYPE * 1.0, 1.0)); |
160 | 167 | updateLayerFromPackedNormalParallaxVec(packedNormalParallaxVec, layer); |
161 | 168 | } |
162 | 169 | // TriPlanar metallicRoughnessAoEi: |
|
175 | 182 | // Normal TextureArray: |
176 | 183 | void PBRTerrainUtils_readNormalTexArray(in int indexInTexArray, in float scale, in sampler2DArray texArray, inout PBRTerrainTextureLayer layer){ |
177 | 184 | vec4 packedNormalParallaxVec = texture2DArray(texArray, vec3(texCoord * scale, indexInTexArray)); |
| 185 | + packedNormalParallaxVec.xyz *= normalize(vec3(2.0, NORMAL_TYPE * 2.0, 2.0) - vec3(1.0, NORMAL_TYPE * 1.0, 1.0)); |
178 | 186 | updateLayerFromPackedNormalParallaxVec(packedNormalParallaxVec, layer); |
179 | 187 | } |
180 | 188 | // metallicRoughnessAoEi TextureArray: |
|
193 | 201 | // Triplanar normal TextureArray: |
194 | 202 | void PBRTerrainUtils_readTriPlanarNormalTexArray(in int indexInTexArray, in float scale, in sampler2DArray texArray, inout PBRTerrainTextureLayer layer){ |
195 | 203 | vec4 packedNormalParallaxVec = getTriPlanarNormalBlendFromTexArray(lPosition, indexInTexArray, scale, texArray); |
| 204 | + packedNormalParallaxVec.xyz *= normalize(vec3(2.0, NORMAL_TYPE * 2.0, 2.0) - vec3(1.0, NORMAL_TYPE * 1.0, 1.0)); |
196 | 205 | updateLayerFromPackedNormalParallaxVec(packedNormalParallaxVec, layer); |
197 | 206 | } |
198 | 207 | // TriPlanar metallicRoughnessAoEi TextureArray: |
|
0 commit comments