需要从一个角度渲染 6 张 800x640 的图像,并基于这些图像创建一个 800x640 的新图像,一种鱼眼视图。目前,应用程序通过调用此 RenderTarget2D.GetData 方法绘制每个图像并读取颜色,并根据每个像素位置计算最终图像的新位置。它工作正常。
但是由于调用 RenderTarget2D.GetData 会降低性能,我尝试在着色器中声明一个 800x640 数组,然后连续渲染 6 个图像。然后在像素着色器中找到新的鱼眼视图图像的新坐标。
float4 PSTooBasic(VertexPSInput pin) : COLOR
{
int xCoord = GetWaldXCoordinate(pin.PositionWS.x);
int yCoord = GetWaldYCoordinate(pin.PositionWS.y);
WaldPixs[xCoord][yCoord] = 1;
return BlackColor;
}
但是这个数组声明行:uniform int WaldPixs[800][640];
给出这个编译错误:错误 X3059: 'WaldPixs': array dimension must be between 1 and 65536
有什么建议或解决方法吗?
谢谢,