关于javascript:从零开始学习3D可视化之摄像机投影方式

26次阅读

共计 781 个字符,预计需要花费 2 分钟才能阅读完成。

咱们看到的 3D 画面其实是计算机把三维空间中的物体从世界坐标系通过各种简单的计算投影到屏幕坐标系,并显示在视口中。再说的简略一些,就相当于拿着手机拍了一张照片,放到了窗口外面显示进去。
生存中的物体都是三维的,然而人的眼睛只能看到侧面,不能看到被遮挡的反面,三维几何体在人眼睛中的成果就像一张相机拍摄的二维照片,你看到的是一个 2D 的投影图。空间几何体转化为一个二维图的过程就是投影,不同的投影形式意味着投影尺寸不同的算法。

摄像机次要有两种投影模式,一种是正交投影,一种是透视投影。上面对正交投影相机和透视投影进行简略介绍,对于初学者你有一个印象就能够。
所谓正交投影,对象绝对于摄像机的间隔对渲染的后果是没有影响的,也就是说物体不离摄像头多远,渲染进去的尺寸都是一样的。这种摄像机通常被用于二位游戏中。所以正交投影又叫平行投影。正交投影能够把场景中所有的物体通过平行光线投影到察看立体上。在正交投影中,不论物体离眼睛有多远,它都和原来的物体大小雷同。
所谓透视投影,这种摄像机的成果更贴近真实世界。也就是物体离摄像机越远,它们就会被渲染得越小。

在 ThingJS 中可通过 app.camera.porjectionType 设置摄像机的投影类型,参考脚本如下:

// 透视投影
app.camera.projectionType= THING.CameraProjectionType.Perspective;
// 正射投影
app.camera.projectionType= THING.CameraProjectionType.Orthographic;

如果是察看一个数字孪生可视化场景的外观成果,相机就位于场景的里面。如果是室内漫游预览,就把相机放在数字孪生可视化房间三维模型的外部。
—————————————————
数字孪生可视化:https://www.thingjs.com/

正文完
 0