有没有办法在DirectX 11中完全禁用视口转换,或者至少定义一个自定义的ScreenSpace-to-PixelSpace转换?
P.S:
我已经读过,在较旧的DX版本中,曾经有像
这样的东西pDevice->SetRenderState( D3DRS_VIEWPORTENABLE, FALSE );
但我找不到任何关于MSDN的信息。
背景:
我有一个物理相机,我知道这个相机的视图矩阵和投影矩阵,它从视图空间一直转换到像素空间。 现在,我想通过在DirectX中重复使用相同的矩阵来模拟相机图像。
答案 0 :(得分:-1)
没有像:
pDevice->SetRenderState( D3DRS_VIEWPORTENABLE, FALSE );
但是,视口变换可以表示为矩阵。我们称之为V. 将矩阵逆(V)附加到变换管道。 这将取消'视口变换。 e.g。
(model-to-world) * (world-to-view) * (projection) * inverse(V)