shader
文章平均质量分 83
cchoop
热爱编程,热爱游戏
展开
-
屏幕后处理效果
屏幕后处理效果(screen post-processing effects) 是游戏中实现屏幕特效的常见方法建立一个基本的后处理脚本系统调整屏幕的亮度、饱和度和对比度边缘检测高斯模糊Bloom效果(未完待续)原创 2021-09-07 22:06:13 · 913 阅读 · 6 评论 -
UnityShader-让画面动起来
UnityShader内置的时间变量名 称类 型描 述_Timefloat4t是自场景加载开始所经过的时间,4个分量分别是(t/20,t,2t,3t)_SinTimefloat4t是时间的正弦值,4个分量的值分别是(t/8,t/4,t/2,t)_CosTimefloat4t是时间的余弦值,4个分量的值分别是(t/8,t/4,t/2,t)unity_DeltaTimefloat4dt是时间增量,4个分量的值分别是(dt,1/dt,smoothDt,1原创 2020-10-21 20:45:56 · 633 阅读 · 1 评论 -
UnityShader常见指令、标签函数
1.Properties块中的特殊命令4.三、Pass块中的指令5.Pass块中的Tag标签6.#prama指令7.Unity内置函数8.Unity内置变量9.语义10.宏定义1.Properties块中的特殊命令命令 参数 说明[Header(test)] 括号内即为头标题的显示文字 不要加引号,不支持中文[NoScaleOffset] 隐藏贴图的Tilling和Offset选项[Toggle] 模拟开关,0为假,1为真,同[MaterialToggle]2.SubShade转载 2020-10-21 10:10:20 · 783 阅读 · 1 评论 -
UnityShader-复杂的光照
渲染路径光源类型光照衰减阴影原创 2020-10-20 10:56:01 · 275 阅读 · 0 评论 -
UnityShader-透明效果
透明度测试透明度测试: 只要一个片元的透明度不满足条件(通常小于某个值),那么他对应的片元就会舍弃。被舍弃的片元不会进行任何处理,也不会对颜色缓冲产生任何影响;否则,就会按照普通的不透明物体的处理方式来处理它。关键函数:clip,clip(float4 x)、clip(float3 x)、clip(float2 x)、clip(float x),x的任何一个分量为负数就会舍弃当前像素的输出颜色。测试代码如下:Shader "cc/shader10" { Properties {原创 2020-10-16 17:01:27 · 426 阅读 · 0 评论 -
UnityShader-可编程渲染管线
#mermaid-svg-Ua40NbyOE7j0Kvjn .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Ua40NbyOE7j0Kvjn .label text{fill:#333}#mermaid-svg-Ua40NbyOE7j0Kvjn .node rect,#mermaid-svg-Ua40NbyOE7原创 2020-10-16 11:12:59 · 205 阅读 · 0 评论 -
UnityShader-基础纹理
单张纹理单张纹理: 使用一张纹理来代替物体的漫反射颜色,通过tex2D内置函数来对纹理进行采样。关键代码如下:fixed3 albedo = tex2D(_MainTex, i.uv).rgb * _Color.rgb;Shader "cc/shader9" { Properties { _Color ("Color Tint",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white"{} _Specular原创 2020-10-16 10:45:29 · 186 阅读 · 0 评论 -
UnityShader-基础光照模型
标准光照模型自发光: 描述给定一个方向时,模型表面会向这个方向发射多少辐射量高光反射: 描述光线从光源照到物体表面时,会向完全镜面反射方向发射多少辐射量漫反射: 描述光线从光源照到物体表面时,会向每个方向发射多少辐射量环境光(ambient): 描述所有其他的间接光照原创 2020-10-13 16:05:31 · 954 阅读 · 0 评论 -
UnityShader-顶点片元着色器
一个简单的顶点片元着色器Shader "cc/shader1"{ Properties{ } SubShader{ Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag struct a2v{ float4 vertex : POSITION;原创 2020-10-10 17:39:06 · 591 阅读 · 2 评论 -
渲染队列
转载自:博客园 航者 关于Unity中LOD和渲染队列----渲染通道通用指令(一)渲染队列Unity的game视图的绘制顺序是先绘制前面的物体,再绘制后面的物体,因为如果是从后面开始绘制,那新的物体如果在前面把旧的物体挡住了,那旧的物体的绘制就是无效的,很浪费。不像2D是先绘制旧物体再和新物体叠加在一起。Unity会把物体分成几个绘制的队列,属于哪种类型的就丢到哪个队列里面,可以使得绘制的...转载 2019-05-20 14:36:16 · 632 阅读 · 0 评论 -
SubShader中的LOD
LOD英文全称Levels of Detail,意为多细节层次在shader中有很多个subshader,如果所有的subshader都不执行的话就,就执行fallback。每个subshader都可以设置一个LOD,整个shader也有一个LOD。系统就去找第一个LOD小于等于shader的LOD的subshader执行,其他的subshader就不会被执行。SubShader{ ...原创 2019-05-20 14:36:31 · 808 阅读 · 0 评论