Unity3D中的shader渲染通道基础知识
来源:互联网 发布:在一周内狂瘦大腿 知乎 编辑:程序博客网 时间:2024/05/01 21:59
1.Unity中配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的效果框架语法,它描述了材质所必须要的一切咨询,而不仅仅局限于平面顶点/像素着色。
2.在Unity3D中创建一个Shader:Assets -> Create -> Shader
3.创建了Shader就可以应用到各个材质Material中,创建材质:Assets -> Create -> Material。然后就可以在材质的Inspector面板中,shader下拉框中可以找到新增加的shader unity3d教程
4.Rendering Paths是Unity3D中一个重要的概念,中文翻译就是“渲染通道”。它可以很大程度上影响光线和阴影的渲染效果,但具体要依赖于具体的游戏内容和硬件设备,以及平台。Unity3D中有三种渲染通道类型,从高到低分别为:Deferred Lighting,Forward Rendering,Vertex Lit。如果平台或设备显卡不能支持高级别的通道类型,Unity3D会自动选择稍微低一些的类型。
三种类型的细节比较,详情看参考手册。
5.如何设置渲染通道:在Edit -> Project Setting -> Player中Inspector面板下面,三种发布类型里都有一个渲染通道的设置。
另外,每个摄像机的Inspector面板中,也都有一个渲染通道Rendering Path的设置。
6.渲染通道与shader的关系。
Deferred Lighting通道类型不关心有多少个光源会影响它,每个物体一般都会绘制两次;类似地,Vertex Lit 只绘制一次。所以对于这两种类型来说,shader对表现效果的改变大多在于多重纹理方面。unity3d教程分享
Forward 通道类型的表现效果要取决于shader和场景中的光源。它有两种基本的计算方式Vertex-Lit 和 Pixel-Lit。可以翻译为逐顶点渲染法和逐像素渲染法吧应该,对应着D3D中的顶点着色和像素着色过程。
Vertex-Lit 用于对网格模型表面顶点进行光照计算,一次性将所有光源的影响都计算在内,所以无论场景中有多少个光源,这种方式绘制的物体只绘制一次。
Pixel-Lit 会计算每个像素上面最终的光照,因此一个物体必须先呗绘制一次来获得环境光和主方向光的光照信息,再绘制一次来获得其他每个额外的光源信息。应用Pixel-Lit的物体的大小也会影响绘制的效率,越大的物体,绘制越慢。
Vertex-Lit 的开销大于Pixel-Lit,但是Pixel-Lit可以提供很多非常好的效果。
7.Unity3D中的shader是通过改变那些直接影响游戏对象的材质来使用的。
8.一个shader可以被应用于多个材质中,但一个材质只能应用一个shader。
9.一些shader被写入了Unity3D底层里,一部分作为内建shader被放置于standard assets里,可供用户使用
0 0
- Unity3D中的shader渲染通道基础知识
- Unity3D中的shader基础知识
- Unity3D中的shader基础知识
- 在Unity3D中的渲染优化-优化Shader
- Unity3D--shader基础知识
- unity3d渲染通道的相关翻译知识
- Unity3D中的shader进阶
- Unity3D中的Shader
- unity3d 双面渲染shader的编写
- Unity3d shader编程 VertexLit渲染路径
- Unity3d shader编程 Forward渲染路径
- [Unity3D]Shader学习笔记之渲染流水线
- 详解Unity3D Shader开发之渲染管线
- Unity3D之高级渲染-Shader Forge
- Unity3D 屏幕空间雪场景Shader渲染
- Unity3D Shader官方教程翻译Unity3D 的渲染管道
- Unity3D Shader官方教程翻译Unity3D 的渲染管道
- Shader 什么是Unity中的渲染路径
- 【转】手机连接pc,驱动装好,但adb devices找不到设备
- 2014 UESTC Training for Search Algorithm K
- 什么是rd
- 经典c程序(0028)---最长假期
- ERROR: Unable to open class file R.java :No such file or directory
- Unity3D中的shader渲染通道基础知识
- Magento admin Grid columns 取到的值二次处理,譬如取到的category_id 得到名字
- 严重: IOException while loading persisted sessions: java.io.EOFException
- 2014 UESTC Training for Search Algorithm L
- Android Application生命周期学习
- C++指针和引用
- 获取02字段与85字段
- 设计模式【3】:抽象工厂【创建对象】
- 飞鸽传书app出错