Shader
文章平均质量分 86
番茄猿
爱吃番茄的程序猿一枚
展开
-
Unity Shader: multi_compile一个文件变幻多个shader
我们在写shader时,经常会出现同一个shader在面对不同的一些需求时,可能需要出现一些局部的变化,比如有些地方需要描边,有些地方不需要描边,由于在shader中不适合使用if,所以最好就是再写一份shader,但我们肯定不想复制一个shader改改,毕竟有很多共用的部分,万一修改了,岂不是两边都要改,而且shader多了也不方便使用。这个时候就需要用到shader变体了,只需要写一个shader,在编译的时候会自动生成多个对应shader使用,这样子就完美的解决了我们的问题。原创 2022-09-24 11:52:40 · 1802 阅读 · 0 评论 -
Unity Shader: Blend混合
混合不仅仅用于透明度混合,我们要开启混合,在Unity中设置的同时也进行了开启,但如果在其他图形API中是需要我们自己手动开启的。源颜色(Src,source color):由片元着色器产生的颜色值目标颜色(Dst,Destination color):从颜色缓冲中读取到的颜色值这里的颜色值都是包括RGBA四个通道。...原创 2022-08-06 22:31:49 · 2169 阅读 · 0 评论 -
Unity Shader——CGInclude文件cginc
CGInclude文件,后缀为.cginc的文件,顾名思义就是CG的包含文件,有点类似于C/C++的头文件,我们可以将常用的一些宏、结构体、全局变量、帮助函数等写在CGInclude文件中,以便高效复用。Unity自己也有很多CGInclude文件,位于安装目录的Editor/Data/CGIncludes目录(Windows版),如下所示。我们自己在写shader的时候就经常会用到Unity的这些CG包含文件,比如UnityCG.cginc中定义的各种结构体,Lighting.cginc中的各种光照模型等原创 2022-07-10 22:45:26 · 4032 阅读 · 4 评论 -
Unity Shader:贴图采样器Sampler的使用
Unity Shader采样器的使用介绍Using sampler states合并的贴图和采样器(Coupled textures and samplers)独立的贴图和采样器(Separate textures and samplers)组合的采样器设置(Inline sampler states)以及效果测试原创 2022-05-22 14:19:36 · 5260 阅读 · 0 评论 -
Unity Shader:ShaderLab命令 ColorMask
ShaderLab command: ColorMask概述ColorMask命令可以设置颜色的写入通道,可以选择哪些通道写入,也就是会阻止GPU将一些通道写入到RenderTarget当中。默认情况下,GPU会写入所有的通道RGBA,但有时候实现一些效果的时候,我们不需要4个通道,比如我们可以在渲染阴影贴图时关闭所有的颜色通道,因为只需要深度图。还有一种常用的场景就是完全禁用颜色写入,以便我们可以在一个缓冲区中填充数据而无需写入其他缓冲区,例如在不写入渲染目标的情况下填充模板缓冲区。该命令在各个渲原创 2022-05-14 21:08:59 · 1603 阅读 · 0 评论