三维重建入门学习————建模软件Blender入门篇

2023-11-16

背景介绍

关于近期在进行三维重建相关算法学习的时候,学得越深,发现对各个方面的知识要求得越多,之前是补了相机的拍照原理,成像原理知识,再后来还补了主流的点提取、匹配算法等等。到了最近,论文,抑或是其他技术性文章出现的纹理、贴图等等词,总会让我有所疑惑。于是,追本溯源,我花了点时间通过看教程去学习了如何从0去进行一个建模?算法(nerf等)生成模型和建模软件建模出来的模型有什么关联?如何将二者去做一个统一?

Blender—B站教程链接,对新手友好
这是我花了一天不到刷完视频去做的小作业
在这里插入图片描述

Blender建模软件从零建模

(1)了解目标,制定大概计划

目标:制作类似上图的3D模型
工具:Blender,B站网课
预计时间:1天
内容安排:(重要)
1:首先,我们要做中间的小黄人 -----选定目标
2:小黄人包括头角、身体、眼睛、嘴巴、眼球、眼睛、眼皮、腿 -----成分分析
3:身体–>脚–>角–>眼睛–>嘴巴 -----制定顺序

(2)基于计划,初步设计模型人物结构

4:身体我们可以用(shift +A)立方体来代表,头角可以用锥体表示,眼球可以用经纬球or棱角球表示,眼睛也可以用球来表示,嘴巴可以用环体表示,脚可以用圆柱表示。
在这里插入图片描述
通过上述步骤,我们就可以大概搭建出来一个3D人物的大概面貌了。但针对具体细节我们还需进一步设计。——倒角知识点
因为圆柱、、立方体,他们棱角过于鲜明,我们可以使用“倒角”功能使得其更加平滑,下图是工具栏和前后对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2,3图左边是原立方体,右边是倒角处理的立方体,可以很明显得观察到右边边缘轮廓是圆滑处理的,根据自己的需要,可以在1图红框内选择倒角处理的程度,也就是倒角的段数和数量等等。

知识点2:衰减编辑

名字很抽象,它的作用体现在眼皮上。眼皮是盖在眼球上的一层皮,或者一层物质,一层膜,我们如何用已有的球、立方体等去实现一层膜的设计呢?
这里给出一个方法
1:建立一个经纬球,并按 / 键 进入隔离模型,更好进行编辑
在这里插入图片描述
2:进入编辑模式,并且按图2步骤选取 点模型(或者快捷键 1),然后在球体的最下方的那个点,点击一下
在这里插入图片描述
在这里插入图片描述
3:按G (进入衰减编辑),可以来回滚动鼠标滚轮,并移动鼠标,看有没有什么变化
在这里插入图片描述
在这里插入图片描述
如上两图,我们通过衰减功能,基于经纬球,实现了类似眼皮的设计(具体可以自己再调整大小以与眼球和谐)

到这里,人物结构模型就告一段落了,其他2个人物都可以通过复制粘贴实现设计,针对不同表情移动眼睛、嘴巴即可。
接下来,我们进入下一章节!

(3)纹理、光滑、贴图

听这几个词是不是比较懵,那我换个说法——给人物穿衣服,或者说换皮肤,这样是不是就很能理解了。很多CG或者手游里面的皮肤其实就是给原装人物模型换了个更加炫酷的贴图罢了。

1:先选定模型位置(哪个位置要上色就选那个位置),选择工具栏的“材质属性”,再选择“基础色”右边的颜色长条。如下图顺序123

在这里插入图片描述

在这里插入图片描述
如上图,我们通过在“画板”选取填充的颜色,可以给选择的模型部位进行上色,我画板选取的是类似黄色的一个色调,他们人物身体(我选中的部分)就会变成黄色的,其他情况同类。

2:另外光滑操作,我在这里理解是上色更加光滑。

因为我们知道,一个物体其表面会有很多曲线,曲线越多表面其精度越高,具体可以理解下图2,如果曲线的分段长度比较短,那么他们可能会有较多的棱角,如果曲线比较多,比较小,他们会接近光滑。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的图2,可以看见人物模型(我处理过的,比如倒角处理等等),表面有很多纹路,但是图3是一个新建立的立方体,其表面就干净,没有上面曲线,,所以他的棱角也很分明,有8个尖尖的角。

