javascript - 我不会制作线框框

标签 javascript three.js

我做了一个旋转盒子,它工作正常。然后我将 Material 代码更改为带有 linebasicmaterial 的线框 Material 。我阅读了 three.js 文档并遵循示例。但它没有显示任何内容。只是普通的白色。我已经更改了十六进制颜色,因为默认值是白色。

这是 js fiddle 示例 http://jsfiddle.net/wick3dsono/tXgcD/

  // revolutions per second
  var angularSpeed = 0.2; 
  var lastTime = 0;

  // this function is executed on each animation frame
  function animate(){
    // update
    var time = (new Date()).getTime();
    var timeDiff = time - lastTime;
    var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000;
    cube.rotation.y += angleChange;
    lastTime = time;

    // render
    renderer.render(scene, camera);

    // request new frame
    requestAnimationFrame(function(){
        animate();
    });
  }

  // renderer
  var renderer = new THREE.WebGLRenderer();
  renderer.setSize(window.innerWidth, window.innerHeight);
  document.body.appendChild(renderer.domElement);

  // camera
  var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
  camera.position.z = 500;

  // scene
  var scene = new THREE.Scene();

  // material
  var mat = new THREE.LineaBasicMaterial({color: 0x00aeef});

  // primary cube (little one)
  var cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200), mat);
  cube.overdraw = true;
  cube.rotation.x = Math.PI * 0.1;
  scene.add(cube);

  // secondary cube (big one)
  //var cube_big = new THREE.Mesh(new THREE.CubeGeometry(200,200,200), mat);
  //cube_big.overdraw = true;
  //cube_big.rotation.x = Math.PI * 0.1;
  //scene.add(cube_big);

  // add subtle ambient lighting
  var ambientLight = new THREE.AmbientLight(0xbbbbbb);
  scene.add(ambientLight);

  // directional lighting
  var directionalLight = new THREE.DirectionalLight(0xffffff);
  directionalLight.position.set(1, 1, 1).normalize();
  scene.add(directionalLight);

  // start animation
  animate();

无论如何,我也是 js fiddle 的新手,所以当我将代码放在 js fiddle 上时可能有错误。我只是从我的代码编辑器中复制粘贴,删除 html 和 head 标签,然后将脚本复制到 js 字段。在我的代码编辑器上,我只是将它们放在一个 html 文件中。

最佳答案

您可以只使用带有选项的 MeshBasicMaterial 或 MeshLambert Material :wireframe: true

关于javascript - 我不会制作线框框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17775581/

相关文章:

javascript - 仅在处理结果列表后才需要从 $http 查询返回数据

javascript - Three.js - 编辑平面几何图形

javascript - 将一个 div 类放在 three.js 场景之上以创建一个 gui

javascript - Three.js 保持相机在物体后面

javascript - history.back 后 Chrome 重新加载页面

javascript - 使用 javascript 更改 anchor 标记的 href

javascript - JavaScript 游戏的模型- View - Controller 模式 (Three.js)。好主意?

javascript - OrbitControls 不是构造函数

javascript - Node JS for 循环和数组推送

javascript - Angularjs-如何查看指令是否处于事件状态/在 dom 中?