智慧城市美术效果Unity实现笔记流程

 智慧城市美术效果Unity实现笔记流程:

参考 对标 效果图:

        参考资料:

                方案一:

                        fBlender GIS 获取城市 房屋道路等数据

                        安装BlenderGIS插件

                        落叶大师智慧城市效果解析

               方案二:

                        CityEngine2022地块生成

                     

                        

        写实类-参考图:

(以上均为网络搜索效果,有落叶大师,以及其他优秀开发者效果图参考)

        未来类-参考图:

智慧城市可视化-案例

如上图所示,智慧城市基本分为 这两个大类,偏写实风,偏未来风,也有互相结合的效果。

一、实现思路大纲:

二、实操环节(方案1):

1、软件准备/环境配置:
        1)、Blender软件安装:

                软件官方下载地址/使用文档教程:Blender 3.5 参考手册 — Blender Manual

        2)、为Blender安装GIS插件:

                Blender-GIS插件下载地址:                 

                                https://github.com/domlysz/BlenderGIS

                Blender-GIS的安装参考视频:

                                iBlender中文版插件GIS 教程Blender GIS 插件Blender_哔哩哔哩_bilibili

                这里我在安装过程中遇到了,缺少imageIO模组的问题 : "No imageIO module"。也就是点击BaseMap之后,打印窗口提示错误信息,所以翻阅了Domlysz为这个工具开启的BlenderGIS问题反馈页,发现是安装插件后,因缺少.dll的文件引起的。

缺少的.dll文件,可以在这里下载。

                (我是吧所有文件夹都下载下来了,防止因为缺少内容继续报错)。

                下载后,需要复制到指定位置下,通常在这个位置下:

替换位置:

C:\Users\你的用户名\AppData\Roaming\BlenderFoundation\Blender\3.5\scripts\addons\BlenderGIS-master\core\lib\imageio\resources\freeimage

将压缩包解压后,找到freeimage的文件夹,整体复制后,替换掉原有文件夹即可。

如果中间没有 某个文件夹结构的话,自己新建一个即可。

2、获取GIS城市数据:
         1)、注册OpenTopographyAPIKey:

                进入网站后根据提示,进行注册即可,注意,这个网站在注册过程中,需要注意IP地址,开始的时候我在电脑的IP下进行注册,区域是大陆IP,邮箱收不到验证码,后来换成在手机上选择非大陆地区的科学入网后,收到了验证码。

           复制API Key 到 下图 API key 文本框 中。

2)、选择GIS下载区域:

        在上述内容配置好后,重启Blender,并开启科学入网后,点击Basemap按钮,进行地图获取。

        单机后,会出现以下窗口,红框框选部分OSM,Bing,Esri经测试,是可用状态,Google选项,不知为何,始终是加载不出来任何数据的。

        这里我们确定,选择Esri的地图数据,会出现下图界面。

        快捷键G 获取地图位置,用拼音即可搜索,这里精度小一些设为12。

        

        定位到指定位置后,需要注意窗口范围不要过大,否则是无法工作的,会报数据太大的错,所以尽量控制城市区域范围。        

        快捷键E 裁切可视区域 ,裁切后,会发现GIS按钮重新出现了,开始进行下一步,生成,建筑,河流,公路等提供数据的内容。

        点击Get OMS按钮,开始下载载入上述数据。

按住Shift + 鼠标左键,进行 填入数据加选。

单击确定后,开始载入 数据,数据量根据每个地区所选不同,完整度也所不同,加载速度也不一样。

        这里以北京城区数据为例,数据相对丰富。 

3)、设置地形高度:

        点击选择地形对象,Get elevation获取地形高度。

这里选择第三个选项,其他选项经测试,没有明显效果。

确定后,根据真实地理情况,会生成地面的高度。

3、非主区域/道路建筑贴图:
        1)、建筑贴图指定:

                1、环境天空贴图:

选择一个全景图。

                 

        选择全景图之后,在切换渲染模式为 视图着色模式, 就可以看到 天空盒了。

       

                2、白膜建筑贴图:

 选择面:

 1、编辑模式下,选择建筑白膜,并在 选择 >>选择相似>>法向按钮,点击后会全选所有白模 建筑。

