使用blender优化模型

介绍

自从上周分享了如何在地图上加载大量gltf模型之后,很多网友留言问是如何做模型优化的,今天就来解答一下。做这件事前我问了AI在three.js场景中加载更多GLTF模型的优化方法,它给我的回答是这样的:

  • 使用instanceMesh加载相同的网格。实例化网格允许您在场景中复制单个网格,而只需要存储一次网格的顶点数据。这可以显着提高场景中的性能。
  • 使用低分辨率的网格。如果您不关心模型的细节,您可以使用低分辨率的网格来提高性能。
  • 使用纹理压缩。纹理压缩可以减少纹理所占用的空间,从而提高性能。
  • 使用延迟加载。延迟加载允许您延迟加载模型,直到它们进入视口。这可以提高性能,因为您不必加载您看不到的模型。
  • 使用合并着色器。合并着色器允许您将多个模型的着色器合并到一个着色器中。这可以提高性能,因为您不必为每个模型渲染一个着色器。

总结一下就是减少的绘制次数,优化模型的面数和纹理,下面我们讲讲具体如何做模型优化。本文用到的建模工具是blender。为啥选blender?因为它是免费的...

优化步骤

优化模型可以从以下几方面入手:

  1. 合并模型网格
  2. 精简面数
  3. 模型展UV贴图
  4. 删除模型中看不见的点线面

1. 合并模型网格

选中所有的Mesh后做合并, 常规做法下图所示,选择相关联的Mesh后Ctrl+J直接合并。

但这里的"合并"操作相当于模型组合,事实上还是没有把几个几何体的内部网格融合,我们按Tab切换到编辑模式之后可以发现,通过手动拖拽还是直接把Mesh分开。

正确的做法是使用bool tool插件,在物体模式下选择相关联的Mesh,按Ctrl+shift+B 打开bool tool,点击Union实现合并。

2.精简面数

物体模式下,选择模型对象,点击修改器属性-添加修改器-精简,就可以在面板左下角看到当前模型的面数,比如下图的模型共1412个面,通过"塌陷、反细分、平面"三种方式可以针对不同模型进行减面,最常用的是第一个"塌陷"。

通过调节 塌陷 - 比率的数值小于1.0,可以直观地看到面数变化,如下图所示。如果你不想将整个模型减面,则可以使用已选的顶点组的方式缩小减面范围。

减面完毕记得要点击"应用"才算生效,这个是重要知识点。

3.模型展UV贴图

编辑模式下,点击顶部菜单 UV Editing 打开UV编辑器,在右侧模型页面点A键全选所有顶点,编辑器会自动生成展UV图。如下图所示完美展开。

点击UV编辑器头部的UV-导出UV布局图,就可以直接在图上加贴图了。完了导出图像,回到编辑器头部,点击打开图像,就可以看到如下效果。

UV贴图做好就可以添加材质贴图了,步骤如下所示:

1.选中模型,点击材质属性(小红地球图标) 2.点击新建 3.点击"基础"色后面的黄色点图标,打开的面板里选择"图像纹理" 4.点击下图所示的"关联图像"图标,选择刚刚做好的材质贴图,就OK了。

以上步骤做完,应该可以看到如下效果,记得修改查看方式,选编辑器右上角"视图着色方式":

3.模型展UV贴图 Extend

以上步骤适用于比较规则的模型,对于比较复杂的模型可能自动展开会有各种奇奇怪怪的UV面。

这时候可能需要人为干预展UV结果,我们可以通过"标记缝合边"的方式调整UV图最终的展开形态,如果要求某几个面在展开后是连在一起的,那么可以选中它们并集的边然后标记一下。

另外在做展开的时候可以试试 UV-智能UV投射,再选择"UV-孤岛比例平均化",再手动调节一下各种孤岛,就可以用了。譬如像下面这个模型,展UV时破破烂烂,经过缝缝补补之后变成这样。

4.删除看不见的点线面

这一步有2种做法: 手动删除或者使用插件自动删除。

手动删除大概有这些技巧:

  • 选择处于同一个平面上的面,右键"融并",就可以直接合并为1个面;
  • 选择整个模型所有面,右键"有限融并",就可以将所有在同个平面的面合并;
  • 将多条边融合,可以选择关联的连接点,右键"融并"。

如果安裝步骤1使用bool tool插件做合并的话,内部那些看不见的面会自动被剔除的。文末链接里也有其他用于做类似优化的插件。

安装插件

本文使用到的Bool Tool 是 Blender 的插件,它允许您使用布尔运算来合并两个或多个对象。可以进行以下四种运算:

  • 交集:合并两个对象的共同部分。
  • 差异:从第一个对象中减去第二个对象。
  • 并集:合并两个对象。
  • 剪切:将第二个对象应用于第一个对象。

插件安装方法如下图:打开编辑-偏好设置-插件,搜bool,打钩后重启即可。

相关链接

如何删除模型中多余的点 线 面

www.bilibili.com/video/BV1vL...

blender插件 网格清理布线优化神器

www.bilibili.com/video/BV1cN...

相关推荐
Bellafu66624 分钟前
selenium 常用xpath写法
前端·selenium·测试工具
blackorbird3 小时前
Edge 浏览器 IE 模式成攻击突破口:黑客借仿冒网站诱导攻击
前端·edge
谷歌开发者4 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (一)
前端·chrome·学习
名字越长技术越强4 小时前
Chrome和IE获取本机ip地址
前端
天***88964 小时前
Chrome 安装失败且提示“无可用的更新” 或 “与服务器的连接意外终止”,Chrome 离线版下载安装教程
前端·chrome
半梦半醒*4 小时前
zabbix安装
linux·运维·前端·网络·zabbix
清羽_ls5 小时前
React Hooks 核心规则&自定义 Hooks
前端·react.js·hooks
你的人类朋友5 小时前
“签名”这个概念是非对称加密独有的吗?
前端·后端·安全
西陵5 小时前
Nx带来极致的前端开发体验——任务缓存
前端·javascript·架构
10年前端老司机6 小时前
Promise 常见面试题(持续更新中)
前端·javascript