【发布时间】:2023-04-30 20:13:01
【问题描述】:
在顶点着色器novadays中使用纹理的方法是什么?
我将旧的 xna 示例移植到 monogame,但无法找到某个技巧的实际解决方案。
sampler2D 在 VertexShaderFunction 中不起作用 超出注册索引,目标不支持采样器
据我了解,作者使用纹理颜色来设置高度或方向
~
texture FlowMapTexture : register(t0);
sampler2D FlowMapSampler : register(s0) = sampler_state
{
Texture = <FlowMapTexture>;
};
~
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
~
float2 texCoord = (worldPosition.xz + WorldToFlowMapTexCoord.xy) * WorldToFlowMapTexCoord.zw;
float2 flowVector = tex2Dlod(FlowMapSampler, float4(texCoord, 0, 0)).rg;
worldPosition.xz -= flowVector * SquareSize * extendAmount;
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
output.Color = input.Color;
return output;
}
【问题讨论】: