我在r68上,尝试查找创建矩形金字塔的示例,可以将THREE.MeshFaceMaterial()应用到其中,大多数示例似乎已经过时并在当前版本中引发错误。

我只需要能够

  • 为每张脸纹理
  • 旋转它,使矩形面位于-y位置

  • 提前致谢!

    最佳答案

    可接受的答案仅适用于底边相等的金字塔。如果您想要一个矩形脚的金字塔,可以这样:

    var geometry = new THREE.Geometry();
    
    geometry.vertices = [
        new THREE.Vector3( 0, 0, 0 ),
        new THREE.Vector3( 0, 1, 0 ),
        new THREE.Vector3( 1, 1, 0 ),
        new THREE.Vector3( 1, 0, 0 ),
        new THREE.Vector3( 0.5, 0.5, 1 )
    ];
    
    geometry.faces = [
        new THREE.Face3( 0, 1, 2 ),
        new THREE.Face3( 0, 2, 3 ),
        new THREE.Face3( 1, 0, 4 ),
        new THREE.Face3( 2, 1, 4 ),
        new THREE.Face3( 3, 2, 4 ),
        new THREE.Face3( 0, 3, 4 )
    ];
    

    现在,您有了一个金字塔几何体,其正方形基础为1 x 1,高度为1。通过应用缩放矩阵,我们可以使此金字塔成为任何所需的width / length / height组合:
    var transformation = new THREE.Matrix4().makeScale( width, length, height );
    
    geometry.applyMatrix( transformation );
    

    这也可以包装在自定义的Pyramid几何类中,因此您可以像这样使用它:
    new THREE.Pyramid( width, length, height );
    

    关于javascript - 如何在three.js r68中制作矩形金字塔?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26418591/

    10-12 15:02
    查看更多