这个时候  Ctrl + i  进行反选,因为选中白模中墙面的面,才是主要目的,因为我们要对墙面 添加材质和贴图。

创建材质,并赋贴图:

1、打开 材质编辑窗口:并新建一个材质球,为材质球命名。

打开材质编辑窗口,为材质添加一个贴图。

选择一张 建筑外立面的无缝贴图。

选择UV分布方式:为  块面投影  并设置 UV 大小,这里设为15的精度。

(数小UV越大,数大UV越小) 这里实际可以小一些,因为要进unity中可以修改Telline的参数修改。

但是这个时候我们发现,全部的楼都是一个贴图,看起来很别扭,那么Blender中可以通过面来随机选择一些对象,分别指定材质,进行不同楼不同材质的区分。

再次创建一个材质,并赋予其他楼层外立面贴图。

新建好几个不同建筑外立面材质后,按上面操作,指定不同贴图。 

选择>>随机选择 建筑外立面:随机选中个数,这里设为0.002.

为选中部分模型,指定不同 外立面贴图。

     

            Shift+H可以孤立显示,配合材质替换多种建筑贴图。

    2)、道路生成+贴图指定:

        因道路数据原本就是线段,并不是模型,所以,需要先根据线,生成道路。

        注意先切换为对象模式快捷键 TAB.

   创建道路横截面:

        Shift + A  : 创建  曲线 >> Nurbs 曲线。 

