数字孪生需要自建3D模型?搞懂Blender建模要点,看这篇文章就够了!

news2024/12/23 14:55:14

1. Blender的基础介绍

关于城市大师的建模软件,一般推荐使用Blender。一是因为Blender是开源免费的,不会有经济负担,二是因为我们软件有针对Blender的插件,对其进行了一定程度上的补充。

【温馨提示】如果使用的是3Dmax或者maya进行建模,建议是先将文件导出成“FBX文件”,然后将该文件导入到Blender,再导出成“GLB”或者“GLF”格式文件。

Blender 界面布局,如下图所示:

1.1 GLTF支持的材质选项

山海鲸软件本身并不是直接跟Blender进行交互的,是通过Blender导出GLTF文件的形式进行交互的。那么Blender导出GLTF所支持的设置就是软件所支持的设置,所以推荐去搜索一下Blender的GLTF文档,会有详细的介绍。本教程主要讲原理化BSDF(Principle BSDF)节点所支持的设置。

1.1.1 基础色

基础色是可以直接被导出的,一般是色值或者贴图,也可以在软件内直接修改。

Blender 基础色,如下图所示:

Blender 基础色UV偏移设置,如下图所示:

山海鲸城市大师 模型材质基础色设置,如下图所示:

1.1.2 金属度/粗糙度

金属度和粗糙度是不能连接两张贴图的。金属度和粗糙度贴图要用一张图来表示,而这张图本身一定要使用分离RGB节点来连接。将贴图与分离RGB进行连接,然后“B通道”连接金属度,“G通道”连接糙度,色彩空间选择“Non-Coler”

Blender 分离RGB连接设置,如下图所示:

如果不连接贴图,也可以通过直接拖动金属度和粗糙度来修改数值。

Blender 金属度数值拖动,如下图所示:

【温馨提示】对于PVR材质来说,金属度就是一个开关,所以要么是“0”要么是“1”,不要调整到中间值。中间值一般来说是用来抗锯齿的。

Blender 糙度数值拖动,如下图所示:

【温馨提示】糙度的值会影响软件内SSR开关的开启,当值为“1”不会开启该功能,低于“1”的时候,软件会开启SSR功能。建议路面、墙面等设置成“1”,因为刚创建的时候默认值是“0.5”,需要手动修改一下。

1.1.3 自发光

自发光也是可以修改色值添加贴图的。Blender中看到的自发光与山海鲸软件内是不一样的。Blender自发光的色值会和基础色的色值进行混合,但是如果自发光强度是100%的情况下,软件内会完全显示自发光的颜色。

Blender 自发光色值,如下图所示:

【温馨提示】自发光强度会沉在自发光颜色或贴图上,所以自发光强度本身是不会被导出的。自发光强度过高时,遇到相对较亮的贴图时可能会出现颜色的色值丢失的情况。

1.1.4 alpha

推荐直接使用贴图上的alpha通道,贴图是透明的时候可以直接将贴图的alpha连接到alpha。如果是单独的黑白图,将其颜色连接到alpha即可。

Blender 贴图alpha连接,如下图所示:

1.1.5 法线

法向一般来说都是贴图,把贴图节点NormalMap节点原理化BSDF节点相连接即可,默认可以在NormalMap里设置颜色。

Blender NormalMap颜色设置,如下图所示:

1.1.6 AO

AO的输出节点名字不能乱,需要将复制的时候复制到的名字“gltfsetting.001”改成“gltfsettings”,否则会导致AO导出出错。

1.2 透明材质要点

只要不是非要透明的场合尽量用贴图的形式去代替透明。透明的设置必须在Blender右侧材质设置混合模式里选择alpha混合,导出之后才会显示透明。

Blender 混合模式设置,如下图所示:

Blender 混合模式效果展示,如下图所示:

【温馨提示】alpha钳制在深度通道上相对更加稳定,所以建议在能选择alpha钳制的情况下尽量选择alpha钳制。

1.3 背面剔除

背面剔除的意思就是模型的背面不会被渲染。遇到像道路模型就可以设置背面剔除,可以根据自己的诉求进行调整,一般来说所有的面向正面的(即看不到反面的模型)都建议勾选背面剔除。

2. 插件的安装和使用

山海鲸软件官网有Blender官方插件,可以进一步的加强导出设置,添加了插件之后可以设置Blender的导出不支持的视频材质UV动画和光照贴图节点,具体的安装方法请参考教程山海鲸Blender插件安装。

山海鲸Blender插件 光照贴图节点,如下图所示:

3. 常见问题点

3.1 注意正反面

3.1.1 面朝向查看

需要注意面的正反面设置,朝向我们的一定是正面。可以在Blender的视图叠加层的界面进行查看。

Blender 查看面朝向,如下图所示:

3.1.2 解决步骤

