十分钟快速实战Three.js

2022-05-04 16:31:29 浏览数 (2)

前言

本文不会对Three.js几何体、材质、相机、模型、光源等概念详细讲解,会首先分成几个模块给大家快速演示一盒小案例。大家可以根据这几个模块快速了解Three.js的无限魅力。 学习

我们会使用Three.js简单做一个立方体,为了大家更能宏观的了解Three.js。我将会分解成代码段(模块)来进行开发。 模块如下:

代码语言:javascript复制
场景对象
网格模型
光源
相机
渲染器对象
渲染操作
  1. 创建html文件

首先,我们得创建一个html文件,这样才有地方开发。创建完成后,我们可以引入Three.js文件,今天,它可是主角。我是直接引入远程URL地址进行加载,你也可以去官网进行下载到本地引入。

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>three.js小案例</title>
    <!--引入three.js-->
    <script src="https://unpkg.com/three@0.122.0/build/three.js"></script>
  </head>

  <body>
 
  </body>
</html>
  1. 创建场景对象

借助Three.js引擎创建好一个虚拟的三维场景。

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>three.js小案例</title>
    <!--引入three.js-->
    <script src="https://unpkg.com/three@0.122.0/build/three.js"></script>
  </head>

  <body>
  <script>  
      /*
       * 创建场景对象Scene
       */
      var scene = new THREE.Scene();
    </script>
  </body>
</html>
  1. 创建网格模型

这行代码new THREE.BoxGeometry(200, 200, 200)的意思是创建了一个长200、宽200、高200的立方体对象。然后并通过代码new THREE.MeshLambertMaterial给立方体对象定义材质,这里可以理解成立方体的属性(包含了颜色、透明度等属性),这里暂时列举颜色属性。然后我们需要将立方体与属性联系起来,就用到网格模型,将两者作为构造函数Mesh的两个参数传进去,最后添加到场景里面。

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>three.js小案例</title>
    <!--引入three.js-->
    <script src="https://unpkg.com/three@0.122.0/build/three.js"></script>
  </head>

  <body>
  <script>  
      /*
       * 创建场景对象
       */
      var scene = new THREE.Scene();
      /*
       * 创建网格模型
       */
      var geometry = new THREE.BoxGeometry(200, 200, 200); //创建一个立方体几何对象Geometry
      var material = new THREE.MeshLambertMaterial({
        color: '#f4f4f4',
      }); //材质对象Material
      var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
      scene.add(mesh); //网格模型添加到场景中
    </script>
  </body>
</html>
  1. 设置光源

代码new THREE.PointLight(’#fff’)创建了一个点光源对象,参数#fff定义的是光照强度, 你可以尝试把参数更改为#666,你会看到立方体的表面颜色变暗,这很好理解,实际生活中灯光强度变低了,周围的景物自然暗淡。比如夜空中的照明弹就是一个点光源例子。代码THREE.AmbientLight(’#333’)创建了一个环境光对象,环境光的颜色会影响到整个场景,环境光没有特定的光源,是模拟漫反射的一种光源,因此不需要指定位置它能将灯光均匀地照射在场景中每个物体上面,一般情况下用来弱化阴影或者添加一些颜色到环境中,因此不能将环境光作为场景中的唯一光源。

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/118693237

0 人点赞