Unity开发者3D模型基础

术语“3D 建模”是指使用特殊软件创建对象或表面的 3D 数字表示的过程。 3D 模型可用于各种不同的目的,包括电影、视频游戏、建筑和工程。 3D 建模也是创建虚拟现实 (VR) 和增强现实 (AR) 体验工作的重要组成部分。

我们通常通过构建或获取 3D 模型并将其导入 Unity(一个 3D 游戏引擎)来创建虚拟现实场景。 在 Unity 中构建场景时,用户查看的每个组件都具有计算机图形管道中的资源遵循的特定层次结构。 他们是:

  • 网格 - 实际的几何形状
  • 纹理 - 位图图像
  • 材质 - 表面的外观(即反光或哑光以及纹理的链接位置)。 这也是着色器应用的区域。
  • 着色器 - 实际发生的计算。 将其视为一个小程序(脚本),帮助获取所有输入项(例如纹理、网格和照明数据)并将它们输出为最终图像

为了进一步解释每个组件,让我们看一下美国最大的电力公司之一创建的虚拟智能家居体验的一些示例。 在这种 VR 体验(及其配套的 AR 体验)中,消费者学习如何通过在整个家庭中进行节能改造来减少碳足迹。

我们要看到的主要模型是下图所示的餐厅。 最终渲染是所有四个组件(网格、纹理、材质和着色器)协同工作的示例。 现在让我们分解每个组件。

Unity 内的最终渲染

1、网格

首先是模型或网格。 这部分很容易理解。 3D 艺术家将在他们选择的建模程序中创建它。 我们使用 Blender,但 Maya、3DS Max 或 C4D 等其他软件也非常合适。3D 模型由众多顶点组成,这些顶点构成多边形,从而赋予 3D 模型形状。 更多的多边形可以帮助使模型更加真实,但太多也会对您正在开发的平台上的性能产生负面影响。

鉴于这是为实时应用程序创建的,多边形数量应保持尽可能低,以帮助最大限度地提高性能。 这对于桌面和移动 VR 来说尤其重要,因为在打造引人入胜的 VR 体验时保持稳定的帧速率至关重要。 这也有助于减少某些人可能经历的晕动病的感觉。

模型完成后,将对其进行 UV 处理、从建模程序导出并导入到 Unity 中。

显示拓扑的模型线框

2、纹理

在我们进一步讨论之前,让我们先退后一步。 创建模型后,必须对其进行 UV 展开。 这只是获取 3D 对象表面并将其放置在 2D 空间中的过程。

Blender 内的 UV 布局

从这里,你可以将模型带入 Substance Painter 等纹理程序中来创建纹理。 使用 Substance Painter 等程序的好处是它允许你导出各种图像,这些图像稍后在 Unity 中设置材质时会很有用。 这些图像可以更轻松地遵循基于物理的渲染(或 PBR),这是一种用于创建更准确渲染的工作流程。

对于标准的 PBR 工作流程,有 4 个主要组成部分:反照率(基色)、粗糙度(光泽程度)、金属性(是否是金属物体)和法线贴图(在不添加更多几何体的情况下伪造细节)。 此外,您还可以使用其他图像,例如环境光遮挡(一种模拟对象之间阴影的方法,在角落和其他紧密区域尤其明显)、发射和高度。

PBR贴图

3、材质

回到 Unity,在我们从纹理程序导出不同的图像后,是时候将它们连接到材质上了。 这些在下面的屏幕截图中进行了说明。 此外,如果你计划在纹理中使用透明度,则可以将表面类型从不透明更改为透明。 一个很好的例子是,如果你正在为游戏制作植物。 可以简单地使用一个平面并应用具有 Alpha 或透明度的叶子纹理,而不是对单个叶子进行建模。

Unity 内部材质和 URP/lit 着色器的一些输入

4、着色器

上面的屏幕截图还显示了方程式的最后一部分 - 使用哪个着色器。 对于 Unity 中的任何材质,你可以指定要使用的着色器(即使用哪种算法或程序来生成最终图形)。 对于我们的餐厅场景,我们使用了通用渲染管道/光照,它使用上一节中描述的 PBR 管道的所有输入。

为了更进一步,你甚至可以使用 Unity 中名为 Shader Graph 的新功能创建自己的着色器! 使用 Shader Graph,用户无需知道如何编码,而是可以通过放置称为节点的预定义代码位来直观地动态构建相同的逻辑。 如果想为特定用例构建特定着色器,这会很有帮助。 下面是两个这样的例子。

  • 示例1

在清洁能源智能家居体验中,我们需要模拟在电磁炉上烹饪汉堡肉饼。对于该模块,用户的任务是将汉堡放在炉子上,以演示电磁炉的特性并展示它如何 只烹饪平底锅上的食物。 为了完成此任务,需要半个煎锅的 3D 模型,以及一个自定义着色器来模拟这种过渡。

演示在电磁炉上烹饪肉饼的着色器示例

  • 示例2

