41.高级纹理-程序纹理-程序纹理是什么
41.1 知识点
程序纹理是什么
程序纹理(Procedural Textures)是通过程序代码动态生成的纹理。与传统的纹理不同,传统纹理通常是由美术人员事先制作好的图片,例如:
- 颜色纹理
- 法线纹理
- 渐变纹理
- 高光遮罩纹理
即便是在高级纹理中使用的立方体纹理或渲染纹理,它们也通常是基于摄像机所看到的内容生成的。而程序纹理则是通过程序员编写代码实时生成的纹理图片。这种纹理的可控性和自由度远远大于其他传统的纹理。
程序纹理如何生成
程序纹理可以通过以下两种方式生成:
- 通过 C# 脚本生成纹理:先在 C# 脚本中生成纹理,然后将其传递给 Shader 进行渲染。
- 直接在 Shader 中自定义生成纹理:在 Shader 中编写逻辑来动态生成纹理。
在接下来的课程中,我们会详细讲解这两种生成程序纹理的方式,并且通过一个具体的例子(动态生成国际象棋棋盘格)来展示这些技术。
程序纹理的好处
由于程序纹理是由程序员通过代码动态生成的,它具备以下几个显著优点:
- 无需存储大文件:程序纹理在运行时生成,避免了存储大尺寸纹理文件的需求,可以生成任意分辨率的纹理。
- 实时调整:程序纹理可以根据需求调整参数,动态更改纹理的外观。
- 无缝平铺:通过适当的函数设计,可以生成无缝的平铺纹理。
总体而言,程序纹理的最大优势就是其高度的自由度和可控性,允许开发人员灵活地根据需求生成和修改纹理。
41.2 知识点代码
Lesson41_高级纹理_程序纹理_程序纹理是什么.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson41_高级纹理_程序纹理_程序纹理是什么 : MonoBehaviour
{
void Start()
{
#region 知识点一 程序纹理是什么
//程序纹理(Procedural Textures)
//顾名思义
//就是通过程序代码生成的纹理
//我们之前学习的大部分纹理,一般都是美术同学提前制作好的图片
//比如
//颜色纹理、法线纹理、渐变纹理、高光遮罩纹理等等
//就算是在高级纹理中学习的立方体纹理、渲染纹理,他们也是根据摄像机看到的内容生成的
//而程序纹理是由我们程序员编写代码,动态生成的纹理图片
//它的可控性和自由度,都远远大于我们之前学习的其他纹理相关内容
#endregion
#region 知识点二 程序纹理如何生成
//一般生成程序纹理由两种方式:
//1.通过C#脚本生成纹理后传递给Shader
//2.直接在Shader代码中自定义逻辑生成纹理
//我们将在之后的课程当中分别讲解用这两种方式
//我们将以动态生成国际象棋棋盘格举例
#endregion
#region 知识点三 程序纹理的好处
//程序纹理由于是由我们程序员写代码动态生成的
//因此它具备以下优点:
//1.由于是动态生成,不需要存储大文件,可以在运行时生成任意分辨率的纹理
//2.可以根据需求调整自定义参数,实时的更改纹理外观
//3.通过适当的函数设计,可以生成无缝平铺的纹理
//总体而言
//程序纹理的最明显好处就是自由度高,可控性强
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com