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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

如何将3D文件(solidworks等工具导出的STL/DAE文件)在Web浏览器中加载展示

發(fā)布時間:2023/12/31 HTML 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将3D文件(solidworks等工具导出的STL/DAE文件)在Web浏览器中加载展示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在前一篇博客中,我將3D文件導入到了Rviz中做機器人的模型展示,今天嘗試下將3D文件放在Web瀏覽器中展示。在Web端渲染3D模型是比較麻煩的,但是好在有three.js等這樣的Web3D引擎,才使得我們網頁端渲染3D模型變?yōu)榭赡堋?br /> 首先我們需要使用CAD Exchanger這個軟件把stl或者stp文件轉換成mtl或者obj文件,然后按照下面的操作即可。
話不多說,直接上代碼,理解起來也不是很難,注意下面的stl文件路徑改成你自己的路徑。
值得注意的是object.scale.set(0.08, 0.08, 0.08);這個地方的參數(shù)控制模型大小的,有的時候你轉換過來的文件尺寸比例不對,太大太小web網頁都無法顯示,所以要著重注意這里。

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><title>JUJON: 讓做機器人變得簡單!</title><style type="text/css">html,body {margin: 0;height: 100%;}canvas {display: block;}</style></head><body onload="draw();"></body> <script src="../static/js/three.js"></script> <script src="../static/js/OBJLoader.js"></script> <script src="../static/js/MTLLoader.js"></script> <script src="../static/js/OrbitControls.js"></script> <script src="../static/js/stats.min.js"></script> <script src="../static/js/dat.gui.min.js"></script><script>var renderer;function initRender() {renderer = new THREE.WebGLRenderer({ antialias: true });renderer.setSize(window.innerWidth, window.innerHeight);//告訴渲染器需要陰影效果renderer.setClearColor(0xffffff);document.body.appendChild(renderer.domElement);}var camera;function initCamera() {camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);camera.position.set(0, 40, 50);camera.lookAt(new THREE.Vector3(0, 0, 0));}var scene;function initScene() {scene = new THREE.Scene();}//初始化dat.GUI簡化試驗流程var gui;function initGui() {//聲明一個保存需求修改的相關數(shù)據的對象gui = {};var datGui = new dat.GUI();//將設置屬性添加到gui當中,gui.add(對象,屬性,最小值,最大值)}var light;function initLight() {scene.add(new THREE.AmbientLight(0x444444));light = new THREE.PointLight(0xffffff);light.position.set(0, 50, 0);//告訴平行光需要開啟陰影投射light.castShadow = true;scene.add(light);}function initModel() {//輔助工具var helper = new THREE.AxesHelper(50);scene.add(helper);var mtlLoader = new THREE.MTLLoader();mtlLoader.setPath('../static/stl/');//加載mtl文件mtlLoader.load('lv.mtl', function (material) {var objLoader = new THREE.OBJLoader();//設置當前加載的紋理objLoader.setMaterials(material);objLoader.setPath('../static/stl/');objLoader.load('lv.obj', function (object) {//獲取車體的位置var jujon2 = object.children[5];var jujon1 = object.children[4];//設置車體的透明度jujon1.material.opacity = 0.6;jujon1.material.transparent = true;jujon1.material.depthTest = false;jujon1.material.side = THREE.DoubleSide;jujon2.material.opacity = 0.6;jujon2.material.depthTest = false;jujon2.material.transparent = true;jujon2.material.side = THREE.DoubleSide;//將模型縮放并添加到場景當中object.scale.set(0.08, 0.08, 0.08);scene.add(object);})});}//初始化性能插件var stats;function initStats() {stats = new Stats();document.body.appendChild(stats.dom);}//用戶交互插件 鼠標左鍵按住旋轉,右鍵按住平移,滾輪縮放var controls;function initControls() {controls = new THREE.OrbitControls(camera, renderer.domElement);// 如果使用animate方法時,將此函數(shù)刪除//controls.addEventListener( 'change', render );// 使動畫循環(huán)使用時阻尼或自轉 意思是否有慣性controls.enableDamping = true;//動態(tài)阻尼系數(shù) 就是鼠標拖拽旋轉靈敏度//controls.dampingFactor = 0.25;//是否可以縮放controls.enableZoom = true;//是否自動旋轉controls.autoRotate = true;//設置相機距離原點的最遠距離controls.minDistance = 1;//設置相機距離原點的最遠距離controls.maxDistance = 200;//是否開啟右鍵拖拽controls.enablePan = true;}function render() {renderer.render(scene, camera);}//窗口變動觸發(fā)的函數(shù)function onWindowResize() {camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();render();renderer.setSize(window.innerWidth, window.innerHeight);}function animate() {//更新控制器render();//更新性能插件stats.update();controls.update();requestAnimationFrame(animate);}function draw() {initGui();initRender();initScene();initCamera();initLight();initModel();initControls();initStats();animate();window.onresize = onWindowResize;} </script></html>

轉換正常加載后,web網頁顯示很完美。

真實網站連接:
https://www.jujon.cn/model/ravelle-model.html

總結

以上是生活随笔為你收集整理的如何将3D文件(solidworks等工具导出的STL/DAE文件)在Web浏览器中加载展示的全部內容,希望文章能夠幫你解決所遇到的問題。

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