当前位置:实例文章 » HTML/CSS实例» [文章]three.js学习2(基础)

three.js学习2(基础)

发布人:shili8 发布时间:2025-02-08 00:11 阅读次数:0

**三维图形学库Three.js学习笔记之二**

在上一篇文章中,我们已经简单地了解了Three.js的基本概念和API。今天我们将继续深入探讨Three.js的基础知识,包括场景、相机、物体、光源等。

### 场景(Scene)

场景是Three.js中的一个核心概念,它代表了整个图形世界。在Three.js中,每个场景都有自己的属性和方法。下面是一个简单的例子:

javascript// 创建一个新的场景var scene = new THREE.Scene();

// 添加一些基本的属性scene.background = new THREE.Color(0x000000); // 背景颜色


### 相机(Camera)

相机是Three.js中用来观察场景的工具。它可以移动、旋转和缩放,以便观察不同的角度。在Three.js中,相机有以下几种类型:

* **PerspectiveCamera**:透视相机,它模拟人的视觉效果。
* **OrthographicCamera**:正交相机,它将场景渲染为平面图像。

下面是一个简单的例子:

javascript// 创建一个新的透视相机var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight,0.1,1000);

// 将相机移动到指定位置camera.position.set(0,5,10);


### 物体(Object)

物体是Three.js中最基本的图形元素。它可以是简单的几何体,也可以是复杂的模型。在Three.js中,物体有以下几种类型:

* **BoxGeometry**:盒子几何体。
* **SphereGeometry**:球体几何体。
* **PlaneGeometry**:平面几何体。

下面是一个简单的例子:

javascript// 创建一个新的盒子几何体var geometry = new THREE.BoxGeometry(1,1,1);

// 创建一个新的材质var material = new THREE.MeshBasicMaterial({ color:0xff0000 });

// 创建一个新的盒子物体var box = new THREE.Mesh(geometry, material);


### 光源(Light)

光源是Three.js中用来照亮场景的工具。它可以移动、旋转和缩放,以便照亮不同的区域。在Three.js中,光源有以下几种类型:

* **AmbientLight**:环境光。
* **DirectionalLight**:方向光。
* **PointLight**:点光源。

下面是一个简单的例子:

javascript// 创建一个新的环境光var ambient = new THREE.AmbientLight(0xffffff,1);

// 将环境光添加到场景中scene.add(ambient);


### 渲染(Render)

渲染是Three.js中用来绘制图形的过程。在Three.js中,渲染有以下几种类型:

* **CanvasRenderer**:canvas渲染器。
* **WebGLRenderer**:webgl渲染器。

下面是一个简单的例子:

javascript// 创建一个新的webgl渲染器var renderer = new THREE.WebGLRenderer({
 canvas: document.getElementById('canvas'),
 antialias: true,
});

// 将渲染器添加到场景中renderer.setSize(window.innerWidth, window.innerHeight);


### 动画(Animation)

动画是Three.js中用来控制物体运动的工具。在Three.js中,动画有以下几种类型:

* **Tween**:缓动。
* **Timeline**:时间线。

下面是一个简单的例子:

javascript// 创建一个新的缓动var tween = new TWEEN.Tween(camera.position)
 .to({ x:0, y:5, z:10 },1000)
 .easing(TWEEN.Easing.Linear.None)
 .start();


### 总结在本文中,我们已经简单地了解了Three.js的基础知识,包括场景、相机、物体、光源等。我们还学习了如何使用这些基本概念来创建一个简单的图形世界。在下一篇文章中,我们将继续深入探讨Three.js的高级知识,包括动画、物理和交互等。

### 参考* [Three.js官方文档]( />* [Three.js中文文档]( />
###代码示例
javascript// 创建一个新的场景var scene = new THREE.Scene();

// 添加一些基本的属性scene.background = new THREE.Color(0x000000); // 背景颜色// 创建一个新的透视相机var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight,0.1,1000);

// 将相机移动到指定位置camera.position.set(0,5,10);

// 创建一个新的盒子几何体var geometry = new THREE.BoxGeometry(1,1,1);

// 创建一个新的材质var material = new THREE.MeshBasicMaterial({ color:0xff0000 });

// 创建一个新的盒子物体var box = new THREE.Mesh(geometry, material);

// 将盒子添加到场景中scene.add(box);

// 创建一个新的环境光var ambient = new THREE.AmbientLight(0xffffff,1);

// 将环境光添加到场景中scene.add(ambient);

// 创建一个新的webgl渲染器var renderer = new THREE.WebGLRenderer({
 canvas: document.getElementById('canvas'),
 antialias: true,
});

// 将渲染器添加到场景中renderer.setSize(window.innerWidth, window.innerHeight);

// 将场景、相机和渲染器添加到页面中document.body.appendChild(renderer.domElement);


###代码注释* `var scene = new THREE.Scene();`:创建一个新的场景。
* `scene.background = new THREE.Color(0x000000);`:设置背景颜色为黑色。
* `var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight,0.1,1000);`:创建一个新的透视相机。
* `camera.position.set(0,5,10);`:将相机移动到指定位置。
* `var geometry = new THREE.BoxGeometry(1,1,1);`:创建一个新的盒子几何体。
* `var material = new THREE.MeshBasicMaterial({ color:0xff0000 });`:创建一个新的材质。
* `var box = new THREE.Mesh(geometry, material);`:创建一个新的盒子物体。
* `scene.add(box);`:将盒子添加到场景中。
* `var ambient = new THREE.AmbientLight(0xffffff,1);`:创建一个新的环境光。
* `scene.add(ambient);`:将环境光添加到场景中。
* `var renderer = new THREE.WebGLRenderer({ canvas: document.getElementById('canvas'), antialias: true });`:创建一个新的webgl渲染器。
* `renderer.setSize(window.innerWidth, window.innerHeight);`:设置渲染器大小。
* `document.body.appendChild(renderer.domElement);`:将场景、相机和渲染器添加到页面中。

其他信息

其他资源

Top