您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
28 行
1.0 KiB
28 行
1.0 KiB
namespace UnityEditor.ShaderGraph
|
|
{
|
|
public enum ScreenSpaceType
|
|
{
|
|
Default,
|
|
Raw,
|
|
Center,
|
|
Tiled
|
|
};
|
|
|
|
public static class ScreenSpaceTypeExtensions
|
|
{
|
|
public static string ToValueAsVariable(this ScreenSpaceType screenSpaceType)
|
|
{
|
|
switch (screenSpaceType)
|
|
{
|
|
case ScreenSpaceType.Raw:
|
|
return string.Format("IN.{0}", ShaderGeneratorNames.ScreenPosition);
|
|
case ScreenSpaceType.Center:
|
|
return string.Format("float4(IN.{0}.xy / IN.{0}.w * 2 - 1, 0, 0)", ShaderGeneratorNames.ScreenPosition);
|
|
case ScreenSpaceType.Tiled:
|
|
return string.Format("frac(float4((IN.{0}.x / IN.{0}.w * 2 - 1) * _ScreenParams.x / _ScreenParams.y, IN.{0}.y / IN.{0}.w * 2 - 1, 0, 0))", ShaderGeneratorNames.ScreenPosition);
|
|
default:
|
|
return string.Format("float4(IN.{0}.xy / IN.{0}.w, 0, 0)", ShaderGeneratorNames.ScreenPosition);
|
|
}
|
|
}
|
|
}
|
|
}
|