Search code examples
javascriptthree.jsshapesjsfiddle

Remove widthSegments and heightSegments in PlaneGeometry threejs


I am trying to remove the widthSegments and heightSegments.

If i change this

var tergeo= new THREE.PlaneGeometry(100, 100, 1, 1);

to

var tergeo= new THREE.PlaneGeometry(100, 100, 0, 0);

It does not work

How can i remove widthSegments and heightSegments in this jsFiddle ?


Solution

  • Here is an option with an indexed buffer geometry:

    body{
      overflow: hidden;
      margin: 0;
    }
    <script type="module">
    import * as THREE from "https://cdn.skypack.dev/three@0.136.0";
    
    let scene = new THREE.Scene();
    let camera = new THREE.PerspectiveCamera(60, innerWidth / innerHeight, 1, 1000);
    camera.position.set(0, 0, 10);
    let renderer = new THREE.WebGLRenderer();
    renderer.setSize(innerWidth, innerHeight);
    document.body.appendChild(renderer.domElement);
    
    let g = QuadGeometry(THREE.MathUtils.randInt(5, 10), THREE.MathUtils.randInt(5, 10));
    let m = new THREE.LineBasicMaterial({color: "yellow"});
    let quad = new THREE.Line(g, m);
    scene.add(quad);
    
    function QuadGeometry(w, h){
      let pts = [
        [0.5, 0.5], 
        [-0.5, 0.5], 
        [-0.5, -0.5], 
        [0.5, -0.5]
      ].map(p => {return new THREE.Vector2(p[0], p[1])});
      let g = new THREE.BufferGeometry().setFromPoints(pts);
      g.setIndex([0, 1, 2, 3, 0]);
      g.scale(w, h, 1);
      
      return g;
    }
    
    renderer.setAnimationLoop(() => {
      renderer.render(scene, camera);
    });
    </script>