UsePass & GrabPass】的更多相关文章

[UsePass] The UsePass command uses named passes from another shader. [Syntax] UsePass "Shader/Name" Inserts all passes with a given name from a given shader. Shader/Name contains the name of the shader and the name of the pass, separated by a sl…
Shader也叫着色器,是Unity里面比较难的一个点,网上有很多别人写好的shader,我们可以下载下来用或者修改学习. Shader可以做出很多非常不错的效果,因为它是插在渲染管道里面的程序,一来是性能好,是GPU执行的,不需要CPU再去做额外的处理,二来就是可控性强,可以控制到每个顶点,每个像素的着色. 比如把一张图片置灰,插入一个像素Shader,每个像素在纹理着色的时候把整个RGBA求一个灰度出来,这样就变成一个灰色的图片,这就是一个典型的像素Shader的使用. Shader 1:…
(一)UsePass 命令 使用 来自另一个着色器的命名通道. Syntax 语法 UsePass "Shader/Name" 插入所有来自给定着色器中的给定名字的通道.Shader/Name包含了通过斜杠字符分割的着色器的名字和通道的名字 某些着色器重用其他着色器中已存在的通道,减少重复的代码.例如,在许多像素光照着色器中,阴影色或顶点光照通道在在相应的顶点光照着色器中是相同的.UsePass命令只是包含了另一个着色器的给定通道.例如当如下的命令可以使用内置的高光着色器中的名叫&qu…
GrabPass截屏 可以用来截屏,截屏后把纹理传给下一个通道使用. 1:使用抓屏通道, GrabPass {} 或 GrabPass { “ 纹理名称”}; 使用GrabPass {}后,可以用_GrabTexture访问截屏的纹理2: 后续的Pass通道使用这个抓屏;3: 编写案例 (1): 创建一个顶点片元着色器; (2): 将这个着色器放到Overlay队列 (3): 使用GrabPass通道截屏,并定义好变量来接收 (3): 设置顶点的UV坐标; (4): 着色使用截图的纹理 Grab…
转自:http://blog.sina.com.cn/s/blog_89d90b7c0102va4m.html 最近在看热扭曲效果,里面用到了GrabPass. 之前看过官方翻译版本的说明http://blog.sina.com.cn/s/blog_89d90b7c01019run.html 但是还是无法理解GrabPass{}是捕捉物体后面的屏幕纹理,还是整个屏幕的纹理,至于为什么,可以看下面的例子,如果你知道原因求分享... 1.固定管线版本: Shader "Custom/Grab&quo…
Shader "name" { [Properties] Subshaders [Fallback] } 定义了一个着色器.着色器拥有一个 Properties 的列表.着色器包含一个子着色器的列表(SubShaders).并且至少包含一个(SubShader).当加载一个着色器时,Unity 将遍历这个列表,获取第一个能被用户机器支持的着色器.如果没有子着色器被支持,Unity 将尝试使用降级 Shader(Fallback ). 一.着色器文件中的 Properties 块定义了这…
Shader "name" { [Properties] Subshaders [Fallback] }(1)Properties:{ Property [Property ...] } 属性列表,如color.texture.float等. name ("display name", Range (min, max)) = number name ("display name", Color) = (number,number,number,n…
一.子着色器 Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 我们知道,子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态.子着色器的写法如下: Subshader{ [Tags] [CommonState] Passdef [Passdef ...] } 也就是通过可选标签,通用状态 和 一个Pass 定义的列表构成了子着色器. 当Unity选择用于…
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 在了解了渲染流水线之后,我们可以开始SubShader的学习了. 什么是SubShader 我们在1.1节中提到: SubShader:SubShader是Shader代码的核心部分.由于运行终端的不同,其所能支持的渲染等级也是不同的,所以我们在必要时可以编写多个SubShader,Unity会为我们从上到下寻找并使用终端所能支持的第一个SubShader.在SubSha…
第1篇 基础篇 第1章 欢迎来到Shader的世界 第2章 渲染流水线 第3章 Unity Shader 基础 第4章 学习Shader所需的数学基础 第2篇 初级篇 第5章 开始Unity Shader的学习之旅 第6章 Unity中的基础光照 第7章 基础纹理 第8章 透明效果 第3篇 中级篇 第9章 更复杂的光照 第10章 高级纹理 第11章 让画面动起来 第4篇 高级篇 第12章 屏幕后处理效果 第13章 使用深度和法线纹理 第14章 非真实感渲染 第15章 使用噪声 第16章 Unit…