ShaderLab: Legacy Lighting

原文链接:https://docs.unity3d.com/Manual/SL-Material.html

        材质和光照参数用于控制内置的顶点光照。顶点光照是为每个顶点计算的标准的Direct3D/OpenGL光照模型。Lighting on将其打开。光照受Material语句块,ColorMaterial,和SeparateSpecular命令影响。

        请注意:材质/光照命令当使用顶点片段shader时将不起作用,因为在这种情况下所有的计算将完全在shader中被描述。目前建议使用可编程的shader来代替传统的顶点光照。这样你就可以不用在这里使用命令来描述,然后你可以定义自己的顶点片段shader来控制所有的光照,纹理等等。

        对于任何被渲染的几何体,顶点颜色和光照是第一个被计算影响的。它在顶点级别运行,并且计算在纹理采样前的基础颜色。


语法

        上层的命令控制是否使用固定管线光照,以及其他一些配置选项。主要是建立Material语句块,详细信息请见下文。


Color

Color color

        将对象设置为纯色。颜色可以是圆括号中的四个RGBA值,也可以是方括号中的颜色属性名称。


Material

Material {Material Block}

        Material语句块用于定义对象的材质属性。


Lighting

Lighting On | Off

        为了使在Material语句块中定义的设置生效,你必须使用“Lighting On”命令来启用光照。如果光照被关闭,则直接从Color命令中获取颜色。


SeparateSpecular

SeparateSpecular On | Off

        这个命令使镜面高光光照被添加到shader的pass的最后,这样镜面高光光照就不会被纹理影响。只有当光照被开启时它才有效果。


ColorMaterial

ColorMaterial AmbientAndDiffuse | Emission

        使每个顶点的颜色被用来代替材质中设置的颜色。AmbientAndDiffuse代替材质中环境光和漫反射的值,Emission替换材质中自发光的值。


Material Block

        这包含了材质如何与光照做出反应的设置。这些设置都可以被忽视,在这种情况下会默认为黑色(比如没有任何影响)。

        Diffuse color:漫反射颜色组件,这是一个对象的基础颜色。

        Ambient color:环境光组件,这是对象在光照窗口中设置的环境光照射到对象时的颜色。

        Specular color:物体的镜面高光反射颜色。

        Shininess number:高光的清晰度,在0和1之间。如果是0则是一块巨大的像漫反射一样的高光,如果是1则是一个小光斑。

        Emission color:物体当不被任何光线照射时的颜色。

        当光照射到物体的完整的颜色是:

环境光 * 光照窗口中环境光强度设置 + (光线颜色 * 漫反射 + 光线颜色 * 镜面反射) + 自发光

        等式(括号内的)的光照部分被所有照射到物体的光重复。

        通常,您希望保持漫反射和环境光颜色相同(所有内置Unity shader都执行此操作)。


例子

        总是以纯红色渲染对象:

Shader "Solid Red" {

    SubShader {

        Pass { Color (1,0,0,0) }

    }

}

        基础的shader使对象为白色并且允许顶点光照:

Shader "VertexLit White" {

    SubShader {

        Pass {

            Material {

                Diffuse (1,1,1,1)

                Ambient (1,1,1,1)

            }

            Lighting On

        }

    }

}

        一个扩展的版本增加了材质的颜色作为材质监视面板中可视化的一个属性:

Shader "VertexLit Simple" {

    Properties {

        _Color ("Main Color", COLOR) = (1,1,1,1)

    }

    SubShader {

        Pass {

            Material {

                Diffuse [_Color]

                Ambient [_Color]

            }

            Lighting On

        }

    }

}

        最后,这是一个完全完备的顶点光照shader(也可以看看设置纹理引用章节,链接见原网页):

Shader "VertexLit" {

    Properties {

        _Color ("Main Color", Color) = (1,1,1,0)

        _SpecColor ("Spec Color", Color) = (1,1,1,1)

        _Emission ("Emmisive Color", Color) = (0,0,0,0)

        _Shininess ("Shininess", Range (0.01, 1)) = 0.7

        _MainTex ("Base (RGB)", 2D) = "white" {}

    }

    SubShader {

        Pass {

            Material {

                Diffuse [_Color]

                Ambient [_Color]

                Shininess [_Shininess]

                Specular [_SpecColor]

                Emission [_Emission]

            }

            Lighting On

            SeparateSpecular On

            SetTexture [_MainTex] {

                Combine texture * primary DOUBLE, texture * primary

            }

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容