X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali-scene3d%2Finternal%2Fgraphics%2Fshaders%2Fdefault-physically-based-shader.frag;h=fcbcd0b911a114dc6697ba09521c335164ef234f;hb=4fb5c0c0f9f02319b3cff19338a61bfb098fbd8e;hp=bca3ba06688fb29a32ccfd0e1a9b17876e7c28b8;hpb=3e372d7559da054f390268620e3736b3bdf4ad39;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag index bca3ba0..fcbcd0b 100644 --- a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag +++ b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag @@ -23,7 +23,6 @@ precision highp float; precision mediump float; #endif -#ifdef THREE_TEX #ifdef GLTF_CHANNELS #define METALLIC b #define ROUGHNESS g @@ -31,7 +30,6 @@ precision mediump float; #define METALLIC r #define ROUGHNESS a #endif //GLTF_CHANNELS -#endif //THREE_TEX uniform lowp vec4 uColor; // Color from SceneGraph uniform lowp vec4 uColorFactor; // Color from material @@ -60,10 +58,10 @@ uniform sampler2D sOcclusion; uniform float uOcclusionStrength; #endif -#ifdef EMISSIVE +#ifdef EMISSIVE_TEXTURE uniform sampler2D sEmissive; -uniform vec3 uEmissiveFactor; #endif +uniform vec3 uEmissiveFactor; uniform float uSpecularFactor; uniform vec3 uSpecularColorFactor; @@ -87,9 +85,11 @@ uniform lowp float uMask; uniform lowp float uAlphaThreshold; // TODO: Multiple texture coordinate will be supported. -in lowp vec2 vUV; +in mediump vec2 vUV; in lowp mat3 vTBN; +#ifdef COLOR_ATTRIBUTE in lowp vec4 vColor; +#endif in highp vec3 vPositionToCamera; out vec4 FragColor; @@ -119,7 +119,11 @@ void main() lowp vec4 baseColor = texture(sAlbedoAlpha, vUV); baseColor = vec4(linear(baseColor.rgb), baseColor.w) * uColorFactor; #else // BASECOLOR_TEX +#ifdef COLOR_ATTRIBUTE lowp vec4 baseColor = vColor * uColorFactor; +#else // COLOR_ATTRIBUTE + lowp vec4 baseColor = uColorFactor; +#endif // COLOR_ATTRIBUTE #endif // BASECOLOR_TEX #ifdef METALLIC_ROUGHNESS_TEX @@ -134,7 +138,11 @@ void main() #endif // NORMAL_TEX #else // THREE_TEX vec4 albedoMetal = texture(sAlbedoMetal, vUV); +#ifdef COLOR_ATTRIBUTE lowp vec4 baseColor = vec4(linear(albedoMetal.rgb), 1.0) * vColor * uColorFactor; +#else // COLOR_ATTRIBUTE + lowp vec4 baseColor = vec4(linear(albedoMetal.rgb), 1.0) * uColorFactor; +#endif // COLOR_ATTRIBUTE metallic = albedoMetal.METALLIC * metallic; @@ -205,10 +213,12 @@ void main() color = mix(color, color * ao, uOcclusionStrength); #endif // OCCLUSION -#ifdef EMISSIVE +#ifdef EMISSIVE_TEXTURE lowp vec3 emissive = linear(texture(sEmissive, vUV).rgb) * uEmissiveFactor; +#else + lowp vec3 emissive = uEmissiveFactor; +#endif // EMISSIVE_TEXTURE color += emissive; -#endif // EMISSIVE FragColor = vec4(pow(color, vec3(1.0 / 2.2)), baseColor.a) * uColor; }