Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
来源:互联网 发布:linux dhcp安装 编辑:程序博客网 时间:2024/05/22 17:45
原文地址:http://blog.sina.com.cn/s/blog_6ad33d3501015ckt.html
ShaderLab syntax: SubShader
ShaderLab语法:SubShader
Each shader in Unity consists of a list of subshaders. When Unity has to display a mesh, it will find the shader to use, and pick the first subshader that runs on the user's graphics card.
每个在Unity3D的shader都是由一系列的的subshaders组成的。当Unity3D显示一个网格的时候,它会使用第一个被用户显卡支持的subshader。
Syntax
语法
Subshader { [Tags] [CommonState] Passdef [Passdef ...] }
- Defines the subshader as optional tags, common state and a list of pass definitions.
- 定义subshade包含了可选的标签,常见的状态和通道定义列表。
Details
详情
A subshader defines a list of
一个subshader定义了1个渲染通道列表,并有选择地设置了这些通道的通常状态。此外,subshade也可以设置特定的标签。
When Unity chooses which subshader to render with, it renders an object once for each Pass defined (and possibly more due to light interactions). As each render of the object is an expensive operation, you want to define the shader in minimum amount of passes possible. Of course, sometimes on some graphics hardware the needed effect can't be done in a single pass; then you have no choice but to use multiple passes.
当Unity3D选择1个subshader进行渲染的时候,他将优先渲染1个被每个通道所定义的对象(这个对象很可能是由光线交互决定的)。由于渲染每1个物体是个十分昂贵的操作,你得定义Shader可能操作的渲染通道数目尽可能的少。当然有时候某些华丽的效果在显卡上不可能只使用单通道,你就必须得使用多通道了。
Each pass definition can be a
每个通道的定义可以是1个regular Pass,
Any statements that are allowed in a Pass definition can also appear in Subshader block. This will make all passes use this "shared" state.
在一个通道定义中的任何声明,也可以出现在Subshader块。这样做能使所有的通道都能共享这些声明。
Example
// ...SubShader { Pass { Lighting Off SetTexture [_MainTex] {} }}// ...
This subshader defines a single Pass that turns off any lighting and just displays a mesh with texture named
这个subshader定义了1个单通道,这个单通道关闭了所有的灯光然后显示了1个名字叫_MainTex的纹理网格。
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- Unity3D Shader官方教程翻译(四)
- Unity3D Shader官方教程翻译(三)----Shader语法:属性
- Unity3D Shader官方教程翻译(五)----Shader语法:Pass
- Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass
- Unity3D Shader官方教程翻译(十六)----Shader语法 GrabPass
- Unity3D Shader官方教程翻译(十七)----Shader语法 FallBack
- Unity3D Shader官方教程翻译(三)----Shader语法:属性
- Unity3D Shader官方教程翻译(五)----Shader语法:Pass
- Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass
- Unity3D Shader官方教程翻译(十六)----Shader语法 GrabPass
- Unity3D Shader官方教程翻译(十七)----Shader语法 FallBack
- Unity3D Shader官方教程翻译(三)----Shader语法:属性
- 项目上线GooglePlay存在证书漏洞,导致杯具
- mysql 和 postgres 查看数据库结构命令
- 《Java多线程之CAS》
- zookeeper知识点一(同步创建节点)
- 最小生成树算法和单源最短路径算法
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- SQL Server数据库ROW_NUMBER()函数使用详解
- 图像算法研究---一种简单的YUV转RGB的优化算法
- 类加载及对象创建
- 禁止拖动滚动条的mp4播放器
- 83. Remove Duplicates from Sorted List
- 使用 harbor 搭建 docker 私有镜像仓库
- Android如何设置图标字体 IconFont(HTML图标)
- C++使用ODBC连接数据库时出现无法将SQLCHAR*转换为SQLWCHAR*