added Ratangle Mask and FWidth
This commit is contained in:
@@ -519,6 +519,25 @@ void MaterialGenerator::ProcessGroupMaterial(Box* box, Node* node, Value& value)
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Ratangle Mask
|
||||
case 40:
|
||||
{
|
||||
const auto uv = tryGetValue(node->GetBox(0), getUVs).AsFloat2();
|
||||
const auto ratangle = tryGetValue(node->GetBox(1), node->Values[1]).AsFloat2();
|
||||
|
||||
auto d = writeLocal(ValueType::Float2, String::Format(TEXT("abs({0} * 2 - 1) - {1}"),uv.Value, ratangle.Value), node);
|
||||
auto fwidth = writeLocal(ValueType::Float , String::Format(TEXT("abs(ddx({0})) + abs(ddy({0}))"), d.Value), node);
|
||||
auto d2 = writeLocal(ValueType::Float , String::Format(TEXT("1 - {0} / {1}"), d.Value, fwidth.Value), node);
|
||||
value = writeLocal(ValueType::Float , String::Format(TEXT("saturate(min({0}.x, {0}.y))"), d2.Value), node);
|
||||
break;
|
||||
}
|
||||
// FWidth
|
||||
case 41:
|
||||
{
|
||||
const auto d = tryGetValue(node->GetBox(0), node->Values[0]).AsFloat();
|
||||
value = writeLocal(ValueType::Float, String::Format(TEXT("abs(ddx({0})) + abs(ddy({0}))"), d.Value), node);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user