vec4 aMaterialAmbient = gl_FrontFacing ? occFrontMaterial_Ambient() : occBackMaterial_Ambient();
vec4 aMaterialDiffuse = gl_FrontFacing ? occFrontMaterial_Diffuse() : occBackMaterial_Diffuse();
vec4 aMaterialSpecular = gl_FrontFacing ? occFrontMaterial_Specular() : occBackMaterial_Specular();
+ vec4 aMaterialEmission = gl_FrontFacing ? occFrontMaterial_Emission() : occBackMaterial_Emission();
return vec4 (Ambient, 1.0) * aMaterialAmbient
+ vec4 (Diffuse, 1.0) * aMaterialDiffuse
- + vec4 (Specular, 1.0) * aMaterialSpecular;
+ + vec4 (Specular, 1.0) * aMaterialSpecular
+ + aMaterialEmission;
}
//! Entry point to the Fragment Shader
uRaytraceMaterialTexture, MATERIAL_SPEC (aTriIndex.w));
vec4 aOpacity = texelFetch (
uRaytraceMaterialTexture, MATERIAL_TRAN (aTriIndex.w));
-
+ vec3 aEmission = texelFetch (
+ uRaytraceMaterialTexture, MATERIAL_EMIS (aTriIndex.w)).rgb;
+
vec3 aNormal = SmoothNormal (aHit.UV, aTriIndex);
vec4 aInvTransf0 = texelFetch (uSceneTransformTexture, anObjectId * 4 + 0);
aResult.xyz += aWeight.xyz * uGlobalAmbient.xyz *
aAmbient * aOpacity.x * max (abs (dot (aNormal, theRay.Direct)), 0.5f);
+
+ aResult.xyz += aWeight.xyz * aOpacity.x * aEmission;
if (aOpacity.x != 1.0f)
{
--- /dev/null
+puts "========="
+puts "OCC24872"
+puts "========="
+puts ""
+###########################################################
+# Support of emission color in Phong shader and ray-tracing
+###########################################################
+
+source $env(CASROOT)/samples/tcl/materials.tcl
+vshaderprog phong
--- /dev/null
+puts "========="
+puts "OCC24872"
+puts "========="
+puts ""
+###########################################################
+# Support of emission color in Phong shader and ray-tracing
+###########################################################
+
+source $env(CASROOT)/samples/tcl/materials.tcl
+vrenderparams -raytrace