选中面,然后按键盘Tab键进入面的编辑,选中其中的一个面,再在选择里设置法向,就能选中全部朝上的法向了。选中之后,在网格设置里选择法向的反转,即可将整个被选中的法向进行翻转。

Blender 面朝向选择,如下图所示:

Blender 法向翻转,如下图所示:

3.2 注意UV展开

在城市大师组件中如果某个面显示有很多黑点,说明该面没有设置UV展开。

3.2.1 UV展开查看

首先按Tab键,然后选择面,在UV面板中找到面所在的位置进行确认。如果面上所有的点都集中在一个点上,代表没有设置UV展开。

Blender 查看UV展开,如下图所示:

3.2.2 解决步骤

切换到主视图,选择所有的面按U键,即从当前视角投影的方式进行展开。

Blender UV展开,如下图所示:

3.3 注意应用变换

当我们创建一个模型并对其表面进行一些UV、法线贴图后,由于缩放会影响整个网格的呈现,直接导出时会产生各种问题。所以建议在导出模型之前,要应用旋转+缩放

Blender 模型未应用效果,如下图所示:

通过Ctrl+A键打开应用面板,选择应用“旋转+缩放”,就可以看到变换界面的旋转和缩放的数值发生了改变。

Blender 模型应用变换,如下图所示:

3.4 注意是否有顶点颜色

顶点颜色是会影响模型在软件中的显示的,当下载的模型导入到山海鲸软件中出现颜色不一的情况时,可以选择删除顶点色

Blender 顶点色,如下图所示:

4. 常见优化

4.1 尽量用关联复制

复制模型时尽量使用关联复制。即用“Alt+D键”来复制,而不是“Shift+D键”进行复制。用“Alt+D键”复制出来的模型在点击“Tab”进入编辑时生成的模型与模型本身都会进入编辑状态,而用“Shift+D键”复制出来的模型在点击“Tab”进入编辑时只有生成的模型会进入编辑状态,模型本身并不会进入编辑状态。

Blender Alt+D键关联复制,如下图所示:

Blender Shift+D键复制,如下图所示:

4.2 尽量减少模型数量

当白模过多时会影响加载和渲染的速度,所以需要全选模型后,“Ctrl+J键”将模型整合在一起,尽量减少模型的数量,可以减少卡顿问题的出现。

4.3 尽量减少材质数量

由于不同的材质是分开导出的,所以同一模型中的材质依然会被绘制多次。建议是尽量将材质也进行合并。材质合并有很多方式,后期也会推出专门的材质合并工具,这边建议是将多个材质组合成一张大的材质,通过UV的模式贴到模型的面上。

4.4 尽量减少模型面数

在网上找到一些大的模型或者从Beam里导出一些大的模型时,过多的面会对实时渲染造成很大的压力,所以就需要进行一些减面操作。通常减面操作是在添加修改器中选择“精简”,通过修改屏幕的角度勾选UV来减少模型的面数,同时也不会影响模型的整体外观。

Blender 减面操作,如下图所示:

【温馨提示】在减面操作时候一定要“Ctrl+A键”将修改器进行应用,否则不会产生效果。

4.5 尽量减小材质的大小

材质的贴图过大会加载的很慢且占用很多的显存,所以在添加贴图的时候注意贴图的大小

5. 视频教程

请参看山海鲸可视化“城市大师组件-Blender使用教程”视频教程:【山海鲸城市大师】第7课 Blender使用教程_哔哩哔哩_bilibili

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

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

相关文章

Zabbix“专家坐诊”第205期问答汇总

问题一 Q:Zabbix6.0安装出错,未找到zabbix-server的配置文件。 A:Find / -name zabbix-server.conf,试一下 Q:找到了。 Q:配置好了,虚拟化平台监控还是不行。 A:因为虚拟化监控用的…

PL/SQL+cpolar公网访问内网Oracle数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle,是甲骨文公司的一款关系…

python生成Markdown文件

