Fix cross error in Material if input is not Float3
This commit is contained in:
@@ -200,16 +200,22 @@ void ShaderGenerator::ProcessGroupMath(Box* box, Node* node, Value& value)
|
|||||||
value = writeLocal(ValueType::Float, text, node);
|
value = writeLocal(ValueType::Float, text, node);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Cross, Max, Min, Pow
|
// Cross
|
||||||
case 18:
|
case 18:
|
||||||
|
{
|
||||||
|
Value v1 = tryGetValue(node->GetBox(0), 0, Value::Zero).Cast(VariantType::Float3);
|
||||||
|
Value v2 = tryGetValue(node->GetBox(1), 1, Value::Zero).Cast(VariantType::Float3);
|
||||||
|
const Char* function = _mathFunctions[node->TypeID - 7];
|
||||||
|
value = writeFunction2(node, v1, v2, function);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Max, Min, Pow
|
||||||
case 21:
|
case 21:
|
||||||
case 22:
|
case 22:
|
||||||
case 23:
|
case 23:
|
||||||
{
|
{
|
||||||
Box* b1 = node->GetBox(0);
|
Value v1 = tryGetValue(node->GetBox(0), 0, Value::Zero);
|
||||||
Box* b2 = node->GetBox(1);
|
Value v2 = tryGetValue(node->GetBox(1), 1, Value::Zero);
|
||||||
Value v1 = tryGetValue(b1, 0, Value::Zero);
|
|
||||||
Value v2 = tryGetValue(b2, 1, Value::Zero);
|
|
||||||
const Char* function = _mathFunctions[node->TypeID - 7];
|
const Char* function = _mathFunctions[node->TypeID - 7];
|
||||||
value = writeFunction2(node, v1, v2, function);
|
value = writeFunction2(node, v1, v2, function);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user