这里我总结下,上面的图我进行的是一个上色操作,每上一次色(如果不重复的花)的过程中会在右边的工具栏里创建一种“材质”,比如你上的是黄色,那这给材质作用于物体就会给物体黄色的“肤色”效果。
那么什么是贴图,贴图原理也是把一种建立和的材质贴到相应的组件上去。
下图是我当时在学虚幻引擎建模的时候的一个截图,图里面的水的波动性是怎么生成的?其实就是预先设计了一种材质,我们可以通过调节密度,反光度,粗糙的,颜色等属性来改变“材质”,使其更好地拟合,贴近我们的目标水的效果。
在这里插入图片描述

(4)在建模软件中,渲染操作更易操作

在这里插入图片描述
在这里插入图片描述
通过上面的介绍,我们已经顺利给我们建立的人物模型进行了上色,并完成了整体布局的渲染。

最后总结:通过建模软件建模,目前还是比较主流的操作,但我也从学习中,发现其对新手的不太友好性,比如如果你非3D建模相关专业,并且学习能力不够强,很难去完成一个简单物体的建模,换句话说成本高,这就导致了其市场的局限性。而随着AIGC的火热,2D图片数据已经是红海了,NLP也是最近各大资本角逐,3D数据方面未来或许将会是资本市场追逐的一个方向,如何方便用户更好地建模,类似抖音帮助用户更快、高效地发短视频一样,会在将来市场占有一定分量的地位。(跑偏了)
回到技术方面:用建模工具,很多操作是水到渠成的,因为Blender软件工程师已经帮你做好了傻瓜式接口,比如模型的倒角操作,图形的建立,贴图,上色操作等等,还有同样重要的灯光、光线渲染操作(与物理引擎有关),上面说的都是别人帮我们做好的。但如果我们想去使用AI去模拟建模,那么上面的每个步骤,大概率就都逃不了了,我比较熟悉的是,光线的模拟(体渲染部分),光线的亮暗,阴影,透射,如何去用算法去表示等等,都是需要很多人其投入时间研究的。虽然三维重建领域最近几年优秀论文层出不穷,但距离未来的市场化操作仍需大家的共同努力!

致美好的未来!

最后,如果我的文章对大家有帮助的话,可以关注我的公众号 《AI知识物语》,会定期更新3D视觉相关工作,论文解读等等,
B站账号 出门吃三碗饭,会更新相关讲解视频,
我的B站
以及我的Github仓库,有需要的话,会把相关代码数据集放在github仓库里面
我的Github

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三维重建入门学习————建模软件Blender入门篇 的相关文章

