three.js

JavaScript 3D library
The aim of the project is to create an easy to use, lightweight, cross-browser, general purpose 3D library. The current builds only include a WebGL renderer but WebGPU (experimental), SVG and CSS3D renderers are also available in the examples.
Examples —
Documentation —
Wiki —
Migrating —
Questions —
Forum —
Slack —
Discord
Usage
This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a WebGL
renderer for the scene and camera, and it adds that viewport to the document.body
element. Finally, it animates the cube within the scene for the camera.
import * as THREE from './js/three.module.js';
let camera, scene, renderer;
let geometry, material, mesh;
init();
function init() {
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
camera.position.z = 1;
scene = new THREE.Scene();
geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setAnimationLoop( animation );
document.body.appendChild( renderer.domElement );
}
function animation( time ) {
mesh.rotation.x = time / 2000;
mesh.rotation.y = time / 1000;
renderer.render( scene, camera );
}
If everything went well, you should see this.
Cloning this repository
Cloning the repo with all its history results in a ~2 GB download. If you don't need the whole history you can use the depth
parameter to significantly reduce download size.
git clone --depth=1 https://github.com/mrdoob/three.js.git
Change log
Releases
森克斯版本修改
https://threejs.org/examples/#webgl_geometry_dynamic
[着色器编辑器]:
[动画编辑器]:
1.1 资源异步加载
1.2 后台操作指示器
1.3 场景网格数据集中压缩处理(保留节点层级和节点名称)
glb压缩:
参考网址:https://www.cnblogs.com/o2team/archive/2021/08/12/15134071.html
KHR_draco_mesh_compression dro压缩:
gltf-pipeline -i male.glb -o male-processed.glb -d
KHR_mesh_quantization压缩:
gltfpack -i male.glb -o male-processed.glb
gltfpack -i male.glb -o male-processed.glb -cc
document.getElementById('3B8940D5-7FD1-4233-A16C-36F7B3BE419E-0-').object.changeColor()
场景图片处理,在texture的toJson中修改

为:
