three.js 模型常用操作


 

 

 

場景

THREE.Scene();
 
THREE.AxesHelper(20);
 

相機:

THREE.PerspectiveCamera()// 透視相機
THREE.OrthographicCamera()// 正交相機

渲染器:

THREE.WebGLRenderer() // 3D場景渲染
CSS2DRenderer(); // 2D平面渲染(用於網頁元素與場景元素綁定)
 
 
場景動畫: 不限 ,一個無限循環函數
    animate() {
      // 實時更新動畫函數
      // this.renderer.render(this.scene, this.camera);
      // this.labelRenderer.render(this.scene, this.camera);
      window. requestAnimationFrame(() => this.animate());
      //   this.update();
      TWEEN.update();
    },
 

光源:

THREE.AmbientLight(0xaffffff) // 場景光
THREE.PointLight(0xa6a6a6, 1, 1000); // 點光源
THREE.SpotLight(0xa6a6a6); // 聚光燈
 

操作控件:

this.orbitControls = new OrbitControls(this.camera,this.renderer.domElement ) // 軌道控制器
FlyControls() // 飛行控件
 

幾何體:

THREE.PlaneGeometry(長,寬,高) // 平面
THREE.BoxGeometry(長,寬,高) // 立方體
THREE.CircleGeometry() // 
THREE.TextGeometry() // 文字
 
 
 
材質
THREE.MeshStandardMaterial(
color: 0xa6a6a6, // 顏色
side: THREE.BackSide // 反向貼圖
visible: false, // 顯示隱藏
) // 標准材質
 
THREE.Clock() 
 
this.orbitControls.addEventListener("change", this.render); // 靜態場景優化性能時常用,
 

物體:

THREE.Mesh() // 網格
THREE.Group() //  (場景模型盡量分組,方便管理)
THREE.Line() //
THREE.Sprite() // 精靈 (精靈是一個總是面朝着攝像機的平面,通常含有使用一個半透明的紋理。)
 
 
 
模型位置:
Mesh.position.set(x,y,z)
 
模型縮放:
Mesh.scale.set(1, 1, 1)
 

分組:

THREE.Group();
 

追加模型:
scene.add(Mesh) 追加到場景
group.add(mesh) 追加到分組

 

刪除模型:
obj.geometry.dispose();
obj.material.dispose();
scene.remove(obj);

 

模型/分組查找:
場景/分組.traverse() 遍歷
scene.getObjectById() ID 查找
scene.getObjectByName() 名稱查找

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM