xna - 在顶点着色器novadays中使用纹理的方法是什么?
问题描述
在顶点着色器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;
}
解决方案
我自己找的//
我使用 Shader Model 4,但具有 9_1 级功能集,该功能集旨在在不支持“真正”功能级别 4.0 的旧卡或嵌入式设备(主要是手机)上使用 Direct3D11 API。
因此,即使您可以使用 Shader Model 4 语法,您的着色器仍然需要符合硬件功能(对于级别 9.1 来说是 ps2.0)。
在此处查看有关功能级别的 msdn 博客
我只是使用 (/4_0) 编译器选项。
推荐阅读
- typescript - i18next 和 i18next-node-fs-backend 显示键而不是字符串
- reactjs - 运行“npm run dev”实现 React 服务器端渲染时出错
- javascript - 如何使用 setState 更改输入值
- angular - Authenticate to Azure AD from Angular 9 Application
- python - Python throws 'certificate verify failed' Error while instantiating client session in OTRS
- sharepoint - 当用户单击 SharePoint 列表中的新建/编辑/显示时,如何重定向到自定义页面
- python - Spotify 身份验证流程 (Spotify API)
- java - How to Split String in "" after comma (,)
- python - Lxml is returning an empty list
- php - Can´t show message after form submit with header("location:")