Shader 简单认识合成材质球

本文详细介绍了Unity中的Unlit/Plane材质的Shader编程,包括其属性设置、顶点着色器和片段着色器的实现,以及如何处理纹理和多细节层次(LOD)。
摘要由CSDN通过智能技术生成

Shader "Unlit/Plane"//路径
{
    Properties//公开的属性
    {
        //变量名 (“显示名称,类型)=默认值
        _MainTex ("Texture", 2D) = "white" {}
        _EndTex ("EndTexture", 2D) = "white" {}
        _H ("height", Float) = 10
    }
    SubShader
    {
        //标签{渲染类型=不透明的} 这只是其中一种类型
        Tags { "RenderType"="Opaque" }
        LOD 100 //多细节层次

        Pass 
        {
            //开启CG程序
            CGPROGRAM
            //启用顶点着色器
            #pragma vertex vert
            //片元着色器
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog
            //unity CG库
            #include "UnityCG.cginc"
            //传入的数据 结构体
            struct appdata
            {
                //顶点坐标
                float4 vertex : POSITION;
                //uv坐标
                float2 uv : TEXCOORD0;
            };
            //定义顶点着色器的返回值
            struct v2f
            {
                float2 uv : TEXCOORD0;
                float3 pos:VECTOR;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };
            //声明变量(传入的变量声明)
            sampler2D _MainTex;
            sampler2D _EndTex;
            float4 _MainTex_ST;
            float  _H;


            v2f vert (appdata v)
            {
                v2f o;       //转换为屏幕坐标
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.pos=v.vertex;
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }
            //片元着色器的实现 返回的是颜色
            fixed4 frag (v2f i) : SV_Target
            {
                // sample the texture
                //获取图片上的uv坐标
                fixed4 t1 = tex2D(_MainTex, i.uv);
                fixed4 t2 = tex2D(_EndTex, i.uv);
                fixed4 col = lerp(t2,t1,i.pos.y/_H);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            //结束CG程序
            ENDCG
        }
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 材质高斯模糊shader是一种用于渲染图像的特殊技术。高斯模糊(Gaussian blur)是一种常用于图像处理中的滤镜效果,能够使图像变得更加模糊和柔和。 对于材质来说,高斯模糊shader是一种应用于表面的特殊效果,能够使得材质的外观变得模糊。这种效果常用于创建一些特殊的视觉效果,比如表示景深或者模拟柔和的光线。 高斯模糊shader的基本原理是通过对图像进行多次模糊处理,使用一组叫做高斯核(Gaussian kernel)的卷积矩阵来实现。卷积运算会通过对图像中的每个像素点与该核进行相加的方式创建新的模糊像素。多次进行卷积运算,可以得到更加模糊的效果。 在材质的实现中,高斯模糊shader通常需要设置一些参数,比如模糊的程度和半径。通过调整这些参数,可以达到不同程度的模糊效果。此外,高斯模糊shader还可以与其他shader效果配合使用,从而获得更加复杂的渲染效果。 总的来说,材质高斯模糊shader是一种非常常用的图像处理技术,可以应用于各种需要模糊效果的场景。它不仅能够增强图像的柔和感,还可以用于创造出更加艺术化的视觉效果。 ### 回答2: 高斯模糊shader是一种常用的图像处理技术,用于在计算机图形中创建模糊效果。它使用高斯函数来对每个像素周围的像素进行加权平均,以模拟出焦点外的图像模糊。 材质高斯模糊shader是将高斯模糊应用于物体的表面材质,以产生模糊的外观效果。通过将高斯模糊shader应用于物体的材质,可以在渲染过程中实时模糊物体的外观,从而实现一些特殊的视觉效果。 使用材质高斯模糊shader可以带来一些实际的应用。例如,在游戏中,可以用它来实现物体的动态模糊效果,比如快速移动的车辆或人物,可以通过高斯模糊使其看起来更加流畅,减少运动模糊。 另外,高斯模糊shader还可以在电影特效中使用,例如用于在影片中创建屏幕上的文字模糊效果,使其在画面中更加和谐统一。 通过调整高斯模糊shader的参数,可以实现不同的效果。可以通过改变模糊半径来调整模糊的程度,通过改变方向和强度来调整模糊的方向和强度。 总之,材质高斯模糊shader在计算机图形和视觉效果中扮演着重要的角色。它通过模拟模糊效果,可以使物体看起来更加真实和流畅,从而提升渲染的质量和观感。 ### 回答3: 材质高斯模糊shader是一种可用于渲染引擎中的特殊shader程序,用于实现高斯模糊效果。高斯模糊是一种常用的图像处理技术,其原理是对图像中的像素进行加权平均,以降低图像细节并模糊图像。 在材质高斯模糊shader中,首先需要确定模糊的程度。通过调整高斯函数中的标准差来实现模糊的强度,标准差越大,模糊效果越明显。 然后,shader程序会根据标准差计算出一组权重值,这些权重值代表了每个像素所需的模糊程度。通常使用二维高斯函数来计算权重值,较远的像素权重较小,较近的像素权重较大。 接下来,shader会遍历每个像素,并根据权重值对周围像素进行加权平均。这样,每个像素所得的模糊值就是周围像素的加权平均值。通过循环迭代多次,可以增加模糊效果的强度。 最后,将计算得到的模糊像素值应用到渲染的场景中,以实现高斯模糊效果。 总之,材质高斯模糊shader是一种能够实现图像模糊效果的特殊shader程序。通过计算周围像素的加权平均值,可以实现不同程度的模糊效果,使渲染的图像看起来更加柔和和模糊。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值