Let we make PBR shader use our world color system.
TODO : We should change DepthWrite & AlphaBlend properties on coreside.
Since the model might has 32bit image as texture, we cannot make
DepthWrite as AUTO.
Change-Id: I4e3371d940cdebc45c43d2cb9acc88018c111bf2
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
#endif //GLTF_CHANNELS
#endif //THREE_TEX
-uniform lowp vec4 uColorFactor;
+uniform lowp vec4 uColor; // Color from SceneGraph
+uniform lowp vec4 uColorFactor; // Color from material
uniform lowp float uMetallicFactor;
uniform lowp float uRoughnessFactor;
uniform lowp float uDielectricSpecular;
color += emissive;
#endif // EMISSIVE
- FragColor = vec4(pow(color, vec3(1.0 / 2.2)), baseColor.a);
+ FragColor = vec4(pow(color, vec3(1.0 / 2.2)), baseColor.a) * uColor;
}
#version 300 es
precision mediump float;
+uniform lowp vec4 uColor;
flat in float vColor;
out vec4 FragColor;
void main()
{
vec3 rgb = vec3(fract(vColor), fract(vColor * 0.00390625), fract(vColor * 0.00390625 * 0.00390625));
- FragColor = vec4(rgb, 1.);
+ FragColor = vec4(rgb, 1.) * uColor;
}
\ No newline at end of file
RENDERER_SET_PROPERTY(DEPTH_WRITE_MODE, MaskMatch(rendererState, DEPTH_WRITE) ? DepthWriteMode::ON : DepthWriteMode::OFF);
RENDERER_SET_PROPERTY(DEPTH_TEST_MODE, MaskMatch(rendererState, DEPTH_TEST) ? DepthTestMode::ON : DepthTestMode::OFF);
- RENDERER_SET_PROPERTY(BLEND_MODE, MaskMatch(rendererState, ALPHA_BLEND) ? BlendMode::ON : BlendMode::OFF);
+ RENDERER_SET_PROPERTY(BLEND_MODE, MaskMatch(rendererState, ALPHA_BLEND) ? BlendMode::ON : BlendMode::AUTO);
const bool cullBack = MaskMatch(rendererState, CULL_BACK);
RENDERER_SET_PROPERTY(FACE_CULLING_MODE, MaskMatch(rendererState, CULL_FRONT) ? (cullBack ? FaceCullingMode::FRONT_AND_BACK : FaceCullingMode::FRONT) : (cullBack ? FaceCullingMode::BACK : FaceCullingMode::NONE));