import {WebGLRenderer,PerspectiveCamera, Scene, AxesHelper,SphereGeometry, HemisphereLight,MeshBasicMaterial,MeshPhongMaterial, Mesh,DoubleSide}from "three"
import{OrbitControls}from "three/examples/jsm/controls/OrbitControls"
import{MTLLoader}from "three/examples/jsm/loaders/MTLLoader"
import{OBJLoader}from"three/examples/jsm/loaders/OBJLoader"
import{FBXLoader}from "three/examples/jsm/loaders/FBXLoader"
var renedrer,camera,control,scene;
function init()
{
renedrer=new WebGLRenderer({});
document.body.appendChild(renedrer.domElement);
renedrer.setSize(window.innerWidth,window .innerHeight);
camera=new PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,10000);
camera.position.z=20;
var light=new HemisphereLight(0xfffff,0x444444);
control=new OrbitControls(camera,renedrer.domElement);
scene =new Scene();
//scene.add(new Mesh(new SphereGeometry(2,30,30),new MeshPhongMaterial({color:0xff0000,side:DoubleSide})));
scene.add(light);
scene.add(new AxesHelper(10000));
window.addEventListener('resize',()=>{
renedrer.setSize(window.innerWidth,window .innerHeight);
camera.aspect=window.innerWidth/window.innerHeight;
camera.updateProjectionMatrix();
})
loadModel();
}
function loadModel(params) {
var fbxLoader=new FBXLoader();
var mtlLoader=new MTLLoader();
var objLoader=new OBJLoader();
mtlLoader.load("../assets/model/city/ny1.mtl",function (preMaterial) {
preMaterial.preload();
objLoader.setMaterials(preMaterial).load("../assets/model/city/ny1.obj",function(obj){
obj.position.set(6001,604,2151);
scene.add(obj);
})
})
}
function render() {
renedrer.render(scene,camera);
requestAnimationFrame(render);
}
init();
render();
加载全部的模型
import {WebGLRenderer,PerspectiveCamera, Scene, AxesHelper,SphereGeometry, HemisphereLight,MeshBasicMaterial,MeshPhongMaterial, Mesh,DoubleSide}from "three"
import{OrbitControls}from "three/examples/jsm/controls/OrbitControls"
import{MTLLoader}from "three/examples/jsm/loaders/MTLLoader"
import{OBJLoader}from"three/examples/jsm/loaders/OBJLoader"
import{FBXLoader}from "three/examples/jsm/loaders/FBXLoader"
var renedrer,camera,control,scene;
function init()
{
renedrer=new WebGLRenderer({});
document.body.appendChild(renedrer.domElement);
renedrer.setSize(window.innerWidth,window .innerHeight);
camera=new PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,10000);
camera.position.y=500;
camera.position.z=500;
var light=new HemisphereLight(0xfffff,0x444444);
control=new OrbitControls(camera,renedrer.domElement);
scene =new Scene();
//scene.add(new Mesh(new SphereGeometry(2,30,30),new MeshPhongMaterial({color:0xff0000,side:DoubleSide})));
scene.add(light);
scene.add(new AxesHelper(10000));
window.addEventListener('resize',()=>{
renedrer.setSize(window.innerWidth,window .innerHeight);
camera.aspect=window.innerWidth/window.innerHeight;
camera.updateProjectionMatrix();
})
loadModel();
}
function loadModel(params) {
var fbxLoader=new FBXLoader();
var mtlLoader=new MTLLoader();
var objLoader=new OBJLoader();
for (let i = 1; i < 8; i++) {
mtlLoader.load("../assets/model/city/ny"+i+".mtl",function (preMaterial) {
preMaterial.preload();
objLoader.setMaterials(preMaterial).load("../assets/model/city/ny"+i+".obj",function(obj){
obj.position.set(6001,604,2151);
scene.add(obj);
})
})
}
}
function render() {
renedrer.render(scene,camera);
requestAnimationFrame(render);
}
init();
render();
先这样吧