您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
33 行
845 B
33 行
845 B
using System.Reflection;
|
|
|
|
namespace UnityEngine.MaterialGraph
|
|
{
|
|
[Title("Math/Vector/Reflect")]
|
|
class ReflectNode : CodeFunctionNode
|
|
{
|
|
public ReflectNode()
|
|
{
|
|
name = "Reflect";
|
|
}
|
|
|
|
protected override MethodInfo GetFunctionToConvert()
|
|
{
|
|
return GetType().GetMethod("Unity_Reflect", BindingFlags.Static | BindingFlags.NonPublic);
|
|
}
|
|
|
|
static string Unity_Reflect(
|
|
[Slot(0, Binding.None)] Vector3 normal,
|
|
[Slot(1, Binding.None)] Vector3 direction,
|
|
[Slot(2, Binding.None)] out Vector3 reflection)
|
|
{
|
|
reflection = Vector3.one;
|
|
|
|
return @"
|
|
{
|
|
{precision}3 vn = normalize(normal);
|
|
{precision}3 vd = normalize(direction);
|
|
reflection = 2 * dot(vn, vd) * vn - vd, 1.0;
|
|
}";
|
|
}
|
|
}
|
|
}
|