| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> unity3d学习笔记-着色器(1.一些概念) -> 正文阅读 |
|
[游戏开发]unity3d学习笔记-着色器(1.一些概念) |
一、网格1.定义网格是 GameObject 的 3D 骨架。Unity 中的每个 GameObject 都有一个网格。它是对象的几何元素。 2.结构网格是由顶点(单数:vertex )定义的一系列平面 2D多边形,这些顶点是 3D 空间中存储为 XYZ 坐标的点。 如果 3D 对象仅由 2D 多边形制成,那么它将像钻石或其他宝石一样刻面。3D 网格需要额外的信息才能使它们在某些地方显得平滑或弯曲。
网格数据还包括法线,它们是定义表面所面对方向的附加值。当所有法线都垂直于边缘时,形状看起来平坦且多面,如上图所示。
法线表示多边形的形状;例如,它是弯曲的而不是平坦的,以及它是如何弯曲的。着色器根据法线将网格渲染为弯曲的,而不实际更改网格。球体实际上是由许多平面组成的网格,但它的法线使表面看起来很光滑。
3.相关组件网状过滤器组件 Mesh Filter 组件指向您项目中的网格坐标数据。 网格渲染器组件
Mesh Renderer 组件是您指定如何渲染网格的地方。
?二、渲染与渲染管线(render?and?pipeline)1.渲染渲染是获取三维 (3D) 数据并使用它为屏幕生成二维 (2D) 图像的过程。
进一步分解:
在 Unity 中,我们可以定位 3D 模型,将材质应用于这些模型,并将虚拟相机对准它们。渲染是获取所有数据(对象几何、位置、颜色、照明等)并从相机的角度生成图像。
2.渲染管线如果渲染是从 A 点到 B 点(3D 数据到 2D 图像)的过程,那么您可以将渲染管道视为到达那里的不同方式。 由于每个渲染管线使用不同的技术和计算来生成 2D 图像,因此结果可能会有所不同,具体取决于选择的管线 三、着色器?1.定义着色器是一个脚本,它应用材质中包含的属性来将 3D 对象的网格渲染到屏幕上的 2D 图像。 每个着色器都是为特定的渲染管道编写的。 2.shaders and materials的关系着色器定义了表面的外观,而材质定义了它的外观? ?四、反射1.漫反射:Base Map(Albedo或Diffuse Map)什么是反照率(Albedo)?
反照率一词描述了漫反射的测量。它通常指定为常规颜色,表示为红色、绿色和蓝色的三个值(RGB 值)。RGB 值可以转换为色调、饱和度和亮度(亮度)的值。反照率颜色的亮度对应于漫反射的量,色调和饱和度描述了从表面逸出的光的质量。
为什么叫地图(Map)?地图可以是纯色的,也可以用 2D 图像指定以增加表面的变化。您用于设置 Base Map 属性的颜色选择器仅将所选颜色应用为纯色。 2.镜面反射:Specular、smoothness高光不同于平滑度。我们可以把一个红苹果打磨到非常光滑,但它永远不会变成金属。然而,为了有任何镜面反射,一个光滑的物体必须有一些镜面反射。 下图中的苹果具有相同的平滑度,但增加了高光度。 ?Specular、Metallic镜面反射作为材料的一种属性,是一种指定表面看起来像金属的方法。您可以使用两种工作流程来指定材质中的金属外观——Specular、Metallic Metallic 工作流程更常见,因为它更易于使用,但它并不科学。高光工作流程基于真实世界的反射率原理,但彩色高光贴图使其更具挑战性。 3.平滑度smoothness平滑度,也称为光泽度或光泽度,使镜面反射成为焦点。从光滑的表面,光线以均匀的方式反射,因此您可以在反射中看到光源的形状。 在下图中,所有五个苹果的金属色设置均为 0.5,平滑度增加。在最光滑的一张上,我们可以看到桌子的灯光和反射。
五、贴图、纹理(Maps、textures)1.什么是纹理?定义:贴图是 2D 图像,它像一张纸一样环绕游戏对象,以设置网格中的颜色、镜面反射或金属度、物理纹理和其他属性。包含地图的图像文件称为纹理。
纹理是您可能熟悉的格式的常规图像文件,例如 BMP、TIF、PNG 和 JPG。
图像文件中的数据被组织成通道。
黑白图像,也称为灰度图像,只有一个通道来指示每个像素中的灰度阴影。
彩色图像需要三个通道,红色、绿色和蓝色 (RGB),它们结合起来可以创建您在计算机显示器上看到的颜色。
某些图像文件格式有四个通道:红色、绿色、蓝色和 alpha (RGBA)。Alpha 通道通常包含透明度数据。
2.底图纹理base map textures
底图纹理(也称为漫反射或反照率)是一个常规 RGB 或 RGBA 彩色图像文件,用于定义对象表面的漫反射(即颜色)。
底图还可以在地图的 Alpha 通道中包含透明度信息。
用于改变颜色将纹理从 Project 窗口拖到材质的Base Map属性左侧的空框中; 尝试使用颜色选择器设置基色来为底图纹理着色。通常你会希望这种颜色是白色的,这样它就不会改变纹理颜色,但有时着色会很有用。 3.平铺纹理Tiled textures平铺纹理的纹理设计为围绕任何网格平铺。每个文件中的地图就像地板上的瓷砖一样简单地重复。 属性: 平铺是网格表面上每单位的平铺数量。数字越大,图案越小。
偏移从不同的点开始平铺。例如,0.5 的 X 偏移将平铺偏移纹理宽度的一半。
4.UV贴图纹理对于像球体这样的基元和像我们的块这样的简单形状,纹理贴图在哪些点与对象的网格对齐并不重要。但是在角色模型等详细对象上,纹理贴图与网格的对齐非常重要! 纹理如何环绕网格?在建模应用程序中创建 3D 模型时,应用程序使用称为UV 映射的过程生成这些纹理。 UV 映射是展开 3D 模型的表面以创建平面,然后对其应用 2D 纹理贴图的过程。在此过程中,建模应用程序生成 UV 坐标,允许将纹理回绕到模型上。 待续。。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 16:35:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |