• shader学习点记录(一)


    1.uv:A为一张图片信息(A被称为纹理) ,B为一个坐标信息(B被称为UV),拿B取A的纹理

    2.属性声明:_XXX (展示名, 数据类型) = 默认值 数据类型有

    Color - 一种颜色,由RGBA(红绿蓝和透明度)四个量来定义;

    2D - 一张2的阶数大小(256,512之类)的贴图。这张贴图将在采样后被转为对应基于模型UV的每个像素的颜色,最终被显示出来;

    Rect - 一个非2阶数大小的贴图;Cube - 即Cube map texture(立方体纹理),简单说就是6张有联系的2D贴图的组合,主要用来做反射效果(比如天空盒和动态反射),也会被转换为对应点的采样;

    Range(min, max) - 一个介于最小值和最大值之间的浮点数,一般用来当作调整Shader某些特性的参数(比如透明度渲染的截止值可以是从0至1的值等);

     Float - 任意一个浮点数;

    Vector - 一个四维数;

    half类型表示半精度浮点数,计算性能好但是精度低,和float和double是同类型的浮点数;

    fixed4不详,但是大意是四维的矢量

    float2数据类型,这是一个二维float矢量,也就是(a,b)这样的

    sampler2D是个啥?

                              其实在CG中,sampler2D就是和texture所绑定的一个数据容器接口。

                              简单理解的话,所谓加载以后的texture(贴图)说白了不过是一块内存存储的,

                              使用了RGB(也许还有A)通道,且每个通道8bits的数据。而具体地想知道像素与坐标的对应关系,以及获取这些数据,

                我们总不能一次一次去自己计算内存地址或者偏移,因此可以通过sampler2D来对贴图进行操作。
                更简单地理解,sampler2D就是GLSL中的2D贴图的类型,相应的,
                还有sampler1D,sampler3D,samplerCube等等格式。

    3.混合模式

     Background - 最早被调用的渲染,用来渲染天空盒或者背景

    Geometry - 这是默认值,用来渲染非透明物体(普通情况下,场景中的绝大多数物体应该是非透明的)

     AlphaTest - 用来渲染经过Alpha Test的像素,单独为AlphaTest设定一个Queue是出于对效率的考虑

    Transparent - 以从后往前的顺序渲染透明物体

    Overlay - 用来渲染叠加的效果,是渲染的最后阶段(比如镜头光晕等特效)

    4.LOD表示细节呈现级别(也即是画质,即粗糙/细腻程度)列Lod 200 就是机器性能差低于200时shader罢工,性能好大于200时继续工作

    5. #pragma surface surf Standard fullforwardshadows   #pragma surface表面着色器 surffunction着色器的代码(就是surf) lightModel(光照模型) [可选参数]

    6.tex2D就是前面说的"利用UV去取图片获得纹理贴图"的做法  tex2D(贴图纹理,UV)

    7.SurfaceOutput这个结构体里有啥东西 struct SurfaceOutput {

                            half3 Albedo;//像素的颜色

                            half3 Normal; //像素的法向值

                            half3 Emission; //像素的发散颜色

                            half Specular; //像素的镜面高光

                            half Gloss; //像素的发光强度

                            half Alpha; //像素的透明度

                        };

     

     

  • 相关阅读:
    数据分析优化之惩罚性线性回归算法
    数据分析之贝叶斯算法案例
    SSM-CRUD练习
    使用 Code First 迁移以设定数据库种子
    .Net Web Api相关学习内容
    ASP.NET MVC5的学习知识点
    Entity Framework的学习(ASP.NET MVC5的学习中的一部分)
    EFCore框架的学习
    jsp中的<%%>用法
    nginx出现404和403错误
  • 原文地址:https://www.cnblogs.com/jiangxiaoming/p/15838865.html
Copyright © 2020-2023  润新知