在three.js中无限平面网格正方形

5

我希望了解一种有效的方法来实例化一个无限大(或有效无限大)的平面,由交叉排列成正方形的线条组成。

three.js有一个线条对象,我应该只是实例化大量的这些对象吗?或者实例化一个平面对象,并应用某种重复材质?也许还有其他更有效的方法?

谢谢

2个回答

13

这里是另一种方法:

var grid = new THREE.GridHelper( 200, 10 );
grid.setColors( 0xffffff, 0xffffff );
scene.add( grid );

您可以添加雾来使网格在地平线处与背景融为一体。

scene.fog = new THREE.FogExp2( 0x000000, 0.0128 );
renderer.setClearColor( scene.fog.color, 1 );

它应该看起来相当不错。

three.js r.71


6
这段代码将生成一片交错线条的半无限平面:
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3( - 500, 0, 0 ) );
geometry.vertices.push(new THREE.Vector3( 500, 0, 0 ) );

linesMaterial = new THREE.LineBasicMaterial( { color: 0x787878, opacity: .2, linewidth: .1 } );

for ( var i = 0; i <= 20; i ++ ) {

    var line = new THREE.Line( geometry, linesMaterial );
    line.position.z = ( i * 50 ) - 500;
    scene.add( line );

    var line = new THREE.Line( geometry, linesMaterial );
    line.position.x = ( i * 50 ) - 500;
    line.rotation.y = 90 * Math.PI / 180;
    scene.add( line );
}

我在r121中遇到了一个错误,提示“不支持无面几何”。 - Samiullah Khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接