这一章主要讲的是屏幕坐标和世界坐标之间的数据转换,在THreeJS中还是非常实用的...
目录
一、什么是屏幕坐标系?
ThreeJS使用了canvas画布绘制图形,所以屏幕坐标系就是canvas中的坐标系。

屏幕坐标系的起始点在左上角(0,0)
二、什么是世界坐标系?
世界坐标系(三维坐标系)分为两种,左手坐标系和右手坐标系。
- 左手坐标系:BabylonJS
- 右手坐标系:ThreeJS(下图就是右手坐标系)

三、什么是标准化设备坐标系?
一旦你的顶点坐标已经在顶点着色器中处理过,它们就应该是标准化设备坐标(Normalized Device Coordinates,NDC)了,标准化设备坐标是一个x、y和z值在-1.0到1.0的一小段空间。任何落在范围外的坐标都会被丢弃/裁剪,不会显示在你的屏幕上。下面你会看到我们定义的在标准化设备坐标中的三角形(忽略z轴):

与通常的屏幕坐标不同,y轴正方向为向上,(0, 0)坐标是这个图像的中心,而不是左上角。最终你希望所有(变换

本文详细介绍了ThreeJS中屏幕坐标系、世界坐标系和标准化设备坐标系的概念,并阐述了它们之间的转换关系,包括屏幕坐标转世界坐标和世界坐标转屏幕坐标的步骤及公式,提供了具体的转换函数示例。
最低0.47元/天 解锁文章

864





