第一个示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>three.js</title>
  8. <style>
  9. body {
  10. margin: 0;
  11. overflow: hidden;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="sence"></div>
  17. <script src="./three.min.js"></script>
  18. <script type="module">
  19. /**
  20. * 创建场景
  21. */
  22. const scene = new THREE.Scene(); // 场景对象
  23. /**
  24. * 创建网格模型
  25. */
  26. const gemometry = new THREE.BoxGeometry(100, 100, 100); // 几何对象
  27. const material = new THREE.MeshLambertMaterial({
  28. color: 0x000ff
  29. }); // 材质
  30. const mesh = new THREE.Mesh(gemometry, material); // 网格对象
  31. scene.add(mesh);
  32. /**
  33. * 光源设置
  34. */
  35. const point = new THREE.PointLight(0xffffff); // 点光源
  36. point.position.set(400, 200, 300);
  37. scene.add(point);
  38. const ambient = new THREE.AmbientLight(0x444444); // 环境光
  39. scene.add(ambient);
  40. /**
  41. * 相机设置
  42. */
  43. let width = window.innerWidth;
  44. let height = window.innerHeight;
  45. let k = width / height; // 窗口宽高比
  46. let s = 200; // 二维场景显示范围控制系数,系数越大,显示的范围越大
  47. /**
  48. * 创建相机
  49. */
  50. const camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
  51. camera.position.set(200, 300, 200);
  52. camera.lookAt(scene.position); // 设置相机方向(指向场景对象)
  53. /**
  54. * 场景渲染器对象
  55. */
  56. const renderer = new THREE.WebGLRenderer();
  57. renderer.setSize(width, height);
  58. document.body.appendChild(renderer.domElement);
  59. renderer.render(scene, camera); // 执行渲染操作,指定场景、相机作为参数
  60. </script>
  61. </body>
  62. </html>

渲染结果如下图
image.png

Three.js 程序结构

image.png

参考

【1】three.js官方中文文档