zoukankan      html  css  js  c++  java
  • Unity Shader

    1.余弦值和角度成(0-180度) 负相关

      点积值和角度成(0-180度) 负相关

    2.三种着色器区别

    (1)固定管线着色器:比较老的一种着色器,针对高级Shader在老显卡上兼容性不是很友好的时候,使用固定管线

    (2)顶点片段着色器:相对来说比较难的着色器,可以实现复杂的视觉效果

    (3)表面着色器:unity推荐使用的着色器,底层是顶点片段着色器,unity在基础上进行封装,使用起来比较简单,并且官方处理一些光照效果.

    3.着色器书写格式

       Shader "着色器名称"   //给当前着色器命名

    {

    Properties

    {

    //颜色 贴图  颜色区域

    }//属性定义

    SubShader

    {

    }//子着色器1

    SubShader

    {//子着色器2}

    ...

    FallBack"备用着色器名称"

    }

    4.子着色器和FallBack的关系

    程序在执行到第一个子着色器的时候,如果第一个子着色器兼容当前显卡,那么执行第一个子着色器内部代码

    后面的子着色器不再执行

    如果第一个子着色器不兼容,检查第二个,以此类推...直到有一个子着色器可以使用

    如果都不兼容,执行FallBack

    5.固定管线属性定义

    Properties

    {

    名称("显示名称",Vector)=(1,1,1,1)//四维向量值

    名称("显示名称",Float)=0.1//浮点属性

    名称("显示名称",Range(0.02,0.15))=0.07//范围

    名称("显示名称",Color)=(1,1,1,1)//颜色

    名称("显示名称",2D)=""{}//2D纹理

    名称("显示名称",Rect)=""{}//矩形纹理

    }

    6.表面着色器属性

    float:float2  float3   float4

    half:浮点型

    int:整形

    fixed:定点型

    bool

    Sampler2D:纹理类型

    string:

    7.模型上颜色的叠加用的是乘法,环境光的叠加用加法

    8.边缘高光(描边)

    视角和物体的视角向量,观察位置点的法线向量

    视角向量和法线向量的夹角  越接近0   越接近中心   越接近90度   越靠近边缘

    -->余弦值

    视角向量和法线向量的余弦值越接近1,夹角越接近0     余弦值越接近0   夹角越接近90

       余弦值和夹角成负相关    余弦值越小的话  越接近边缘

    -->点积

    视角向量和法线向量的点积    点积值接近1的话   越接近1,夹角越接近0   点积值越接近0 夹角越接近90

       余弦值和夹角成负相关    点积值越小的话  越接近边缘

    9.高光Pong光照模型

    原理:

       计算光的反射向量和  视角向量的夹角,光照强度和点积值  是  正相关

          夹角越小(余弦值越大,点积值越大,越接近1),当前像素点的光越强

          夹角越大(余弦值越小,点积值越小,越接近0),当前像素点的光越弱

  • 相关阅读:
    html自定义加载动画
    数据结构与算法:贪心算法简介
    WEB 前端常用字体和色值你知道多少?
    为什么浮点精度运算会有问题
    Java 字符串格式示例
    使用 Java 和 Maven (JBake) 生成静态网站
    硅谷钢铁侠
    Flink中的5种窗口使用场景
    prometheus-operator监控k8s资源
    fluentd收集k8s集群pod日志
  • 原文地址:https://www.cnblogs.com/qipei/p/10276989.html
Copyright © 2011-2022 走看看