Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院

Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况。使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似。

例一:显示单一颜色
下面我们来看第一个例子,显示单一颜色,注释写得挺详细了,照着格式写即可。

//根Shader
Shader "Custom/1_1color" {
   // 属性
    Properties {
        //定义一个颜色
        _Color ("Main Color", Color) = (1,.5,.5,1)
    }
    // 子shader
    SubShader {
        Pass {
            Material {
                //显示该颜色
                Diffuse [_Color]
            }
            //打开光照开关,即接受光照
            Lighting On
        }
    }
}

  

例二:显示一张贴图

Shader "Custom/1_2show1texture" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Color("Main color",Color) = (1,1,1,1)
    }
    SubShader {
        Pass
        {
            Material
            {
                Diffuse[_Color]
            }
            Lighting on
            SetTexture[_MainTex]
            {
                //combine color部分,alpha部分
                //      材质 * 顶点颜色
                Combine texture * primary,texture * constant
            }
        }
    }
}

  

例三:两张贴图叠加

Shader "Custom/1_3merge2texture" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _MainTex2 ("Tex2 (RGB)", 2D) = "white" {}
        _Color("Main color",Color) = (1,1,1,1)
    }
    SubShader {
        Pass
        {
            Material
            {
                Diffuse[_Color]
            }
            Lighting on
            SetTexture[_MainTex]
            {
                //      第一张材质 * 顶点颜色
                Combine texture * primary
            }
            SetTexture[_MainTex2]
            {
                //      第二张材质 * 之前累积(这里即第一张材质)
                Combine texture * previous
            }
        }
    }
}

  

时间: 03-10

Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader的相关文章

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第二讲:AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本.导入后其他所有Unity的文件都不会有问题,唯独脚本是没作用的.那能不能用脚本呢? 答案是,可以! 核心是脚本可以打包进Dll,然后在客户端用System.Reflection下的Assembly来加载. 步

Unity3D教程宝典之Shader篇

教程目录 基础讲:Shader学习方法基础讲:基础知识特别讲:常见问题解答特别讲:CG函数 第一讲: Shader总篇第二讲: Fixed Function Shader 第三讲: Vertex&Fragment Shader基础 第四讲: 制作一个美丽的地球第五讲:LOGO闪光效果 第六讲:TexGen第七讲:流程图第八讲:Why CG?第九讲:Render Path第十讲:雾化第十一讲:阴影面剔除及深度测试第十二讲:alpha测试第十三讲:alpha混合第十四讲:Surface Shader

Unity3D教程宝典之Shader篇:第一讲Shader总篇

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言,在Unity3d里,所有的图形绘制都必须通过Shader,即着色器.一般的使用过程中,我们用到的都是unity自带的Shader,即build-in shader.学习Shader后,自己写的Shader能做出很多你想要的特殊效果,增强游戏的画面表现.例如 水的倒影. LOGO的光影闪过等等效果等等. Shader的分类 Shader按管线分类一般分为固定渲染管线与可编程渲染管线 1)固定渲染管线 ——这是标准的几何&光照(Tra

Unity3D教程宝典之Shader篇:第六讲TexGen

转载自风宇冲Unity3D教程学院 介绍 TexGen全称是Texture coordinate generation,即纹理坐标生成.本来模型的纹理坐标是在做模型的时候赋予各个顶点的.但是有时模型表面非常复杂,或者要做一些特效时,就需要其他方法来生成纹理坐标. TexGen主要用于Fixed Function Shader. 有如下模式ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal .  该函数直接对应OpenGL的tex

Unity3D教程宝典之光影烘焙:第二讲AreaLight

Area Light,俗称面灯.没有任何实时光照的效果,仅用于Light baking即烘焙.创建一个Area Light,界面如下 Color:颜色Intensity:强度,Width:宽Height:高 Scale缩放对光没有任何影响.主要是宽高调整面的区域大小.选中Arealight后,Arealight的区域会在Scene窗口中以黄线框显示,AreaLight的Z轴指向的方向即光照的方向. 用AreaLight烘焙室内灯光效果(1)创建一个空场景(2)创建Cube并缩放成扁平面后.复制C

Unity3D教程宝典之Shader篇:第十五讲 光照基础

转载自风宇冲Unity3D教程学院 简单的说,带光照的Shader的最终颜色输出为 材质颜色 * 光颜色,其中 材质颜色:之前已经提到过,固定格式tex2D (_MainTex, i.uv) 光颜色:光颜色 = 自发光 + 环境光 + 漫反射光 + 镜面光 下面详细讲解这四种光 一:自发光 由物体表面向四面八方发出的光 emissive = colorEmissive colorEmissive 自发光的颜色 二:环境光 物体表面接收的来自四面八方发出的光, 然后向四面八方反射 ambient

Unity3D教程宝典之光影烘焙:第一讲光影烘焙

引言:光影烘焙,英文叫Lightmapping 或 light baking.Unity自带了Lightmapping的功能(是Illuminate Labs出的名为Beast的产品).本系列教程分为4讲:第一讲 光影烘焙第二讲 AreaLight第三讲 Light Probes第四讲 脚本控制其中第三第四讲讲解的是动态物体与烘焙后场景的融合.             光影烘焙 打开方式 Window – Lightmapping有几点需要注意:1.所要烘焙物体的mesh 必须要有合适的ligh

2Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载

转载自风宇冲Unity3D教程学院 http://blog.sina.com.cn/s/blog_471132920101crh3.html 引言:想用Unity3D制作优秀的游戏,插件是必不可少的.工欲善其事必先利其器.本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具.为此我写了插件的经验及理论讲解,涉及插件的 学习/辨别/选择/配合.也写了插件的 评测/教程/下载.关于评测,带有一定的主观性,仅供参考.关于教程,热门插件网上已经有很多教程了,本文提供链接,网上资料少的插

Unity3D教程宝典之光影烘焙:第四讲脚本控制

上一讲讲了用Light probes实现动态物体的非实时阴影,这一讲讲用代码实现代码实现动态物体的非实时阴影. 实现步骤:(1)新建一个场景,并建一个plane作为大地(2)创建Cube并缩放成扁平面后.复制Cube并旋转拼接搭建成一个敞篷.(3)讲上述物体设置static并烘焙.(4)创建一个player.这里用的unity自带的Character Controller包里的 3rd person controller这个prefab,拖进敞篷边.在该人物下找到Bip001 Pelvis这个节