随机推荐

  • 「雕爷学编程」Arduino动手做(37)——MQ-3乙醇易燃气酒精传感器模块

    37款传感器与模块的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止37种的 鉴于本人手头积累了一些传感器和模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手试试做实验 不管成功与否 都
  • Android studio心得——fragment动态加载

    前言 在Android应用程序中 Fragment是一种可以嵌入Activity中的组件 通过 Fragment 我们可以将UI 目录 前言 一 什么是Android Studio 二 简介Fragment 三 学期知识汇总 四 什么是碎片
  • C++类与对象--static修饰符

    C 类与对象 static修饰符 1 类静态数据成员的定义及初始化 1 1 声明 1 2 初始化 1 3 调用 1 4 案例 1 5 小结 2 类静态成员函数的定义 2 1 声明 2 2 调用 2 3 案例 2 4 小结 3 static
  • 数据库字段类型

    太长时间没有操作数据库 收集了部分有用的资料 一 创建数据表 CREATE TABLE mytable id VARCHAR 4 NOT NULL name VARCHAR 10 sex CHAR 1 createtime DATE age
  • ROS系统

    参考 https blog csdn net qq 28087491 article details 119053810 https www bilibili com video BV1zt411G7Vn spm id from 333 3
  • 静态网页怎样实现动态交互?-JavaScript

    在Html基础上 javascript能够开发交互式web网页 javascript的出现使得网页和用户之间实现了一种实时性的 动态的 交互性的关系 javascript短小精悍 又是在客户机上执行的 大大提高了网页的浏览速度和交互能力 同
  • Python高级培训第三次作业

    任务 作业 import threading 导入threading库 import time 导入time库 class Get time object 创建类Get time 用于获取当前时间 def init self each ti
  • “msg“:“Request method ‘GET‘ not supported“,“code“:500原因及解决

    GetMapping add parentId 这里的路径纠错 漏 了 controller 缺少add的保存方法 GetMapping add parentId 及其以下 Html出现错误 如下图
  • B树及其基本操作、B+树的基本概念

    B树及其基本操作 B 树的基本概念 1 B树 B 树的基本概念 1 B树的基本概念及性质 2 B 树的基本概念及性质 2 B树与B 树的区别 3 B树的基本操作 1 B树的查找 2 B树的插入 3 B树的删除 1 B树 B 树的基本概念 1
  • SpringBoot集成海康设备网络SDK

    文章目录 SDK介绍 概述 功能 下载 对接指南 集成 初始化项目 初始化SDK 初始化SDK概述 新建AppRunner 新建SdkInitService 新建InitSdkTask 新建 HCNetSDK 调用业务接口 部署 拷贝so库
  • 解决鼠标右击菜单的新建中没有“文本文档”的问题

    解决鼠标右击菜单的新建中没有 文本文档 的问题 原创 丶无殇 2022 2 12 注意 博主测试平台为WIN10系统 其他系统不保证一定可以 一 问题现象 在桌面右击打开新建菜单时没有文本文档这个选项 二 问题原因 有以下可能 安装某个软件
  • 单链表的数据结构和基本操作

    单链表的基本操作 头结点单链表的基本操作 头结点单链表的数据结构 头结点的初始化 插入新结点 头插法插入新结点 尾插法插入新结点 按位置插入新结点 删除节点 头删 尾删 按位置删 头指针单链表的基本操作 实现代码 链表是一种线性结构 在存储
  • UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类

    翻译自Udemy的视频课程introduction to unreal engine 4 ability system Build Basic Classes 创建基础类 1 创建工程和人物设置 01 创建Git仓库 使用UE4 22 VS
  • CUDA学习(二十三)

    Direct3D互操作性 Direct3D 9Ex Direct3D 10和Direct3D 11支持Direct3D互操作性 CUDA上下文只能与满足以下条件的Direct3D设备互操作 必须使用设置为D3DDEVTYPE HAL的Dev
  • 脚本之抢课脚本

    UserScript name New Userscript namespace http tampermonkey net version 0 1 description try to take over the world author
  • 前后端分离 获取客户端ip_前后端分离交互

    新开一个项目 对最近学的vue进行一个总结 这段时间把前后端通信做掉 后端 介绍下使用到的工具类 请求工具 postman 后端框架 springboot 这里顺便做了个模块化 把通用工具集放common模块中 但是这里有个问题 其实我自己
  • QT入门Input Widgets之QComboBox

    目录 一 界面布局功能 1 界面位置介绍 2 界面常用操作属性 2 1基本属性 2 2添加子项目 二 属性功能介绍 1 代码添加item 2 批量插入 3 设置当前显示的索引 4 清除掉所有item 5 切换item获得索引值与当前文本 三
  • 云服务器下centos7.3 nginx动态负载均衡

    nginx动态负载均衡 什么是nginx动态负载均衡呢 传统的负载均衡 如果Upstream参数发生变化 每次都需要重新加载nginx conf文件 因此扩展性不是很高 所以我们可以采用动态负载均衡 实现Upstream可配置化 动态化 无
  • 关于小贷公司与平台合作的一点感想

    一 1 有人说小额贷款行业经过了革命浪漫主义 传统信贷 数据 数据爆炸几个阶段 现在应该是平台合作阶段了 且不说这样的论述有推销数字化平台服务之功利性 小贷行业不过10年出头 一个行业阶段的孕育 发展到变革是漫长的 哪有那么多阶段 2 我认
  • 三维重建入门学习————建模软件Blender入门篇

    背景介绍 关于近期在进行三维重建相关算法学习的时候 学得越深 发现对各个方面的知识要求得越多 之前是补了相机的拍照原理 成像原理知识 再后来还补了主流的点提取 匹配算法等等 到了最近 论文 抑或是其他技术性文章出现的纹理 贴图等等词 总会让