3dmax批量导入obj_ArcGIS 与 3DMax 结合建模

ac04ececd5e0a14934491b133023bc58.gif

整体技术思路是将项目区二维的CAD测绘底图,通过整理导入到3DMax中,根据CAD底图为基础,绘制三维数字模型。利用Photoshop 平面图像处理软件,对现场采集的照片进行修整,为三维模型制作表面贴图。最终把贴好材质的三维楼体导入到 ArcGIS 软件中,进行相应的调整,进而生成真实的三维数字城市景观:

(1)在ArcMap中,加载建筑物轮廓数据,利用导出 CAD 工具( ExportCAD ),将所需要建模的区域导成 CAD 格式;

(2)在3DMax中利用建筑物轮廓为底图进行建模。将每个建筑物模型分别存储为3ds 文件;

(3)在桌面中利用Import3DFiles 将模型批量转成ArcGIS 的Multipatch模型要素文件并保存于Personal GeoDatabase (后面统称为 PGDB )中。

软件环境

  • ArcGIS:9.2以上

  • 3DMax:9或其他版本均可

技术流程

(1) 首先,ArcMap 中点击添加数据工具bdc7ca9aac057fcd8c8f7fc5d14476af.png,打开 Buildings 数据。双击 ArcToolbox-> Conversion Tools->to CAD->Export to CAD,选择 Buildings 数据为导出图层,选择输出格式为 DWG_R2000,选择输出 CAD 的文件。如图

8c5acbec120414fa6d775efcb8b758ca.png

(2) 打开 Autodesk 3ds Max 软件,文件->导入,打开文件导入对话框,上步操作中的文件,导入 CAD底图。如图所示:

2e3ad15e88d36e58ff8e88b29c89aa03.png

(3) 菜单自定义->单位设置,打开单位设置对话框如图 ,点击系统单位设置,设置单位为米,拉动滚动条设置与原点间的距离(拉到最左边)。

7528f33c5e57c8fffe24a6445492e70b.png

(4) Ctrl+Shift+Z 键 CAD 底图全部场景范围充满视窗,Alt + W 键切换到单视图,T 键切换到顶视图。如图 2.6.3-25 所示

1c6b1aef65f58a43c5119bf170180e7f.png

(5) 底图上右键冻结当前图层,将底图冻结如图 2.6.3-26

a8d4cb8702733eebe7b9e16095057781.png

(6)点击工具条 2.5 捕捉工具e3d1fad4df0890130e8470451860b8c1.png右键弹出栅格和捕捉对话框,设置捕捉和捕捉选项,如图

dc2cf3d8ec84f981cd064d27556b7371.png

(7)点击图形工具0bd004e88e594a335952a943556817e7.png,在对象类型里面选中线,以建筑为轮廓勾画建筑物,并闭合线,如图所示:

a75c00f8e2bb00971e80b4f4f4458ab3.png

(8) 在图形单击右键转换为->转换为可编辑多边形,如图所示:

97bc5f377dce23e79cfb6051b63bd465.png

(9)点击右侧工具面板上点击多边形工具,选中建筑物轮廓多边形,单击挤出将建筑物轮廓按照建筑实际的高度 17m 将建筑物拉起来,如图所示:

d2c39ca34f097cd0d38d01c4d254af25.png

(10) 在建筑物上右键单击,转换为->转换为可编辑多边形。Alt +Q 键进入孤立模式,可以在孤立环境对模型进行贴图,F3 键切换实色显示场景中的几何体,如图

de994418841f934e0c31c990bc0ea1c7.png

(11)在工具条上选择材质编辑工具 ,弹出材质编辑器窗口,拖动编辑器窗口中的材质球到建筑物上,将指定材质球给指定的对象。点击贴图按钮,然后点击None 后,弹出的材质/贴图浏览器对话框中,点击位图选择要为建筑物贴图的纹理照片如图所示:

56c1a9820a2fcbb57411ea6bc4ada37a.png

(12) 点击多边行,选中模型中要贴图的建筑物表面。在修改器列表中选择 UVW 展开,将纹理照片在建筑物面上展开,如图所示:

c76316a7991bedea8ed6d0bf72a8d8ed.png

(13)点击编辑按钮,弹出编辑 UVW 对话框。点击面子对象模式工具 ,点击菜单贴图->展开贴图命令,弹出展平贴图对话框,点击确定。在 UV 下来列表框中选 择纹理照片 Map#1,调整窗口中的红色面到合适的大小合位置。如图

c750bc92ad048921fc5ec30523b45694.png

(14)在材质编辑器窗口中选择在视口中显示贴图按钮 ,查看建筑物面上的纹理贴图,满意后再重复上述贴图步骤对其他面进行展 UV 贴图。如图

f29a22623765174141144bac862e84ab.png