我们在清洁能源智能家居体验中加入的一个设计元素是让全息图在某些时刻淡入和淡出,以帮助说明某些概念。 为了实现这一目标,我们再次需要自定义效果。 为了简洁起见,下面的溶解效果是各种节点的组合,这些节点创建了驱动着色器的 Alpha 透明度阈值的黑白蒙版。

全息图着色器示例

我们使用模型创建、纹理和着色器的工作流程来构建清洁能源智能家居体验中的所有模块和环境。 房子里的一些模块包括:

  • 电动汽车模块,将常规内燃汽车的效果与电动汽车的优点进行比较
  • 暖通空调模块,用户可以观察房屋内空气泄漏对能源效率的影响。
  • 电磁炉模块,比较了电磁炉和传统燃气灶的成本节约和碳排放量

创建或使用 3D 模型时需要考虑和学习的东西还有很多——本文仅触及皮毛。 然而,了解网格、纹理、材质和着色器如何协同工作是开始掌握创建真实 3D 对象和表面所需内容的好方法。 就该项目而言,我们构建了一种体验,允许用户在节能的虚拟智能家居中参与学习模块。 但掌握这四个组件可以让设计师创造出数量难以想象的动态 3D 场景,让用户眼花缭乱、沉浸其中。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

震惊!!原来阻塞队列消息队列这样理解会更简单!!!

震惊!!原来阻塞队列&&消息队列这样理解会更简单!!! 一:阻塞队列二:消息队列2.1:生产者消费者模型2.1.1:解耦合:2.1.2:削峰填谷: 三:消息队列代码3.1.13.1.2:3.1.3:生产慢,消费快,消费阻塞3.1.3:生产快,消费慢,生产阻塞 二级目录二级目录 一:阻塞队列 阻塞队列:先进先出…

信息传播的AI时代:机器学习赋能新闻出版业的数字化之旅

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

Canvas背景绘制-24

本节会详细介绍下,如何绘制面板的背景。 概述 常用的技术称为图块复制(blitting),即从离屏缓冲区中将内容发生变化的那部分背景图像复制到屏幕上,还有其它两种方法是将所有内容擦除并重新绘制&仅重绘内容发生变化的那部分区域。一般是用…

云原生技术精选:探索腾讯云容器与函数计算的最佳实践

文章目录 写在前面《2023腾讯云容器和函数计算技术实践精选集》深度解读案例集特色:腾讯云的创新实践与技术突破精选案例分析——Stable Diffusion云原生部署的最佳实践精选集实用建议分享总结 写在前面 在数字化转型的浪潮下,云计算技术已成为企业运营…

【信号与系统 - 2】傅里叶变换与反变换

1 傅里叶变换与频谱密度函数 非周期信号可以看成是 T → ∞ T\to{\infty} T→∞ 的周期信号 由于 w ↓ 2 π T ↑ w\downarrow\frac{2\pi}{T\uparrow} w↓T↑2π​, T T T 无限大,则基波频率 w w w 无限小,可以视为 d w dw dw 在频谱图…

【Java EE】Maven jar 包下载失败问题的解决方法

文章目录 1. 配置好国内的Maven源1.1配置当前项⽬setting1.2设置新项⽬的setting 2.重新下载jar包3.其他问题⭕总结 1. 配置好国内的Maven源 因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源 接下来介绍, 如何设置国内源 1.1配…

51入门之LED

目录 1.配置文件 2.点亮一个LED 2.1单个端口操作点亮单个LED 2.2整体操作点亮LED 3.LED闪烁 4.LED实现流水灯 4.1使用for循环和移位实现 4.1.1移位操作符 4.1.2使用移位操作和for循环实现 4.2使用移位函数实现LED流水灯 众所周知,任何一个硬件工程师…

检测头篇 | 利用RT-DETR模型的检测头去替换YOLOv8中的检测头

前言:Hello大家好,我是小哥谈。RT-DETR号称是打败YOLO的检测模型,其作为一种基于Transformer的检测方法,相较于传统的基于卷积的检测方法,提供了更为全面和深入的特征理解,将RT-DETR检测头融入YOLOv8,我们可以结合YOLO的实时检测能力和RT-DETR的深度特征理解能力,打造出…

探讨在大数据体系中API的通信机制与工作原理

** 引言 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析 ** 在当今数字化时代,数据已经成为企业发展和决策的核心。随着数据规模的不断增长…

使用CSS计数器,在目录名称前加上了序号,让目录看起来更加井然有序

目录(Text of Contents缩写为TOC),其实就是一篇文章的概要或简述。这好比,去书店买书,先是被这本书的标题所吸引,而后我们才会,翻开这本书目录,看看这本书主要是在讲些什么&#xff…

【详细讲解MNN介绍,安装和编译】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

2024普通人赚钱的两个捷径,价值百万

曾经听人说过这样一句话:很多人赚钱都是靠那一两年突然就赚到了未来十年甚至二十年的钱。但前提是需要你用五年八年甚至十年的时间去沉淀。 曾经我并不能真正理解这句话的含义,直到回头来看自己这些年在互联网的奋斗历程。 阿阳10年就开始在互联网创业&a…