查看所选(快速定位) 快捷键  ` 

编辑模式下快捷键V(设置控制柄类型) 切换为>> 矢量.

 

选中大纲视图中,选择heightway,然后 快捷键 鼠标右键转换到>>曲线。

这时,工具栏会出现这个图标,选中highway,后,为几何数据下,对象中,指定曲线

这样的话,就有了宽度。

选中曲线在物体属性面板中,找到缩放X,并调节参数,会发现 道路变宽了

 


为道路添加贴图:

        选择曲线,新建一个材质球,并命名,为道路寻找一张 如下图类似的公路贴图。

 

指定后,选择highway,为路面添加材质贴图。

 

为路面指定材质。

 

这个时候就可以看到路面被赋予了公路的贴图。

 

当然这里可以看到 贴图有拉伸,可以在这个窗口来修改UV拉伸状况。

 

 

可以明显看到中间的差别。

那么以上,就是Blender中全部的处理内容,结下来,选中需要导出的网格模型,导出FBX即可导入到Unity中,开始在Unity中处理效果。

4、Unity中为不同内容类型添加shader:
        1)、非主区域shader使用:
        2)、道路区域Shader使用:
        3)、主要建筑Shader使用:


三、实操环节(方案2):

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

棒球在国际上的流行·棒球1号位

棒球在国际上的流行 1. 棒球的起源与历史 棒球的起源源于美国。19世纪中叶,由于美国领土的扩张,当时的美国殖民地的印第安人将棒球类游戏,带到了当时的弗吉尼亚州的奥克兰。后来,棒球运动流传到了加利福尼亚州的圣迭戈。早期的棒…

初识鸿蒙跨平台开发框架ArkUI-X

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景&#…

adb用法,安卓的用户CA证书放到系统CA证书下

设备需root!!设备需root!!设备需root!! ​​​​​​​测试环境:redmi 5 plus、miui10 9.9.2dev(安卓8.1)、已root win下安装手机USB驱动(过程略&#xff0c…

OPENCV C++(十二)模板匹配

正常模板匹配函数 matchTemplate(img, templatee, resultMat, 0);//模板匹配 这里0代表的是方法,一般默认为0就ok img是输入图像 templatee是模板 resultmat是输出 1、cv::TM_SQDIFF:该方法使用平方差进行匹配,因此最佳的匹配结果在结果为…

R语言5_安装Giotto

环境Ubuntu22/20, R4.1. 已开启科学上网。 第一步,更新服务器环境,进入终端,键入如下命令, apt-get update apt install libcurl4-openssl-dev libssl-dev libxml2-dev libcairo2-dev libgtk-3-dev libhdf5-dev libmagick9-dev …

[HDLBits] Exams/2012 q1g

Consider the function f shown in the Karnaugh map below. Implement this function. (The original exam question asked for simplified SOP and POS forms of the function.) //

第三章 图论 No.9有向图的强连通与半连通分量

文章目录 定义Tarjan求SCC1174. 受欢迎的牛367. 学校网络1175. 最大半连通子图368. 银河 定义 连通分量是无向图的概念,yxc说错了,不要被误导 强连通分量:在一个有向图中,对于分量中的任意两点u,v,一定能从…

Easys Excel的表格导入(读)导出(写)-----java

一,EasyExcel官网: 可以学习一些新知识: EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 二,为什么要使用easyexcle excel的一些优点和缺点 java解析excel的框架有很多 : poi jxl,存在问题:非常的消耗内存, easyexcel 我们…

arcgis栅格数据之最佳路径分析

1、打开arcmap,加载数据,需要对影像进行监督分类,如下: 这里任选一种监督分类的方法(最大似然法),如下: 这里会先生成一个.ecd文件,然后再利用.ecd文件对影像进行分类。如…

新知识:Monkey 改进版之 App Crawler

原生Monkey 大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷: 事件太过于随机,测试有效性大打折扣…

软件设计师(七)面向对象技术

面向对象: Object-Oriented, 是一种以客观世界中的对象为中心的开发方法。 面向对象方法有Booch方法、Coad方法和OMT方法等。推出了同一建模语言UML。 面向对象方法包括面向对象分析、面向对象设计和面向对象实现。 一、面向对象基础 1、面向对象的基本…

207、仿真-51单片机脉搏心率与血氧报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

Java SpringBoot 加载 yml 配置文件中字典项

实际项目中,如果将该类信息放配置文件中的话,一般会结合Nocas一起使用 将字典数据,配置在 yml 文件中,通过加载yml将数据加载到 Map中 Spring Boot 中 yml 配置、引用其它 yml 中的配置。# 在配置文件目录(如&#xff…

Mask RCNN网络结构以及整体流程的详细解读

文章目录 1、概述2、Backbone3、RPN网络3.1、anchor的生成3.2、anchor的标注/分配3.3、分类预测和bbox回归3.4、NMS生成最终的anchor 4、ROI Head4.1、ROI Align4.2、cls head和bbox head4.3、mask head 1、概述 Mask RCNN是在Faster RCNN的基础上增加了mask head用于实例分割…

Games101学习笔记 - MVP矩阵

MV矩阵(模型视图变换) 目的,把摄像机通过变换移动的世界坐标远点,并且朝向与Z轴的负方向相同。这个变换就是模型试图变换。 因为移动了相机,如果想保持正确的渲染的话,那么对应的物体需要要和相机保持相对…

Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

近日,Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题: 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …

【TX 企业微信私有化历史版本 API 信息泄露】

目录 影响版本 复现过程 修复方式 影响版本 影响私有化部署: toB toG版微信 2.5.x 版本 2.6.930000 版本以下 危险程度:高危。攻击者可以进行获取企业的部门信息,员工信息,如权限较高包括应用获取,记录文件等等均…

学习笔记整理-JS-02-基本类型

文章目录 一、数据类型简介和检测1. JavaScript中两大数据类型 二、基本数据类型1. 数字类型2. 字符串类型3. 布尔类型4. undefined类型5. null 三、数据类型的转换1. 数据类型的转换 四、重点内容 一、数据类型简介和检测 1. JavaScript中两大数据类型 基本数据类型 Number S…

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap,map存储了所有LruCache的数据,有时候需要遍历访问该LinkedHashMap,取出里面的值,但是LruCache代码实…

勇敢牛牛,爱吃青草

牛顿问题(牛吃草问题 / 消长问题) 牛顿问题(牛吃草问题/消长问题) 牛顿问题(牛吃草问题/消长问题) 牧场上有一片青草,每天都生长得一样快。这片青草供给 10 头牛吃,可以吃 22 天&…