SuperMap Hi-Fi 3D SDK for Unity制作游戏引擎材质

news2024/11/16 15:48:14

kele

一、使用背景

    在交通,电力,规划等行业中,有的对象常常具有很强的质感,比如金属质感的
钢轨,电力塔;陶瓷材质的绝缘子;玻璃材质的建筑幕墙等,但常规方式的表现效果
往往差强人意。
    游戏引擎(Unity3D)中已有丰富的材质资源库,比如玻璃,金属等材质,这些材质
很多都是 PBR 材质,质感明显,效果逼真。
    如何基于我们提供的游戏引擎插件,将这些材质资源导出,并应用到 SuperMap
iClient3D for Cesium/WebGL 平台上,以提升模型的显示效果。

二、使用Unity制作 PBR 材质

2.1、获取 PBR 材质

    在制作 PBR 材质之前,首先要了解什么是 PBR 材质,它由哪些参数构成?
    PBR 是指能够实现接近物理真实的整个渲染算法或过程。通常 PBR 材质由albedo(基色纹理)、metallic(金属度)、smoothness(粗糙度)、normal(法线纹理)四部分组成。它使得材质拥有了反射,达到接近物理正确的效果。
    在Unity3D中,有两种方式获取 PBR 材质:导入 PBR 材质、制作 PBR 材质

2.1.1、导入PBR 材质

    PBR 材质和整组贴图,国内资源较少,这里推荐几个获取 PBR 材质的地址:

网站名称网址
Textureswww.textures.com
3DTextureswww.3DTextures.me
ShareTextureswww.sharetextures.com

    下载 PBR 材质有两种方式:
    第一种是下载sbsar文件(SubstanceDesigner软件制作),安装对应插件或者在Unity商店中下载Substance in Unity,即可导入 PBR 材质

  • 下载安装SubstanceDesigner,网址https://zixue.3d66.com/softhtml/downsoft_1242.html

  • unity中unity2018及以上版本需要Appstore中下载安装插件:Substance in Unity

    第二种方式是下载 PBR 材质中的基色纹理和法线纹理,在Unity中去构建材质

在这里插入图片描述
    ①将下载得到的图片拖拽进Unity工程中
    ②在Unity工程Assets/Material中新建材质,将基色纹理拖拽到 ”Albedo“上,将法线纹理拖拽到 ”Normal Map“上

在这里插入图片描述
    ③拖动 ”metallic“和 ”smoothness“改变金属度和粗糙度,达到最终效果

2.1.2、制作 PBR 材质

    法线纹理的作用是模拟模型表面的凹凸,使模型更加真实。在没有法线纹理的情况下,我们仍然可以通过基色纹理制作法线纹理
    ①导入一张基色纹理,点击图片将 ”Texture Type“ 由 ”default“ 改为 ”Normal map“

在这里插入图片描述
    ②点击 “Apply” 得到一张基于基色纹理制作的法线纹理

在这里插入图片描述
    ③新建材质球,将基色纹理和法线纹理拖拽到对应位置(参考2.1.1-②),并设置金属度和粗糙度,完成材质制作

2.2、导出 PBR 材质

2.2.1、安装游戏引擎插件

    新项目打开后,右击 Assets,选择 Import Package> Custom Package,会弹出导入框,选择下载的 SuperMap Hi-Fi 3D SDK for Unity.unitypackage 文件,确定后会进入导入程序。点击 import 进行导入。
    导入成功后,点击 Edit/Project Settings 进入设置界面,在 player 选项卡中,找到“Allow
‘unsafe’ Code”,将其勾选上。
    安装插件的详细操作流程,请参考插件包中的 “pdf帮助文档”

2.2.2、导出材质

    右键制作好的 PBR 材质球,点击【SuperMap】-【导出材质json】

在这里插入图片描述
导出成功后,在目标路径下得到一份json文件以及两张纹理图片

三、其它端使用 PBR 材质

3.1、桌面端使用 PBR 材质

    将模型添加到球面场景,通常其它软件制作的带有贴图的模型,是有纹理坐标的,这一步可以跳过。iDesktop制作的白模没有纹理坐标,是无法贴图的。首先需要通过【三维地理设计】-【材质】-【重新计算纹理坐标】,使模型带上uv纹理坐标,就可以设置材质了
    计算纹理坐标后,点击【材质】,将模型材质类型改为 PBR

在这里插入图片描述
    点击基色、法线前的方框,去选择上面导出的图片

在这里插入图片描述
    点击应用,材质设置就完成了,接下来在场景中将太阳光设置可见,并拖动时间轴,查看模型上的光影变化

在这里插入图片描述

3.2、SuperMap iClient for Cesium/WebGL使用 PBR 材质

    ①将导出的文件拷贝到前端工程中
    ②打开场景,找到模型图层,并设置 PBR 纹理

var promise = scene.open('http://localhost:8090/iserver/services/3D-wall-bulid/rest/realspace');
Cesium.when(promise, function (layers) {
 //找到模型图层
 var wallLayer = scene.layers.find('wall@bulid_3');
 //设置pbr材质
 wallLayer.setPBRMaterialFromJSON("./SampleData/pbr/地砖pbr/New Material 1.json");
});

最终效果

在这里插入图片描述

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

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

相关文章

AUTOSAR APP临摹1~Quick Start 模块

已实现逻辑 demo5 页面跳转 mainwindow.ui相当于simulink界面点击Quick Start进入welcome.ui界面在welcome.ui中大概包含7个页面页面之间通过next、back按钮翻页第0页没有back、最后一页点击next退出welcome.ui,回到mainwindow.ui 条件显示 C/C选项页面中&#xff…

7 步提升私有化部署的极狐GitLab 实例安全等级

