将世界坐标转化到屏幕坐标

Posted gameDesigner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将世界坐标转化到屏幕坐标相关的知识,希望对你有一定的参考价值。

要将世界坐标转化为屏幕坐标,在UNITY中提供一个内置函数:

Camera.main.WorldToScreenPoint( Vector3 Pos)

转化出的结果是一个Vector3变量,这里主要说一下 这个变量的z值

转换结果z值是根据 被转换点与主摄像机的世界空间位置来决定的。

比如 点A = (1,1,0)

主摄像机 C = (1,1,10)

那么转换后的点的 z = 10-0 =10

也就是说,如果z值为负,那么该点就在摄像机的前面,超出了摄像机可以显示的范围

而如果z值为正,也可能超出范围,这里需要获得摄像机的可视范围,然后再与z值比较。

如果可视范围小于 z值,那么该点也在可视范围以外。

以上是关于将世界坐标转化到屏幕坐标的主要内容,如果未能解决你的问题,请参考以下文章

如何将 2D 世界转换为屏幕坐标 OpenGL

将窗口坐标转换为屏幕坐标??

将图像从屏幕坐标转换为世界坐标

使用OSG显示点云时,如何正确将空白处屏幕坐标转为最接近点云的世界坐标

屏幕坐标系和世界坐标系

OpenGL下坐标系统解析