zoukankan      html  css  js  c++  java
  • [Unity] Shader(着色器)之固定管线

    在Unity中,固定管线Shader的性能是最好的。

    什么是固定管线呢?

    固定渲染管线 —— 这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。

    下面是一个固定管线Shader的示例:

    Shader "Sbin/ff1" {
        // 固定管线
        properties {
            // 变量名("描述名",类型)=值
            _Color("主体", color)=(1,1,1,1)
            _Ambient("环境光", color)=(0.3,0.3,0.3,0.3)
            _Specular("高光", color)=(1,1,1,1)
    
            // 变量名("描述名",range(区域最小值,区域最大值)=默认值
            _Shininess("高光强度",range(0,8))=4
            _Emission("自发光", color)=(1,1,1,1)
        }
    
        SubShader {
            pass {
                //color (1, 1, 0, 1)
                //color[_Color]
    
                material {
                    diffuse[_Color]
                    ambient[_Ambient]
                    specular[_Specular]
                    shininess[_Shininess]
                    emission[_Emission]
                }
                lighting on
                separatespecular on  // 镜面高光
            }
        }
        // FallBack "Diffuse"
    }

    关键字:

    material : 物体材质属性

    diffuse : 主体颜色

    ambient : 环境光颜色

    specular : 高光颜色

    shininess : 高光强度, 越光滑的物体, 高光强度值应该越大。

    emission : 自发光颜色

    效果图:

    【官方文档中的一些说明】

    Properties 语法

    Properties { Property [Property ...] }


    Numbers and Sliders 数字和区域滑块

    name ("display name", Range (min, max)) = number
    name ("display name", Float) = number
    name ("display name", Int) = number


    Colors and Vectors 颜色和顶点

    name ("display name", Color) = (number,number,number,number)
    name ("display name", Vector) = (number,number,number,number)


    Textures 纹理

    name ("display name", 2D) = "defaulttexture" {}
    name ("display name", Cube) = "defaulttexture" {}
    name ("display name", 3D) = "defaulttexture" {}


    Example (示例)

    // properties for a water shader
    Properties
    {
        _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07 // sliders
        _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.5
        _RefrDistort ("Refraction distort", Range (0,1.5)) = 0.4
        _RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color
        _ReflectionTex ("Environment Reflection", 2D) = "" {} // textures
        _RefractionTex ("Environment Refraction", 2D) = "" {}
        _Fresnel ("Fresnel (A) ", 2D) = "" {}
        _BumpMap ("Bumpmap (RGB) ", 2D) = "" {}
    }
     
  • 相关阅读:
    经验总结
    C#小技巧收集总结
    随笔
    看盘做短线的10种方法(转)
    dvbbs 7.1版块图标感应渐变效果 From www.jfeng.cn
    动网的个人文集、个人精华
    dvbbs 文件Dv_News.asp 的外部调用
    动网论坛多系统整合Api接口程序 PDO通行接口开发人员参考规范1.0
    动网首页登陆入口调用
    ASP 有关整合动网论坛的问题
  • 原文地址:https://www.cnblogs.com/yangyxd/p/5348668.html
Copyright © 2011-2022 走看看