ソースを参照

oops, algorithm was wrong

Asad M. Zaman 20 年 前
コミット
c9fc2e0ff0
1 ファイル変更12 行追加4 行削除
  1. 12 4
      pandatool/src/maya/mayaShaderColorDef.cxx

+ 12 - 4
pandatool/src/maya/mayaShaderColorDef.cxx

@@ -263,13 +263,21 @@ void MayaShaderColorDef::
 read_surface_color(MayaShader *shader, MObject color, bool trans) {
 read_surface_color(MayaShader *shader, MObject color, bool trans) {
   RGBColorf color_gain;
   RGBColorf color_gain;
   if (get_vec3f_attribute(color, "colorGain", color_gain)) {
   if (get_vec3f_attribute(color, "colorGain", color_gain)) {
-    _color_gain[0] *= (color_gain[0] > 1.0 ? 1.0 : color_gain[0]) < 0.0 ? 0.0 : color_gain[0];
-    _color_gain[1] *= (color_gain[1] > 1.0 ? 1.0 : color_gain[1]) < 0.0 ? 0.0 : color_gain[1];
-    _color_gain[2] *= (color_gain[2] > 1.0 ? 1.0 : color_gain[2]) < 0.0 ? 0.0 : color_gain[2];
+    color_gain[0] = color_gain[0] > 1.0 ? 1.0 : color_gain[0];
+    color_gain[0] = color_gain[0] < 0.0 ? 0.0 : color_gain[0];
+    _color_gain[0] *= color_gain[0];
+    color_gain[1] = color_gain[1] > 1.0 ? 1.0 : color_gain[1];
+    color_gain[1] = color_gain[1] < 0.0 ? 0.0 : color_gain[1];
+    _color_gain[1] *= color_gain[1];
+    color_gain[2] = color_gain[2] > 1.0 ? 1.0 : color_gain[2];
+    color_gain[3] = color_gain[2] < 0.0 ? 0.0 : color_gain[2];
+    _color_gain[2] *= color_gain[2];
   }
   }
   float alpha_gain;
   float alpha_gain;
   if (get_maya_attribute(color, "alphaGain", alpha_gain)) {
   if (get_maya_attribute(color, "alphaGain", alpha_gain)) {
-    _color_gain[3] *= (alpha_gain > 1.0 ? 1.0 : alpha_gain) < 0.0 ? 0.0 : alpha_gain;
+    alpha_gain = alpha_gain > 1.0 ? 1.0 : alpha_gain;
+    alpha_gain = alpha_gain < 0.0 ? 0.0 : alpha_gain;
+    _color_gain[3] *= alpha_gain;
   }
   }
   if (color.hasFn(MFn::kFileTexture)) {
   if (color.hasFn(MFn::kFileTexture)) {
     _color_object = new MObject(color);
     _color_object = new MObject(color);