日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于Three.js实现3D汽车模型

發布時間:2024/3/24 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Three.js实现3D汽车模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tips: 運行前請準備好對應的3D模型及Three.js三方庫依賴

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><div id="box"></div><script type="module">// 注意依賴引入路徑,根據自己目錄調整import THREE from "THREE/build/three.min.js";import { GLTFLoader } from "THREE/examples/jsm/loaders/GLTFLoader.js";import { OrbitControls } from "THREE/examples/jsm/controls/OrbitControls.js";class Car {scene;renderer;innerwidth = innerWidth;innerHeight = innerHeight;constructor() {this.init();}async init() {// 加載gltf3D汽車模型配置文件, 3D模型文件可以在https://sketchfab.com/search?q=model+3&sort_by=-relevance&type=models上下載const gltf = await this.load3DModel("./models/bentley/scene.gltf");// 創建3D試圖場景this.createScene();// 設置場景環境光this.setSceneEnvironment();// 創建3D虛擬攝像機this.createCamera();// 將gltf文件的配置添加至主場景中this.scene.add(gltf.scene);// 渲染試圖this.loop();}createScene() {this.box = document.getElementById("box");this.scene = new THREE.Scene();this.renderer = new THREE.WebGLRenderer();// 設置渲染邊界this.renderer.setSize(this.innerwidth, this.innerHeight);// 設置場景背景色this.scene.background = new THREE.Color(0xeeeeee);// 插入dom節點this.box.appendChild(this.renderer.domElement);}setSceneEnvironment(){// 創建一個新的scence對象,用于設置主場景的environmentconst scene = new THREE.Scene();// 設置從某個點想四周發射的光源,用于照亮模型scene.add(new THREE.PointLight());// 創建網格層,指定初始照亮的物體面const mesh = new THREE.Mesh(new THREE.BoxGeometry(),new THREE.MeshStandardMaterial({ side: THREE.BackSide }));scene.add(mesh);const pmremGenerator = new THREE.PMREMGenerator(this.renderer);this.scene.environment = pmremGenerator.fromScene(scene).texture;}createCamera() {this.camera = new THREE.PerspectiveCamera(80,window.innerWidth / window.innerHeight,1,10000);this.camera.position.set(400, 200, 100);this.controls = new OrbitControls(this.camera, this.box);}load3DModel(url) {const loader = new GLTFLoader();return new Promise((resolve, reject) => {loader.load(url, (gltf) => {resolve(gltf);});});}loop() {requestAnimationFrame(() => this.loop());this.renderer.render(this.scene, this.camera);}}new Car();</script></body> </html>

總結

以上是生活随笔為你收集整理的基于Three.js实现3D汽车模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。