![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Shader
文章平均质量分 60
ccUnity
这个作者很懒,什么都没留下…
展开
-
UGUI - 中设置UISprite图片灰显方法
做Unity开发过程中,有需求让未开启的功能模块的入口灰色显示。因为没有滤镜的概念,所以没flash那么方便。解决思路还是Shader,以前按网上其他帖子的方法,一直没有成功实现过。这两天比较闲一点,专门研究了下,总算成功了。NGUI里已经有Unlit - Transparent Colored.shader。一般打Atlas的时候默认就是这个。如下图。![这里写图片描述](http://img.b转载 2015-11-20 09:57:11 · 2573 阅读 · 0 评论 -
Shader - BindChannels
BindChannels BindChannels命令 允许你指定顶点数据如何映射到显卡中。 可编程顶点着色器使用时,BindChannels将没有效果。在这种情况下,绑定受顶点着色器输入控制。 默认情况下,Unity3D 会为你计算并绑定,但在某些情况下,你要使用自定义绑定。 例如:你可以在第1个纹理处理阶段映射主UV 然后在第2个纹理处理阶段使用次要UV。或者告诉硬件需要考虑顶点颜色Sy原创 2015-11-28 10:51:53 · 607 阅读 · 0 评论 -
Shader - Pass (六)
Pass TagsSyntax 语法Tags { “TagName1” = “Value1” “TagName2” = “Value2” }指定TagName1 的值为 Value1 ,TagName2 的值为 Value2 你可以指定很多你喜欢的标签Details 细节标签基本上是键-值对的形式。 内部的Pass 标签用来控制光照管道(环境光照,顶点关照和像素光照)中pass 的任务和一些其它选转载 2015-11-28 10:40:47 · 723 阅读 · 0 评论 -
Shader - Pass (四)
Alpha testing透明度测试是阻止像素被写到屏幕的最后机会。 在最终渲染出的颜色被计算出来之后,可选择通过将颜色的透明度值和一个固定值比较。如果比较的结果失败,像素将不会被写到显示输出中。Syntax 语法AlphaTest Off:渲染所有像素(缺省)AlphaTest comparison AlphaValue :设定透明度测试只渲染在某一确定范围内的透明度值的像素。Compa转载 2015-11-28 10:21:53 · 467 阅读 · 0 评论 -
Shader - Pass (五)
Blending当图像被渲染时,所有着色器被执行以后,所有贴图被应用后,像素将被写到屏幕。他们是如何通过Blend命令的控制和已有的图像合并呢?Syntax 语法Blend Off: 关闭混合Blend SrcFactor DstFactor:配置并启动混合。产生的颜色被乘以SrcFactor. 已存在于屏幕的颜色乘以DstFactor,并且两者将被叠加在一起。Blend SrcFactor转载 2015-11-28 10:34:07 · 547 阅读 · 0 评论 -
Shader - Pass (三)
Fog 雾化是通过混合已生成的像素的颜色和基于到镜头的距离来确定的一个不变色来完成。雾化不会改变已经混合的像素的透明度值,只是改变RGB值Syntax 语法Fog { Fog Commands } 在大括号中设定雾命令的内容Mode Off | Global | Linear | Exp | Exp2:定义雾模式。缺省是全局的,依据雾在渲染设定中是否打开确定可从无变化到平方值Color C转载 2015-11-27 12:54:41 · 387 阅读 · 0 评论 -
Shader - Pass (二)
Culling & Depth Testing剔除是一种通过避免渲染背对观察者的几何体面来提高性能的优化措施。所有几何体都包含正面和反面。剔除基于大多数对象都是封闭的事实;如果你有一个立方体,你不会看到背离你的那一面(总是只有一面在你的前方),因此我们不需要绘制出背面。因此也被称做背面剔除。 另一个使得渲染看起来正确的是深度测试。深度测试确保只有场景内的对象的最靠近的表面参与绘制。Syntax转载 2015-11-26 12:48:10 · 465 阅读 · 0 评论 -
Shader - Pass (二)
Texturing纹理在基本的顶点光照被计算后被应用。在着色器中通过SetTexture 命令来完成。 材质贴图可以用来做老风格的混合器效果。你能在一个通道中使用多个SetTexture 命令 - 所有纹理被顺序的应用,如同绘画程序中的层一样。SetTexture 命令必须放置在通道的末尾。Syntax 语法SetTexture [TexturePropertyName] { Texture B转载 2015-11-26 13:08:54 · 491 阅读 · 0 评论 -
Shader - Pass (一)
pass{ Color, Material, Lighting }下面是Pass 通道里面的语法,主要是在Material Block描述这些设置,细节如下:Color :设定对象的纯色。颜色即可以是括号中的四值(RGBA),也可以是被方框包围的颜色属性名Material { Material Block }:材质块被用于定义对象的材质属性。Lighting On | Off:转载 2015-11-25 11:21:00 · 615 阅读 · 0 评论 -
shader - 语法
Syntax 语法 Shader “name” { [Properties] Subshaders [Fallback] } 定义了一个着色器。这些内容在材质监视器上列于name下。着色器通过properties来可选的定义一个可通过材质设定界面来自定义的列表。后面紧跟SubShaders的列表,并可额外添加一个代码块用于应对fallback的情况。Properties 属性 着色器拥有一个pr转载 2015-11-24 12:27:34 · 407 阅读 · 0 评论 -
Shader - Pass
Syntax 语法Pass { [Name and Tags] [RenderSetup] [TextureSetup] } 基本通道命令包含一个可选的渲染设置命令的列表,和可选的被使用的纹理的列表。Name and tags 名称和标签 一个通道能定义它的Name 和任意数量的Tags (用于向渲染引擎传递通道的意图的名称/值的字符串)。Render Setup 渲染设置 通道设定显示硬件的转载 2015-11-24 13:00:28 · 436 阅读 · 0 评论 -
shadre - SubShader
Syntax 语法Subshader { [Tags] [CommonState] Passdef [Passdef …] } 通过可选标签,通用状态 和 一个Pass 定义的列表构成了子着色器。 Details 细节子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态。当Unity选择用于渲染的子着色器时,它为每一个被定义的通道渲染一次对象(可能会更多,这取决于光线转载 2015-11-24 12:47:04 · 444 阅读 · 0 评论 -
shader - 属性
着色器可以定义一个参数列表,可以由开发者在材质检视面板编辑参数。着色器文件中的Properties块定义了这些参数: Syntax Properties { Property [Property …] }定义属性块,其中可包含多个属性,其定义如下name (“display name”, Range (min, max)) = number 定义浮点数属性,在检视器中可通过一个标注最大最小值的转载 2015-11-24 12:42:41 · 570 阅读 · 0 评论 -
shader - 可以使用三种不同的方法
表面着色器,可能会是你最好的选择。如果它需要与灯光,阴影,投影器,等进行交互,以表面着色器方式写着色器。表面着色器也可以很容易简洁地写在复杂的着色器 - 这是一个更高的抽象层次。大多数表面着色器的光照以延迟光照的方式进行计算(唯一的例外是一些自定义的光照模型),它允许着色器有效率地与许多实时灯光互动。表面着色器用CG / HLSL语言编写几行代码和更多的代码会自动生成。顶点和片段着色器,如果你需要一转载 2015-11-24 11:48:47 · 584 阅读 · 0 评论 -
Shader - 图形硬件流水线
顶点变换(Vertex Transformation):是图形硬件流水线中第一个处理阶段。顶点变换在每个顶点上执行一系列数学操作。这些操作包括把顶点位置变换到屏幕位置以供光栅器使用为贴图产生纹理坐标、以及决定顶点颜色的光照运算。图元装配和光栅化( Primitive Assembly and Rasterization)经过变换的顶点数据流按照顺序被送到下一个被称为图元装配和光栅化的阶段。首先,在图翻译 2015-11-28 12:42:15 · 937 阅读 · 0 评论