0

我创建了两个 RenderTarget2D:

currentWorldState = new RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Vector4, DepthFormat.None);
nextWorldState = new RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Vector4, DepthFormat.None);

我正在尝试在 GPU 上编写模拟代码。我的目标是能够在这些渲染目标之间传递 vector4 信息。我创建了一个着色器,它从第一个目标读取信息,并将其输出到下一个目标。我的问题是 float4 被转换为颜色信息并且丢失了很多精度。

这是我的像素着色器的标题:

float4 CreateActions(in float2 uv : TEXCOORD0) : COLOR

我可以以任何方式更改它以输出 float4 数据,将 COLOR 更改为其他任何内容都不会编译。

4

1 回答 1

0

您必须更改渲染目标格式,这决定了精度:

肖恩·赫格雷夫( Shawn Heargrave)写过,这里是SurfaceFormat 文档

于 2012-04-18T15:54:18.873 回答