我希望你们都做得很好,即使外面可能很热!
我目前正在与Three.js的CSS3DRenderer一起使用,以结合DOM元素和webGL内容。我设法完成了我想做的所有事情,但现在我对这一切的工作方式感到好奇。
这是源代码的链接:CSS3DRenderer
我了解嵌套div元素(具有透视图的渲染器,具有worldInaka逆视矩阵的相机和具有模型矩阵的对象)的原理是再现矩阵乘积:MVP,以便从3D坐标中获得div在画布上的位置。使用“透视” css属性应用于子元素和变换样式的preserve3D等。这就是我的理解方式。我希望我没错,请不要犹豫纠正我^^。
但是我的问题是关于相机投影矩阵的fov计算以及为什么要用这种方法。 第一行275:
var fov = camera.projectionMatrix.elements[ 5 ] * _heightHalf;
根据我从投影矩阵知道的这个元素,如下:
(2 *附近)/(顶部-底部)。它与fov有什么关系?为什么将它乘以渲染domElement的heightHalf?
另外294行:
var cameraCSSMatrix = camera.isOrthographicCamera ?
'scale(' + fov + ')' + getCameraCSSMatrix( camera.matrixWorldInverse ) :
'translateZ(' + fov + 'px)' + getCameraCSSMatrix( camera.matrixWorldInverse );
它使用先前计算的fov将比例尺应用到cameraElement(如果是正交的)或平移(如果是透视相机)。 我不明白为什么要那样做,我想理解。
有人可以阐明这个问题吗?= /?
请您阅读我的帖子:),并为我的英语不好对不起。