Open GL中的透视投影

我正在尝试使用透视投影将3d点转换为2d点。 我是OpenGL的新手,可能还没有完全理解这是如何工作的。 我究竟如何计算近值和远值?

我想要考虑的顶点值在1,1,1和16,16,16之间。所以,如果我考虑一个大小为16 x 16的输出纹理,我的near和far分别是0和16吗?

这个转换是否需要在0和1之间缩放我的顶点值?

您通常不会计算这些值,您将它们设置为一个值,然后根据结果调整它们。 也有一些限制:

近平面需要大于0,但是如果太小,那么稍后会出现一些问题。 OpenGL具有更高的精度,靠近摄像机,在0.01个单位的近平面上,实际距离与基于深度缓冲区的距离之间的差距在1000个单位时约为100个单位,导致z战斗。 如果远机太高,那么同样的事情会发生。

你可能应该使用0.1的近平面距离和100或50的远平面距离。 几乎没有理由去这些下面。