在c中的3d渲染:显示故障

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c中的3d渲染:显示故障相关的知识,希望对你有一定的参考价值。

我试图在不使用openGL的情况下实现简单的3D渲染程序。我创建了矩阵结构,用于制作变换矩阵,视图矩阵和投影矩阵。然后,在应用viewProjectionMatrix以获得网格的屏幕坐标之前,将该矩阵的乘积除以网格顶点的第四分量(w = 1)以剪辑空间。

如果相机远离网格,它看起来很好,但当我移近它时,我得到这样的东西:

看起来每个不在视图空间中的顶点都显示在屏幕顶部。你知道是什么原因引起的吗?

非常感谢你 !

答案

您可能忘记实施近平面裁剪,这省略了在相机前方的小预定距离处穿过平面的任何几何形状。这是为了阻止它们穿过透视奇点,这是摄像机的位置。穿过该奇点的任何几何形状将被透视投影反转。

(p.s.常用的剪切算法是Sutherland-Hodgman

以上是关于在c中的3d渲染:显示故障的主要内容,如果未能解决你的问题,请参考以下文章

怎么让unity3D中的模型渲染更逼真

Qt 5.10 中的 QPainter::drawImage() 故障

使用 SolvePnP 在 openCV 中的旋转和平移顺序问题

Unity3D:画布上的 Sprite 渲染器与图像渲染器问题

UE4 3D物体的隐藏

如何在 Safari 中的 WebKit 3D 转换后强制重新渲染