全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

深入理解Shader Step

发布时间:2023-11-23 22:47:40
发布人:xqq

一、Shader Step简介

Shader Step是在Unity Shader中的一个特殊函数,它在Shader在渲染时执行。每个Shader都必须包含至少一个pass,这些pass可以使用着色器步骤按顺序调用,以便以正确的顺序执行自定义着色代码。Shader Step在Unity内部被称为Surface Shader Generator。它支持的Shader模型包括了3.0、4.0、5.0和6.0

二、Shader Step的基本结构

Shader Step的基本结构由每个pass中的一个或多个着色器步骤组成,每个着色器步骤都有一个称为和阈值的输入,以及一个输出胡颜色。通常情况下我们使用CGPROGRAM和ENDCG指令将我们的GLSL代码包装在Unity中,这些代码将在此处被编译并注入到当前pass的代码中。在写出一个完整的Shader Step前,我们必须了解它的输入和输出,它们是Shader Step的基本组成部分。

三、Shader Step的输入

Shader Step的输入分为编译时变量和每帧运行时变量两种。

四、Shader Step的输出

Shader Step的输出是一个颜色值。每个着色器步骤的输出都会存储在一组“ Frame Buffer”或“ Render Target”中,可以在几个Render Texture中进行读取和传递。

五、Shader Step的示例代码


        CGPROGRAM
        #pragma surface surf Standard

        struct Input {
            float2 uv_MainTex;
            float3 worldPos;
        };

        sampler2D _MainTex;
        float _Glossiness;
        float _Metallic;

        void surf (Input IN, inout SurfaceOutputStandard o) {
           // Albedo comes from a texture tinted by color
           fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;

           o.Albedo = c.rgb;
           // Metallic and smoothness come from slider variables
           o.Metallic = _Metallic;
           o.Smoothness = _Glossiness;
           o.Alpha = c.a;
        }
        ENDCG

六、Shader Step的深度

Shader Step是Unity中的一个丰富的渲染引擎,提供了多种方法来访问和修改渲染流程。它定义了一个框架,用于在渲染管道的任何位置插入自定义代码。Shader Step的深度反映了它在渲染管道中的位置,较浅的步骤会很大程度上影响着色器的最终输出,而较深的步骤则对渲染性能产生较小的影响。

七、小结

Shader Step是Unity中非常重要的一部分,可以为用户提供多种类型的Shader并在运行时动态地进行渲染。在使用Shader Step时,我们需要关注输入和输出规则,在合适的位置插入自定义代码,并理解每个步骤的深度。希望通过本文的介绍,可以帮助大家更好的理解Shader Step的基本结构和用途。

sqlalchemyupdate

相关文章

input隐藏属性设置用法介绍

input隐藏属性设置用法介绍

2023-11-23
Idea快捷键trycatch

Idea快捷键trycatch

2023-11-23
linux使用代码改成中文乱码,linux修改编码方式

linux使用代码改成中文乱码,linux修改编码方式

2023-11-23
如何在zsh和bash之间切换

如何在zsh和bash之间切换

2023-11-23

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取