目录 指导准则 分层安全,纵深防御 保密 ≠ 安全 减少攻击面 7 步保障私有化部署实例安全 第一步:开启多因素认证 第二步:加强额外的注册检查 第三步:限制群组和项目可见性 第四步:强化 SSH 设置 第五步&…

labelimg闪退解决方法(之前使用过labelimg,但新一次使用,打开文件夹无反应,再次打开闪退的问题)

问题描述: 之前使用过labelimg进行好多次的标注,但新一次运行使用,发现打开目录无反应,再次打开闪退的问题,重启电脑并且从新运行labelimg仍然无效。 解决方法: 关闭labelimg,然后删除文件C…

RK平台使用i2c-tools调试

简介 i2ctool是嵌入式开发过程中调试i2c设备常用的工具包,其中比较常用的有:i2cdetect、i2cdump、i2cset、i2cget。 RK平台的SDK大部分默认都会带这个工具,如果没有编译进去或者找不到的情况下可以自己从网上下载编译进去:https:…

数据结构与算法08:二分查找和哈希算法

目录 【二分查找】 二分查找的特殊情况 【哈希算法】 应用一:安全加密 应用二:唯一标识 应用三:数据校验 应用四:散列函数 应用五:负载均衡 应用六:数据分片 应用七:分布式存储&…

vscode:快捷输入代码片段

背景 每次调试代码输入 console.log() 的时候都会想,有没有什么指令我按下了就能生成这行代码,甚至更多我想自定义的代码,然后就去搜了搜果然有,vscode 提供了自定义代码片段的功能。 步骤 打开 vscode,点击 Prefer…

idea连接HiveServer2

一、 启动hive 启动hive的元数据服务 [aahadoop102 hive]$ bin/hive --service metastore根据你hive的配置方式启动hiveserver2 [aahadoop102 hive]$ bin/hive --service hiveserver2二、配置idea连接Hive服务 打开idea,在项目界面中的右边栏找到Database&#…

学术小白如何写好论文引言

文章目录 1.引言写作逻辑1.1 第一段:从现实出发1.2 第二段:文献综述1.3 第三段:引入研究理论和中介变量1.4 第四段:介绍调节变量的概念1.5 第五段:总结 Hello,宝子们,接下来,我们将持续不断更新一系列围绕论文写作的tips建议&…

vue3学习笔记(附加铺垫知识)

Vue3 1.铺垫知识 1.1ES6 默认导出与默认导入: 按需导出与按需导入: 直接导入并执行模块中的代码: 1.2Promise 回调地狱: 基本概念: 使用promise封装自己的读文件方法: 第一步: 第二步&a…

IP地址和MAC地址

1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备…

二进制安装K8S

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/mirror/所有节点yum源更换为 ,按照aliyun给的容器里面的kubenetes源和docker源,当然最好把之前的centos源也换成aliyun的 所有节点安装docker yum install -…

git 环境配置 + gitee拉取代码

好嘛 配环境的时候 老是忘记这个命令行 干脆自己写一个记录一下 也不用搜了 1.先从git官网下载git 安装 2.然后从gitee拉取代码的时候提示 这是因为换了新电脑没有加入新的公钥啦 哎 所以老是记不住命令行 first : git config --global user.name “Your Name” …

windows下上架iOS应用到appstore

windows下上架iOS应用到appstore 背景步骤申请苹果开发者账号创建唯一标示符App IDs申请发布证书申请发布描述文件创建App并填写信息选择证书编译打包上传IPA到App Store提交审核 尾巴 背景 现在由于跨平台技术的兴起,不使用原生技术就能开发出Android和iOS应用。A…

redis cluster集群常见错误问题记录

错误信息一: [ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0. 这个报错是因为集群配置信息有被修改后导致的,比如某个节点里的redis.conf配置有变…

儿童节小游戏——HTML+JS实现贪吃蛇

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

AI时代,保障安全刻不容缓!

原创 | 文 BFT机器人 01 AI诈骗层出不穷 近年来,深度伪造行为呈现出快速增长的趋势。据统计,2019年至2020年期间,深度伪造网络内容的数量增加了900%,这一令人担忧的趋势预计将在未来数年内持续发展。一些研究人员甚至预测&#xf…

Nova 和 SuperNova:无需通用电路的通用机器执行证明系统

1. 引言 前序博客有: Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记SuperNova:为多指令虚拟机执行提供递归证明基于Nova/SuperNova的zkVMSangria:PLONK Folding2023年 ZK Hack以及ZK Summit 亮点记Sangria&…

如何把多个pdf合并成一个pdf?常见渠道一览

PDF是一种非常常见的文件格式,它通常用于文档的传输和共享。在日常工作中,我们可能需要将多个PDF文件合并成一个文件以便于管理和浏览。这篇文章将会介绍如何使用在线工具和桌面应用程序来合并PDF文件。 PDF转换器:常用的PDF处理软件&#xf…

Language Models as Knowledge Embeddings:语言模型用作知识嵌入 IJCAI 2022

1.相关工作 1)基于结构的知识嵌入 进一步分成基于翻译的模型和基于语义匹配的模型 基于翻译的模型采用基于距离的评分函数,TransE把实体和关系嵌入到一个维度为d的共享向量空间中;TransH,TransR,RotatE. 语义匹配模型采用基于相似性的评分函…

【Unity】简单的边缘高亮

【Unity】简单的边缘高亮 工程文件下载地址 全部文件 使用方法 方法功能On()打开单帧高亮显示On(Color color)打开单帧高亮显示FlashingParams(Color color1, Color color2, float freq)闪烁的参数设置FlashingOn打开闪烁FlashingOn(Color color1, Color color2)从颜色1切换到…