1

我正在做光线追踪,我有屏幕。我想在世界坐标中定义它

MaxPCx = 1;
MaxPCy = 1 / AspectRatio;

x = linspace(0,MaxPCy,Height_proj);
y = linspace(0,MaxPCx,Width_proj);

[CoordsY,CoordsX] = ndgrid(x,y);

% Convert Projector Coordinates To Screen Coordinates
ScreenXCoordinates = (CoordsX .* MaxPCxInv).* SizeX_scr + Screen_OffsetX;
ScreenYCoordinates = (1 - CoordsY .* MaxPCyInv ).* SizeY_scr + Screen_OffsetY;
ScreenZCoordinates = f(x,y) % this function is the same used in my software that I used exactly the same

所以我现在的问题是我从软件中获得了 ScreenXCoordinates ,ScreenYCoordinates 和 ScreenZCoordinates 并且我正在将它们与我的进行比较,所以 x 和 y 坐标的差异可以按 10^-9 的顺序排列,但 z 方向的差异在10 ^ -4的顺序所以有人可以给我建议吗?

然后我应用旋转矩阵和平移向量来转换为世界坐标

投影仪坐标在开始时(CoordsX 和 CoordsY)的生成是否正确?

提前谢谢了

4

1 回答 1

1

我想说,如果 ScreenX/YCoordinates 与它们一样匹配,那么您的 x,y 输入参数必须是正确的。这只会在实现之间留下可能的不匹配f(x,y)。即使它们看起来相同,也有可能存在数值差异。精度匹配吗?其他软件可以使用整数与浮点数学吗?

于 2013-10-22T13:34:42.303 回答