[Unity Shader笔记]渲染路径--Forward渲染路径

(2014-04-22 20:08:25)

*ForwardBase、ForwardAdd的LightMode只能运行在Came为Forward、DeferredLighting的渲染模式下
*ForwardAdd这个Pass需要和ForwardBase一起使用,否则会被Unity忽视掉
* ForwardBase只对1个有效灯光执行一次
* ForwardAdd对除了ForwardBase用的那个灯光外的所有有效灯光都执行1次,所以会被执行多次
 
LightMode=Forward中的_WorldSpaceLightPos0,_LightColor0
*灯光在ForcePixel模式下才有效
*如果只有一个平行灯光,ForwardAdd中使用不到灯光数据
*ForwardBase的Pass中,灯光需要是方向光
*ForwardAdd优先点光源,
* ForwardAdd优先灯光比较暗的,ForwardBase优先比较亮的 。他们正好相反

LightMode=ForwardBase(只有这一个的情况下)中的unity_4LightPosZ0[3], unity_4LightAtten0[3], unity_LightColor[3], unity_LightColor3
*只对点光源有效

*灯光在ForcePixel,ForceVertex模式下都有效,ForcePixel的优先
*灯光范围必须覆盖目标

*灯光亮度必须大于0
*对灯光强度排序,亮的优先。
 
LightMode=ForwardBase(包含ForwardAdd,Blend Zero One)中的unity_LightColor[3], unity_LightColor3
*只对点灯光有效
*当只有一个点灯光时ForcePixel,ForceVertex都有效
*当有多个点灯光时,如果其中有是ForceVertex的。则只有ForceVertex有效,ForcePixel无效
*当有多个点灯光时,如果都是ForceVertex。则有效
*灯光数据是在世界坐标内
 
LightMode=ForwardAdd(Blend One Zero)中的unity_LightColor[3], unity_LightColor3
*首先需要有两个ForcePixel的方向光或者一个ForcePixel的点光为前提条件
*需要是ForceVertex的点等光才有效
*当开始有几个满足效果,把他们一个一个设置为不满足时unity_LightColor[3]会残留一个未被清理的数据,所以建议使用unity_LightColor3
 
LightMode=ForwardBase(只有这一个的情况下)中的unity_LightPosition[3], unity_LightAtten[3]
*没有数据

LightMode=ForwardAdd(Blend One Zero)中的unity_LightPosition[3], unity_LightAtten[3]
*没有数据
*有其他材质球时unity_LightPosition[3]会看到那些残留数据
 
说明
*灯光强度:会由灯光的color,intensity,离目标的距离等这些因素影响

[Unity Shader笔记]渲染路径--Forward渲染路径的更多相关文章

  1. Unity Shader笔记

    shader “MyShader”{ Properties{ -CubeMap(“Cube Map” , Cube) = ""{这里可以添加图片渲染模式} } SubShader{ ...

  2. Unity Shader 入门精要学习 (冯乐乐 著)

    第1篇 基础篇 第1章 欢迎来到Shader的世界 第2章 渲染流水线 第3章 Unity Shader 基础 第4章 学习Shader所需的数学基础 第2篇 初级篇 第5章 开始Unity Shad ...

  3. Unity Shader 00 - 梳理 Unity Shader 的基本结构

    0x00 写在前面 之前一直在阅读 The Book of Shaders 一书,为什么会开始写 Unity Shader 呢?一方面,因为该书目前尚未完结,写下此文时已阅读到该书的最新章节:另一方面 ...

  4. Unity Shader 知识点总结(二)

    紧接着上一篇文章的shader入门知识的总结,本文主要总结shader中的纹理贴图.透明度混合.顶点动画.后期特效处理等操作.如果有什么地方有错,请指出更正,谢谢.本文的代码主要来自开源书:unity ...

  5. Unity Shader入门精要学习笔记 - 第2章 渲染流水线

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 2.1 综述 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏 ...

  6. Unity Shader入门精要学习笔记 - 第16章 Unity中的渲染优化技术

    转自冯乐乐的 <Unity Shader 入门精要> 移动平台的特点 为了尽可能一处那些隐藏的表面,减少overdraw(即一个像素被绘制多次),PowerVR芯片(通常用于ios设备和某 ...

  7. Unity Shader入门精要学习笔记 - 第14章非真实感渲染

    转载自 冯乐乐的 <Unity Shader 入门精要> 尽管游戏渲染一般都是以照相写实主义作为主要目标,但也有许多游戏使用了非真实感渲染(NPR)的方法来渲染游戏画面.非真实感渲染的一个 ...

  8. 渲染路径-u3d渲染路径比较

    Unity支持不同的渲染路径.应具体取决于你的游戏内容和目标平台/硬件来选择使用哪一个.不同的渲染路径有不同的特点和性能特点,主要影响灯光和阴影.        项目所使用的渲染路径在Player S ...

  9. 渲染路径-实时渲染中常用的几种Rendering Path

    http://www.cnblogs.com/polobymulberry/p/5126892.html?utm_source=tuicool&utm_medium=referral 回到顶部 ...

随机推荐

  1. js验证手机号码,邮箱,qq号

    function validateMail(str:String) { var re_m = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2} ...

  2. Python学习系列(八)( 面向对象基础)

     Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类 ...

  3. atoi函数的实现——面试

    主要考虑,字符串中是否有非法字符,字符串是否有溢出控制 #include<stdio.h> int myatoi(const char *str){ ,ret=,i=; if(str[i] ...

  4. saiku迁移至mysql步骤

    saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个bean执行org.saiku.service.Database类的i ...

  5. mysql索引相关理解

    1.索引是高效获取数据的数据结构, 2.唯一索引,索引值不重复unique create unique index 索引名 on 表名(字段) alter table 表名 add unique in ...

  6. css loading 效果

    .loading{ width:160px; height:56px; position: absolute; top:50%; left:50%; line-height:56px; color:# ...

  7. java多线程(1) 线程的基本概念

    一.线程的基本概念: 线程是一个程序里面不同的执行路径. 程序里面不同的执行路径,每一个分支都是一个线程.   进程:静态的概念.机器上的一个class文件,机器上的一个exe文件,这叫一个进程. 机 ...

  8. python多分类预测模版,输出支持度,多种分类器,str的csv转float

    预测结果为1到11中的1个 首先加载数据,训练数据,训练标签,预测数据,预测标签: if __name__=="__main__": importTrainContentdata( ...

  9. 命令行创建2003的IP安全策略

      IP安全策略从win2k到2003都有的,图形界面的没什么好说的,如何在命令行下控制IPSec呢?win2k的方法在Do All in Cmd Shell有介绍.这里就拿win2003做例子吧,毕 ...

  10. php 数组去重 (一维数组与二维数组)

    数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: <?php                   $aa=array("apple" ...