1. 3dmax到底怎樣導入OBJ格式
1、在網頁中輸入「3ds max」軟體名稱,下載並安裝該軟體。在桌面找到該圖標,雙擊打開。
11、找到我們剛剛保存文件的位置,打開後可以看到多了兩個文件,這就說明我們「OBJ」導尺納好了。
2. unity 載入obj文件
你的obj文件時模型格式對么?那麼你怎麼載入obj格式的呢,是導入Unity編輯器,然後建立一個GameObject添加MeshFilter和MeshRenderer部件關聯這個模型,還是把obj當成外部資源(StreamingAssets),自己解析obj格式,再用Unity底層3D API繪制Mesh呢?
如果你要在運行時解壓 zip,然後載入裡面的 obj,那麼就要用第二種方法。
3. 小白請教一下大神們 怎麼用three.js載入obj模型
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="libs/three.js"></script>
<script type="text/javascript" src="libs/OBJLoader.js"></script>
<script type="text/javascript">
var scene = null;
var camera = null;
var renderer = null;
var mesh = null;
var id = null;
function init() {
renderer = new THREE.WebGLRenderer({//渲染器
canvas: document.getElementById('mainCanvas')//畫布
});
renderer.setClearColor(0x000000);//畫布顏色
scene = new THREE.Scene();//創建場景
camera = new THREE.OrthographicCamera(-5, 5, 3.75, -3.75, 0.1, 100);//正交投影照相機
camera.position.set(15, 25, 25);//相機位置
camera.lookAt(new THREE.Vector3(0, 2, 0));//lookAt()設置相機所看的位置
scene.add(camera);//把相機添加到場景中
var loader = new THREE.OBJLoader();//在init函數中,創建loader變數,用於導入模型
loader.load('libs/port.obj', function(obj) {//第一個表示模型路徑,第二個表示完成導入後的回調函數,一般我們需要在這個回調函數中將導入的模型添加到場景中
obj.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.material.side = THREE.DoubleSide;
}
});
mesh = obj;//儲存到全局變數中
scene.add(obj);//將導入的模型添加到場景中
});
var light = new THREE.DirectionalLight(0xffffff);//光源顏色
light.position.set(20, 10, 5);//光源位置
scene.add(light);//光源添加到場景中
id = setInterval(draw, 20);//每隔20s重繪一次
}
function draw() {//們在重繪函數中讓茶壺旋轉:
renderer.render(scene, camera);//調用WebGLRenderer的render函數刷新場景
mesh.rotation.y += 0.01;//添加動畫
if (mesh.rotation.y > Math.PI * 2) {
mesh.rotation.y -= Math.PI * 2;
}
}
</script>
</head>
<body onload="init()">
<canvas id="mainCanvas" width="800px" height="600px" ></canvas>
</body>
</html>
4. 如何使用Three.js載入obj和mtl文件
使用Three.js載入obj和mtl文件方法:
varonProgress=function(xhr){
if(xhr.lengthComputable){
varpercentComplete=xhr.loaded/xhr.total*100;
console.log(Math.round(percentComplete,2)+'%downloaded');
}
};
varonError=function(xhr){};
THREE.Loader.Handlers.add(/.dds$/i,newTHREE.DDSLoader());
varmtlLoader=newTHREE.MTLLoader();
mtlLoader.setPath('/uploads/160601/obj/');
mtlLoader.load('egg.mtl',function(materials){
materials.preload();
varobjLoader=newTHREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('/uploads/160601/obj/');
objLoader.load('egg.obj',function(object){
object.position.y=-0.5;
scene.add(object);
},onProgress,onError);
});