构建“元宇宙”,有哪些3D建模方式?

“沉浸、3D世界、虚拟社交、虚拟购物”,最近“元宇宙”的概念特别火。人们畅想通过AR/VR以及其他互联网技术,把现实世界的楼房街道、天气温度、人际关系等投射到虚拟世界,构建“元宇宙”,拥有一个网络分身。这一科幻小说中常出现的场景,如今腾讯、字节跳动、Facebook(已更名为Meta,元宇宙MetaVerse的前缀)等国内外科技公司均开始抢占赛道,重金布局。

但目前来看,要想实现这一构想,开发者们还有很长一段路要走。毕竟“元宇宙”的背后是庞大的3D虚拟世界构建,需要海量且高质量的3D内容支撑,以还原真实世界。本期就和开发者们共同探讨、分享构建3D模型的一些常见方式。

主流方式——3D软件手动建模

3D软件手动建模是主流的建模方式之一。目前,市场上有大量的专业3D建模软件供使用,比如3DMax、Maya、Blender等。不同软件的建模方式多样,包括多边形、曲面、参数、逆向等,分别适用于动画、游戏、室内设计等场景的3D模型创作。

它的优点是所建模型精度高,可发挥想象任意创作。但建模师的学习成本往往很高,制作难度较大,制作周期长。映射到构建“元宇宙”,如果使用3D软件手动建模则需要投入大量的人力。

特殊需求——专业仪器扫描建模

随着3D建模知识的普及以及行业的快速发展,工业、3D打印以及电商等场景都需要运用专业仪器扫描建模,用于模型重建。这一建模方式的主要仪器类型有激光扫描仪、光场扫描仪等。

所谓激光扫描建模,是指通过激光设备反射信号测距,用算法计算出深度数据;光场扫码建模则是通过多相机阵列摄影,或使用专业光场设备扫描建模。它可以模拟出与物体表面一致的反射特性,最大程度还原真实物体材质的颜色、纹理和光泽,提高3D物体渲染的逼真度。

专业仪器扫描建模的速度比手动建模快很多,操作难度较低,可以实现高精度建模。但它的不足在于越高精的仪器设备,成本越高,而且只能根据现实中的物体进行重建,无法虚拟创作。其对现实物体的大小也有一定限制,在建模后仍需专业3D软件进行编辑处理才能投入使用。

各有利弊下,专业仪器扫描建模虽然需要建模师对模型进行修补、优化甚至二次创作,但相比手动建模已经大大减少了工作量,提高了效率。可以说,这不失为一种快速复制真实世界以构建“元宇宙”的方法。

新颖易用——拍照建模

拍照=建模?如果我们在调研某个地点时,能够拍照生成3D场地模型,一定很酷!

拍照建模是一种很新颖的3D建模方式,通过手机或照相机拍摄物体的多张照片,用算法将照片拼接起来,然后自动对齐照片、生成点云、添加纹理,最终形成模型。它的优点很多,仅需数分钟即可完成、无操作门槛、无需购置高精仪器、成本低、效果基本可以还原实物。缺点则为拍照建模的精密度与清晰程度还有待提升,只能根据现实中的物体进行建模,对物体大小、表面纹理等有一定限制。

市场上提供拍照建模的方案提供商有Epic Game的RealityCapture、华为3D建模服务、苹果公司的Object Capture API等。其中,RealityCapture3D建模软件一般需要把按照格式拍摄的照片拷贝到电脑的软件中,再上传处理并编辑,主要应用于游戏开发场景。华为3D建模服务简单易用,通过手机即可实现拍照、模型预览、下载等操作,可为C端用户创造更多建模玩法。

近几年,拍照建模逐渐流行起来。这种可以快速便捷地通过拍照生成表面纹理丰富的逼真物体模型的方式,没有美工与仪器的门槛,更适合消费者个人用户操作。也许,未来通过拍照建模实现“人人都是元宇宙的造物主”概念将不再是梦。

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

推荐文章

C#回收IIS 6的应用程序池错误

C#回收IIS 6的应用程序池错误

推荐文章

onclick事件中无法访问中的任意参数JavaScript函数

onclick事件中无法访问中的任意参数JavaScript函数

推荐文章

presentModalViewController不工作

presentModalViewController不工作

推荐文章

为什么我的ImageBrush缩放平铺图像?

为什么我的ImageBrush缩放平铺图像?

推荐文章

如何使用Java Swing重新映射键盘键?

如何使用Java Swing重新映射键盘键?

推荐文章

当awk用于命令替换以构建shell数组时,如何动态地将文件名传递给awk?

当awk用于命令替换以构建shell数组时,如何动态地将文件名传递给awk?

推荐文章

你是怎么读stdin的?

你是怎么读stdin的?

推荐文章

构建、浏览和链接类别和子类别的PHP教程?

构建、浏览和链接类别和子类别的PHP教程?

推荐文章

为什么ghc要评估我的无限列表?

为什么ghc要评估我的无限列表?

推荐文章

我可以创建一个Rails模型,其中ID从0而不是1自动递增吗?

我可以创建一个Rails模型,其中ID从0而不是1自动递增吗?

推荐文章

这个c++代码有什么问题?

这个c++代码有什么问题?

推荐文章

苹果会将Mono-Touch运行时与每个iPhone捆绑在一起吗?

苹果会将Mono-Touch运行时与每个iPhone捆绑在一起吗?

推荐文章

JVM在gc期间抛出内存,尽管还有足够的内存

JVM在gc期间抛出内存,尽管还有足够的内存

推荐文章

无法将字符串传递给CreateThread接收器

无法将字符串传递给CreateThread接收器

推荐文章

对控制台的格式化,C++

对控制台的格式化,C++

推荐文章

在windows下安装gtk并使用gcc编译?

在windows下安装gtk并使用gcc编译?