0027256: Visualization, Path Tracing - add support of alpha-channel of texture
[occt.git] / src / Shaders / Shaders_RaytraceBase_fs.pxx
index 63c7309..2df5281 100644 (file)
@@ -972,11 +972,14 @@ static const char Shaders_RaytraceBase_fs[] =
   "      aTexCoord.st = vec2 (dot (aTrsfRow1, aTexCoord),\n"
   "                           dot (aTrsfRow2, aTexCoord));\n"
   "\n"
-  "      vec3 aTexColor = textureLod (\n"
-  "        sampler2D (uTextureSamplers[int(aDiffuse.w)]), aTexCoord.st, 0.f).rgb;\n"
+  "      vec4 aTexColor = textureLod (\n"
+  "        sampler2D (uTextureSamplers[int(aDiffuse.w)]), aTexCoord.st, 0.f);\n"
   "\n"
-  "      aDiffuse.rgb *= aTexColor;\n"
-  "      aAmbient.rgb *= aTexColor;\n"
+  "      aDiffuse.rgb *= aTexColor.rgb;\n"
+  "      aAmbient.rgb *= aTexColor.rgb;\n"
+  "\n"
+  "      // keep refractive index untouched (Z component)\n"
+  "      aOpacity.xy = vec2 (aTexColor.w * aOpacity.x, 1.0f - aTexColor.w * aOpacity.x);\n"
   "    }\n"
   "#endif\n"
   "\n"