You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.4 KiB
38 lines
1.4 KiB
using UnityEngine;
|
|
|
|
namespace UnityEditor.VFX.Operator
|
|
{
|
|
[VFXHelpURL("Operator-LoadTexture2D")]
|
|
[VFXInfo(name = "Load Texture2D", category = "Sampling")]
|
|
class LoadTexture2D : VFXOperator
|
|
{
|
|
override public string name { get { return "Load Texture2D"; } }
|
|
|
|
public class InputProperties
|
|
{
|
|
[Tooltip("Sets the texture to load from.")]
|
|
public Texture2D texture = null;
|
|
[Tooltip("Sets the x coordinate for the texel to load.")]
|
|
public uint x = 0;
|
|
[Tooltip("Sets the y coordinate for the texel to load.")]
|
|
public uint y = 0;
|
|
[Tooltip("Sets the mip level to load from.")]
|
|
public uint mipLevel = 0;
|
|
}
|
|
|
|
public class OutputProperties
|
|
{
|
|
[Tooltip("Outputs the sampled value from the texture at the specified coordinate.")]
|
|
public Vector4 s = Vector4.zero;
|
|
}
|
|
|
|
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
|
|
{
|
|
var location = new VFXExpressionCombine(
|
|
new VFXExpressionCastUintToFloat(inputExpression[1]),
|
|
new VFXExpressionCastUintToFloat(inputExpression[2]),
|
|
new VFXExpressionCastUintToFloat(inputExpression[3]));
|
|
return new[] { new VFXExpressionLoadTexture2D(inputExpression[0], location) };
|
|
}
|
|
}
|
|
}
|