Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 切换视图和投影矩阵后DirectX网格未正确显示_C#_Directx_Zbuffer_Culling - Fatal编程技术网

C# 切换视图和投影矩阵后DirectX网格未正确显示

C# 切换视图和投影矩阵后DirectX网格未正确显示,c#,directx,zbuffer,culling,C#,Directx,Zbuffer,Culling,在我的程序中,网格被正确显示,但当我将device.transform.view和device.transform.projection矩阵从左手系统更改为右手系统时,网格不再正确显示,即背面被照亮,正面透明! 有人知道还有什么需要改变才能有一个合适的显示吗 原始矩阵: device.Transform.View = Matrix.LookAtLH(vFrom, vAt, vUp); device.Transform.Projection = Matrix.PerspectiveFovLH((f

在我的程序中,网格被正确显示,但当我将device.transform.view和device.transform.projection矩阵从左手系统更改为右手系统时,网格不再正确显示,即背面被照亮,正面透明! 有人知道还有什么需要改变才能有一个合适的显示吗

原始矩阵:

device.Transform.View = Matrix.LookAtLH(vFrom, vAt, vUp);
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, fAspect, 0f, 100f);
修改:

device.Transform.View = Matrix.LookAtRH(vFrom, vAt, vUp);
device.Transform.Projection = Matrix.PerspectiveFovRH((float)Math.PI / 4, fAspect, 0f, 100f);

我希望这两个矩阵都会失败,因为你把近平面设为0。它应该是一些小的ε,比如0.0001f

要记住的另一件事是,通过交换系统的惯用手,你很可能会反转tris的缠绕顺序

需要将消隐渲染状态设置为顺时针,而不是逆时针


我希望这两个矩阵都会失败,因为你把近平面设为0。它应该是一些小的ε,比如0.0001f

要记住的另一件事是,通过交换系统的惯用手,你很可能会反转tris的缠绕顺序

需要将消隐渲染状态设置为顺时针,而不是逆时针


如果你点击我帖子左侧的勾号,那么你接受我的帖子。如果你认为这是有用的一个向上投票(假设你还没有这样做)将是很好的:如果你点击我的帖子左边的勾号,那么你接受我的帖子。如果你认为它是有用的,那么向上投票(假设你还没有这样做)也会很好:D
dxDevice.SetRenderState( RenderState.CullMode, Cull.Clockwise );