41.程序纹理是什么

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

×

喜欢就点赞,疼爱就打赏