(15)所有的贴图完毕后,点击快速渲染按钮 ,打开用户帧对话框查看贴图效果,本示例仅选取一个面进行贴图 ,满意后退出此对话框。选中建立好的模型,选择菜单->导出选定对象将建立好的模型导出 3DS 格式文件。

4ff97263270bb2fabff06e40ebb4a0ef.png

(16) 打开 ArcGlobe 软件,双击 ArcToolbox-> 3D Analyst Tools->Conversion->From File->Import 3D FIles 工具打开 Import 3D FIles 对话框,进行数据转换。点击582c35dbd4696c91edd63a999929d233.png添加建立好的模型文件,点击a665d69ae3852944a1f71857e0d56c34.png选择Multipatch存储的位置。点击f5c8453f2a60a43b74f7f0e74ee19cd1.png为Multipatch 选择空间参考,这里我们可以从建筑物轮廓底图的 Buildings文件中获取。

da51fc89899242731f637ec40bde356f.png

注:可以一次选择多个模型文件批量导入。

(17)加载底图轮廓数据,查看效果。建筑物模型落在正确的地理位置上,如图

5e47740c062412fc67a460a57c09f8c1.png

3dMax 建立三位模型不需要插件支持,因此适用于任何版本的ArcGIS 软件建模应用。

其注意事项:

(1)相片采集时,尽量以正面视角拍摄建筑物,尽量避免在正午时间拍摄,因为正午的时间,阳光充足,使建筑的受光面和被光面反差

较大,这样会为后期 “修图 ”增加工作量。拍照前,要对所拍摄的建筑有所了解,事先要查看 cad 底图。每拍摄一张照片,要尽量做到此

照片在制作过程中如何运用。为后期建筑的制作提高了效率。

(2)由于后期模型在导入到 “ArcGlobe”中,建模注意事项:

A、前期建模是,要注意不要使用 “镜像”物体。镜像容易导致数据丢失。

B、每个建筑要单独保存成单个的 3DS 文件,不要 “塌陷 ”相同材质的建筑,因为后期需要在 “ArcGlobe中”对每个建筑添加属性信息。

C、道路物体要尽量 “塌陷”成为一个物体,防止在 ArcGlobe 行走或飞行模式下,对道路进行 “裁切 ”,影响视觉效果。

D、所有模型 “贴图”尺寸要保证是 “2N次方”的尺寸,如( 256×256,512 ×512 等)

(3)数据导入注意事项:

建筑物轮廓底图应该具有投影坐标, 并且在利用 Import 3d files 工具时, 应选择从矢量数据中获取空间参考, 以保证模型数据能够有正确的地理信息,减少后期处理工作量。

(4)模型的表面光线暗淡,因为 ArcGIS 中并不支持 3DS Max 的灯光设置。

解决办法:

A、在 3DS Max 或 Photoshop 提高模型各个面的贴图的亮度;

B、启用 Sun Position ,并提高提高 Ambient light 的亮度

文章来源:百度文库

转载GIS前沿

本文仅限行业学习交流之用,版权、著作权归原载平台及作者所有。我们尊重作者的成果,如涉嫌侵权,请联系我们及时删除。

END

Smart3D,Pix4D,Inpho,Photoscan,Arcgis,CASS..入门到精通所有教程都在这

ArcGIS中DEM数据如何生成高程点(附练习数据)

大疆P4RTK结合Photoscan三维建模整个流程

CC(Smart3D)倾斜摄影空三,控制点,连接点教程(附下载连接)

从集群建立到航测建模ContextCapture实用操作教程(文档可下载)

b7262b214c71c69cd18ae2c734d4cafb.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS对象属性详解