我们使用的库是markdown_strings pip install markdown_strings程序如下: from markdown_strings import header, table, code_blockwith open("mark_down.md", w, encoding"utf8") as file:file.write(header("一级目录", 1) &qu…

python抓取网页视频

1. 喜马拉雅音频 1-1 喜马拉雅 import requests import json import time import random import hashliburl https://www.ximalaya.com/revision/play/v1/audio?id46103875&ptype1headers { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

法线贴图的原理和作用

在上一篇文章中详细介绍了位移贴图的相关知识,在本章中我们继续讲述法线贴图的相关概念,文章后面继续用GLTF 编辑器 来演示下法线贴图的模型渲染效果。 1、什么是法线贴图 法线贴图(Normal Map)是一种纹理映射技术,用…

DAY04_瑞吉外卖——文件上传下载菜品新增菜品分页查询菜品修改

目录 1. 文件上传下载1.1 上传介绍1.1.1 概述1.1.2 前端介绍1.1.3 服务端介绍 1.2 下载介绍1.3 上传代码实现1.3.1 前端代码1.3.2 服务端实现1.3.3 测试 1.4 下载代码实现1.4.1 前端代码1.4.2 服务端代码1.4.3 测试 2. 菜品新增2.1 需求分析2.2 数据模型2.3 准备工作2.4 前端页…

golang工程——底层原理【defer、panic、recover、interface】

defer 延时性 不管defer函数后的执行路径如何,最终都将被执行。在Go语言中,defer一般被用于资源的释放及异常panic的处理。保证函数在任意路径执行结束后都能够关闭资源。defer是一种优雅的关闭资源的方式,能减少大量冗余的代码并避免由于忘…

Python 标准库之pathlib,路径操作

背景 pathlib 标准库是在 Python3.4 引入,到现在最近版 3.11 已更新了好几个版本,主要是用于路径操作,相比之前的路径操作方法 os.path 有一些优势,有兴趣的同学可以学习下 **官方文档:**https://docs.python.org/zh-…

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

RS232,485,422的定义及区别

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。 由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。串口按电气标准及协议来划分,包括RS232、RS422、R…

JavaScript位运算的妙用

位运算的妙用: 奇偶数, 色值换算,换值, 编码等 位运算的基础知识: 操作数是32位整数自动转化为整数在二进制下进行运算 一.按位与& 判断奇偶数: 奇数: num & 1 1偶数: num & 1 0 基本知识: 用法:操作数1 & 操作数2规则:有 0 则为…

WhaleStudio 分钟级构建 AI 模型,强大 Ops 能力简化模型调度与部署

什么是机器学习(ML)? 它有什么作用 机器学习(ML)是人工智能(AI)的一个子集,通过算法发现数据中的通用模式,并根据持续不断的训练来优化调整最终结果。ML模型从过去的经验中学习,并根据已有的经验进行预测。例如,现在的电商已不再…

外贸人如何一眼识别骗子

最近收到很多客户在平台上直接发过来一些压缩包,然后说自己是和某个国家的政府签订的合作方案,请查看这些压缩包里的图纸和附件是否能够提供,麻烦核算价格等等。 当我看到客户发过来这些东西的时候,第一反应不是打开附件或者是来…

React中为啥key不可以使用索引值index?(超详细版本)

索引值index与唯一标识符id区别 1、索引值index是表示列表中每个元素的位置; 特点:从0开始,在列表变化时react重新分配索引值,造成索引值与元素标签的对应关系不是稳定的一一对应。 const list ["apple", "bana…

掌握Vim编辑器,轻松提升编程效率

1. 什么是VIM Vim (Vi improved)是从 Vi 发展出来的一个文本编辑器,简单的来说,Vi 是老式的文本处理器,功能已经很齐全了,但还是有可以进步的地方。 之后,Vim 之父 Bram Moolenaar 在 Vi 的源代码基础上进行了修改&a…

链式二叉树(二叉树看这一篇就够了)

顾名思义就是使用链式存储来实现的二叉树,因为二叉树是递归定义的,所以二叉树的实现中,都是会使用递归来完成.这里面需要一些前置的二叉树理论知识,对这部分不是很理解的可以先看下这篇二叉树的概念. 下面开始进入正题了: 1.二叉树的创建 假定现有"ABD##E#H##CF##G##&quo…

PDF文件压缩软件 PDF Squeezer mac中文版​软件特点

PDF Squeezer mac是一款macOS平台上的PDF文件压缩软件,可以帮助用户快速地压缩PDF文件,从而减小文件大小,使其更容易共享、存储和传输。PDF Squeezer使用先进的压缩算法,可以在不影响文件质量的情况下减小文件大小。 PDF Squeezer…

[Linux]多线程编程

[Linux]多线程编程 文章目录 [Linux]多线程编程pthread_create函数pthread_join函数pthread_exit函数pthread_cancel函数pthread_self函数pthread_detach函数理解线程库和线程id Linux操作系统下,并没有真正意义上的线程,而是由进程中的轻量级进程&#…

vue3 踩坑记(汇总)

1、在 vue3 中,GET 请求接口时,传入一个数组,默认是以“xxx[]: 1, 2, 3”的形式传递的,报错:“400 Bad Request” 解决方案: 传参时,需要将数组字符串化,比如:ids: sele…

二维码智慧门牌管理系统:提升社会治理效率的利器

文章目录 前言一、技术背景与特点二、数据准确性和一致性三、综合服务平台四、应用领域 前言 在当今科技不断发展的时代,我们的生活正逐渐数字化和智能化。近期,一种名为“二维码智慧门牌管理系统”的新型技术引起广泛关注。这一系统的出现不仅为我们的…