Three.js-CheatSheet
Three.js CheatSheet | Three.js 入门与实践
基本概念
Camera
Camera,即选定的观察点,确定观察方向

接下来要确定三维投影方式,视景体是一个几何体,只有视景体内的物体才会被我们看到,视景体之外的物体将被裁剪掉。这是为了去除不必要的运算。

正交投影与透视投影的区别如上图所示,左图是正交投影,物体发出的光平行地投射到屏幕上,远近的方块都是一样大的;右图是透视投影,近大远小,符合我们平时看东西的感觉。

正交投影相机的视景体是一个长方体,

透视投影相机的视景体是个四棱台,它的构造函数是这样的:PerspectiveCamera( fov, aspect, near, far )
Objects

这是那只著名的斯坦福兔子。它在Mesh(geometry, material)
材质其实是物体表面除了形状以为所有可视属性的集合,例如色彩、纹理、光滑度、透明度、反射率、折射率、发光度。材质
简单使用
旋转正方体
实际的
function initRenderer() {
width = document.getElementById("three_canvas").clientWidth;
height = document.getElementById("three_canvas").clientHeight;
renderer = new THREE.WebGLRenderer({
canvas: document.getElementById("three_canvas")
});
renderer.setSize(width, height);
renderer.setClearColor(0xffffff, 1.0);
}
然后初始化
function initCamera() {
camera = new THREE.OrthographicCamera(
width / -2,
width / 2,
height / 2,
height / -2,
1,
1000
);
camera.position.x = 0;
camera.position.y = 0;
camera.position.z = 200;
camera.up.x = 0;
camera.up.y = 1;
camera.up.z = 0;
camera.lookAt({
x: 0,
y: 0,
z: 0
});
}
接下来则是初始化场景与场景中的物体:
function initScene() {
scene = new THREE.Scene();
}
function initObject() {
var geometry = new THREE.CubeGeometry(100, 100, 100);
object = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial());
scene.add(object);
}
最后是定期执行重渲染操作:
function render() {
requestAnimationFrame(render);
object.rotation.x += 0.05;
object.rotation.y += 0.05;
renderer.render(scene, camera);
}