oc对象的一些属性: retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained下面来分别讲讲各自的作用和区别:retain,计数器加1, (增加一个指向内存的指针) 对应release(计数器&#xff0…

给定一个由n个数字组成的数组,请检查是否存在重复项

This is a searching problem which can be solved using brute force approach. But here we are going to see use of hash table to solve such searching problems at lower time complexity. 这是一个搜索问题,可以使用蛮力方法解决。 但是在这里,我…

字符串乘一个数_【思维拓展】三位数乘两位数,构造最大积和最小积

前面袁老师给大家讲了一个重要结论,并运用这个结论来解决问题,构造两位数乘两位数最大积和最小积的问题。今天,更进一步,三位数乘两位数中,如何构造最大积和最小的积?【问题引入】用9、8、6、5、4这五个数字…

ios 微信支付

服务器签名版本 官方已经是建议使用服务器签名来接入微信支付,实际上从安全上考虑,确实是每个客户端不应该知道RAS密钥,也不需要每个客户端都写一遍签名的算法。 服务端接入流程文档:https://pay.weixin.qq.com/wiki/doc/api/app.…

Python | 基于参数和返回值的功能分类

There are following types of the functions based on their parameters and return values: 根据函数的参数和返回值,有以下几种类型的函数: Function with no argument and no return value 没有参数也没有返回值的函数 Function with no argument …

macos可以升级到指定版本吗_承装承修承试可以跨级升级吗?

在建筑行业,通常我们所说的承装承修承试,也就是指承装(修、试)电力设施许可证。承装(修、试)电力设施许可证的功能作用相当于建筑资质,企业需要办理许可证后才能承接电力设施的安装、维护、调试等工程项目。承装(修、试)电力设施许可证可以办…

C#对config配置文件的管理

应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是App.Config(ExeName.exe.config)。 配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET…

16位的数字高字节和低字节_显示掩盖较低和较高的16位数字半字节| 8086微处理器...

16位的数字高字节和低字节Problem: To show masking of lower and higher nibbles of 16bit number using 8086 Microprocessor. 问题:使用8086微处理器显示对16位数字的较高半字节和较低半字节的屏蔽。 Assumption: 假设: Number is stored at memory…

一个事物两个方面的对比举例_顶管施工也有讲究,两个方面一个个来

顶管施工其实就是我们平时说的不开挖或者非开挖施工啦,其原理是借助于主顶油缸及管道间、中继间等推力,把工具管或掘进机从工作坑内穿过土层一直推进到接收坑内吊起。管道紧随工具管或掘进机后,埋设在两坑之间。为了响应中央的号召&#xff1…

SQLServer中的死锁的介绍

简介 什么是死锁? 我认为,死锁是由于两个对象在拥有一份资源的情况下申请另一份资源,而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放。 什么又是阻塞? 阻塞是由于资源不…

c语言位运算符的使用_C语言程序使用位运算符检查给定数字是否为回文

c语言位运算符的使用Problem statement: Write a C program to check whether a number (binary representation) is palindrome or not using bitwise operators. Maximum input is 255.. 问题陈述:编写一个C程序以使用按位运算符检查数字(二进制​​表示形式)是否…

解析取值_圆锥曲线——高中解析几何全归纳

这是一系列文章,我将在接下来了80多天,尽力把理科比较难的大题题型全部归纳一下然后在最后我会告诉做解析几何的窍门,让你的解析几何不再没有头绪,拿到既可做全文干货,不掺水,可以说总结了解析几何中你能遇…

Tomcat版本与Servlet、JSP等版本的支持关系

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/garyxiong/blog/624619

php 随机两位小数数_使用8086微处理器找出两个8位N数数组

php 随机两位小数数Problem statement: 问题陈述: Write a program in 8086 microprocessor to find out the sum of two arrays of 8-bit n numbers, where size “n” is stored at offset 500 and the numbers of first array are stored from offset 501 and t…

人类一败涂地做图教程_绘画步骤_人类一败涂地鼠绘人物步骤与技巧_3DM单机

第一波根据自己喜欢的人物角色选好模型,模型选不好画出来就不像第二步 对模型进行上色 在上色时可选择对某一部位涂色第三步绘制人物服装细节,首先是起个大概的形状 ,ALT镜头拉进,画笔最小化,然后利用底色扣细建议先从…

java向数组中增加新元素_用Java中的新元素替换List的给定索引处的元素

java向数组中增加新元素Given a list of the integers and we have to replace it an element from specified index with a new element in java. 给定一个整数列表,我们必须用Java中的新元素将其替换为指定索引中的一个元素。 To replace an element in the list…

微服务架构会和分布式单体架构高度重合吗

在最近的Microservices Practitioner Summit峰会上,来自Facebook的工程师Ben Christensen就目前正在普遍快速增长的分布式系统与二进制依赖关系的一种反面模式发表了自己的看法。\\Christensen谈到说,共享类库是整个服务运行过程中最需要的部分&#xff…

北京soul_Soul高智商情侣,机器人博士邂逅科技记者,跨越1200公里来相爱

她,是知名媒体的科技记者,平时往返于帝都各大互联网媒体峰会上,朋友圈都是各大互联网公司创始人大佬,用文字记录下互联网江湖的风云变化。他,是魔都top大学的工业机器人博士,像谢尔顿一样充满科学的奇思妙想…

数据库拆分字符串函数_PHP | 不使用库函数将逗号分隔的字符串拆分为数组

数据库拆分字符串函数Given a string with comma delimited, we have to split it into an array. 给定一个以逗号分隔的字符串,我们必须将其拆分为一个数组。 Example: 例: Input: "Google,Bing,Yahoo!,DuckDuckGo"Output:arrar of strings…

arduino 休眠 节能_Arduino低功耗掉电模式看门狗唤醒

最近在做一个低功耗的设备,发射红外来检测前面1米以内左右的地方是否有人,纽扣电池供电,需要持续工作至少两年,因此,要求设备工作电流在ua级别。(1)红外发射接收由于一般的红外发射接收(下图所示)都会比较…