<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
<script src="http://webapi.amap.com/maps?v=1.4.5&key=35d787c24b85f40a20dfe0ee1522f829&plugin=Map3D"></script>
<script src="http://a.amap.com/jsapi_demos/static/demo-center/model/js/three.js"></script>
<script src="http://a.amap.com/jsapi_demos/static/demo-center/model/js/loaders/MTLLoader.js"></script>
<script src="http://a.amap.com/jsapi_demos/static/demo-center/model/js/loaders/LoaderSupport.js"></script>
<script src="http://a.amap.com/jsapi_demos/static/demo-center/model/js/loaders/OBJLoader2.js"></script>
</head>
<body>
<div id="container"></div>
<script>
var map = new AMap.Map('container',{
viewMode:'3D',
showBuildingBlock:false,
center:[120.42867,31.934859],
pitch:55,
zoom:17
});
map.AmbientLight = new AMap.Lights.AmbientLight([1,1,1],1);
//map.DirectionLight = new AMap.Lights.DirectionLight([1,0,-0.5],[1,1,1],1);
var tt = ['model/20GP1/Blinds_Roman_Hobbled_Blue.jpg','model/20GP1/sd20evg1.jpg','model/20GP1/sd20evg1_1_.jpg','model/20GP1/Used_40_doors.jpg','model/20GP1/wwwww.jpg','model/20GP1/sd20evg1.jpg'];
var loadModel = function () {
var modelName = '20GP1';
var scope = this;
var objLoader = new THREE.OBJLoader2();
var callbackOnLoad = function ( event ) {
var object3Dlayer = new AMap.Object3DLayer();
var meshes = event.detail.loaderRootNode.children;
for(var i=0;i<meshes.length;i++){
var vecticesF3 = meshes[i].geometry.attributes.position;
var vecticesNormal3 = meshes[i].geometry.attributes.normal;
var vecticesUV2 = meshes[i].geometry.attributes.uv;
var vectexCount = vecticesF3.count;
mesh = new AMap.Object3D.MeshAcceptLights();
var geometry = mesh.geometry;
//底部一圈
// debugger
var c,opacity;
var material = meshes[i].material[0]||meshes[i].material;
// debugger
if(material.map){
mesh.textures.push(tt[i]);
}
c = material.color;
opacity = material.opacity
// debugger
for(var j=0;j<vectexCount;j+=1){
var s = j*3;
geometry.vertices.push(vecticesF3.array[s],vecticesF3.array[s+2],-vecticesF3.array[s+1]);
if(vecticesNormal3) {
geometry.vertexNormals.push(vecticesNormal3.array[s],vecticesNormal3.array[s+2],-vecticesNormal3.array[s+1]);
}
if(vecticesUV2) {
geometry.vertexUVs.push(vecticesUV2.array[j*2],1-vecticesUV2.array[j*2+1]);
}
geometry.vertexColors.push(c.r,c.g,c.b,opacity)
}
// debugger
mesh.DEPTH_TEST = material.depthTest
// mesh.backOrFront = 'both'
mesh.transparent = opacity<1;
mesh.scale(300,300,300);
mesh.rotateX(-90);
mesh.rotateY(-30);
mesh.position(new AMap.LngLat(120.431349,31.933954))
object3Dlayer.add(mesh)
object3Dlayer.add(mesh)
}
map.add(object3Dlayer)
};
var onLoadMtl = function ( materials ) {
// for(var i=0;i<materials.length;i+=1){
// materials[i].side=2;
// }
objLoader.setModelName( modelName );
objLoader.setMaterials( materials );
objLoader.load( 'model/20GP1.obj', callbackOnLoad, null, null, null, false );
};
objLoader.loadMtl( 'model/20GP1.mtl', null, onLoadMtl );
};
loadModel();
var loadModel2 = function () {
var modelName = 'building';
var scope = this;
var objLoader = new THREE.OBJLoader2();
var callbackOnLoad = function ( event ) {
var object3Dlayer = new AMap.Object3DLayer();
var meshes = event.detail.loaderRootNode.children;
for(var i=0;i<meshes.length;i++){
var vecticesF3 = meshes[i].geometry.attributes.position;
var vecticesNormal3 = meshes[i].geometry.attributes.normal;
var vecticesUV2 = meshes[i].geometry.attributes.uv;
var vectexCount = vecticesF3.count;
mesh = new AMap.Object3D.MeshAcceptLights();
var geometry = mesh.geometry;
var c,opacity;
var material = meshes[i].material[0]||meshes[i].material;
// debugger
if(material.map)
mesh.textures.push('model/1519.bmp')
c = material.color;
opacity = material.opacity
// debugger
for(var j=0;j<vectexCount;j+=1){
var s = j*3;
geometry.vertices.push(vecticesF3.array[s],vecticesF3.array[s+2],-vecticesF3.array[s+1]);
if(vecticesNormal3) {
geometry.vertexNormals.push(vecticesNormal3.array[s],vecticesNormal3.array[s+2],-vecticesNormal3.array[s+1]);
}
if(vecticesUV2) {
geometry.vertexUVs.push(vecticesUV2.array[j*2],1-vecticesUV2.array[j*2+1]);
}
geometry.vertexColors.push(c.r,c.g,c.b,opacity)
}
// debugger
mesh.DEPTH_TEST = material.depthTest
// mesh.backOrFront = 'both'
mesh.transparent = opacity<1;
mesh.scale(20,20,20)
mesh.rotateZ(210)
mesh.position(new AMap.LngLat(120.42867,31.934859))
object3Dlayer.add(mesh)
}
map.add(object3Dlayer)
};
var onLoadMtl = function ( materials ) {
objLoader.setModelName( modelName );
objLoader.setMaterials( materials );
objLoader.load( 'model/1519.obj', callbackOnLoad, null, null, null, false );
};
objLoader.loadMtl( 'model/1519.mtl', null, onLoadMtl );
};
loadModel2();
</script>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
自己写的 three.js 导入模型 高德三维导入模型
共79个文件
jpg:24个
js:21个
mtl:6个
需积分: 50 59 下载量 97 浏览量
2018-05-02
13:36:22
上传
评论 1
收藏 2.17MB RAR 举报
温馨提示
自己写的 three.js 导入模型,包含相机的旋转 高德三维导入模型,用的是myeclipse工程,大家一起学习学习
资源推荐
资源详情
资源评论
收起资源包目录
ThreejsDemo.rar (79个子文件)
ThreejsDemo
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.common.component 471B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 364B
src
.project 2KB
WebRoot
image
2.jpg 15KB
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 404B
classes
lib
model
TANK.obj 33KB
TANK.mtl 1KB
model2.obj 2KB
20GP1.obj 2KB
20GP2
M_558555562.jpg 30KB
M_2000.png 133KB
M_0000.jpg 57KB
OOCL_Container_Top.jpg 41KB
cosco20ssr.jpg 128KB
M_111.png 91KB
sd20ooc1.jpg 32KB
bottom_container.png 15KB
door10.jpg 34KB
40GP
Cronos_Container_Side.jpg 40KB
M_417921_10152737763650324_610604146_n.jpg 10KB
Cronos_Container_Front.jpg 8KB
Cronos_Container_Top.jpg 24KB
dfdf.png 358KB
20GP2.mtl 792B
1519.obj 26KB
1519.mtl 147B
20GP1.mtl 840B
model2
Cronos_Container_Side.jpg 40KB
M_417921_10152737763650324_610604146_n.jpg 10KB
Cronos_Container_Front.jpg 8KB
Cronos_Container_Top.jpg 24KB
dfdf.png 378KB
20GP1
Used_40_doors.jpg 49KB
sd20evg1.jpg 20KB
sd20evg1_1_.jpg 17KB
Blinds_Roman_Hobbled_Blue.jpg 4KB
wwwww.jpg 15KB
model2.mtl 1KB
20GP2.obj 2KB
1519.bmp 192KB
TANK
_3.jpg 36KB
Kl_serTonne10.jpg 183KB
_4.jpg 104KB
Carpet_Berber_Pattern_Gray.jpg 13KB
40GP.mtl 921B
40GP.obj 802B
gaodeDemo2.html 4KB
threejsDemo2.html 6KB
js
SuRunMenuUtils.js 10KB
MenuUtils.js 10KB
DDSLoader.js 6KB
OBJLoader.js 17KB
Projector.js 21KB
stats.min.js 2KB
test.js 3KB
three.js 944KB
pager.js 4KB
ContainerUtils.js 18KB
jquery-1.7.2.js 256KB
tween.min.js 5KB
Detector.js 2KB
GeometryUtils.js 6KB
SuRunContainerUtils.js 16KB
OrbitControls.js 22KB
FirstPersonControls.js 6KB
ColladaLoader.js 98KB
TrackballControls.js 14KB
MTLLoader.js 10KB
three.min.js 496KB
cubeDemo.html 5KB
gaodeDemo1.html 6KB
threejsDemo1.html 3KB
.mymetadata 306B
.classpath 529B
.myeclipse
共 79 条
- 1
资源评论
liubuzhudefeng
- 粉丝: 3
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
- js 实现记住密码功能 js.cookie.min.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功