![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
理解Shader
文章平均质量分 90
Learn Unity Shader From Scratch课程笔记
天问_01
这个作者很懒,什么都没留下…
展开
-
11.Post Processing
什么是后处理技术?如果你熟知PS,那么你应该知道什么是滤镜,后处理技术就像滤镜一样。打开69scene,想想为什么这里会黑屏呢?因为_MainTex没有设置到renderedimage上,也就是说纹理在摄像机中渲染了,但是没用到屏幕上。怎么办呢?注意Scene69RenderImage脚本,这里有一个CurShader(Cursorshader),我们将原图传到这个shader里处理,然后渲染到屏幕上。方便的是,在unity中我们就有这样一个函数OnRenderImage来做这件事。......原创 2022-07-25 12:36:25 · 677 阅读 · 0 评论 -
8.Advanced effects
索引号小的先渲染,大的后渲染。若果发现Unity下你的模板测试效果不对,但模板里Ref这些都没问题的话,那估计是RenderQueue设置的不合适。一般Mask的RenderQueue低于被Mask的对象。Queue参数名称队列索引号描述Background1000最先渲染,背景物体Geometry2000默认渲染,大多数物体,不透明物体AlphaTest2450要进行透明度测试的物体。3000这里后往前渲染,使用了透明度混合(例如关闭深度写入的shader)使用。...原创 2022-07-23 20:17:35 · 199 阅读 · 0 评论 -
9.Transparent shaders
贯穿全章节的是不要忘记首先改变渲染类型和队列。原创 2022-07-23 20:16:04 · 100 阅读 · 0 评论 -
10.Volumetric Shaders
体积渲染技术,是可以应用在一个形状里再画一个shap。从正方体网格表面发射射线,碰到球表面像素(假想)变色。只着色视角方向的像素。创建一个射线从摄像机出发到达片元的世界坐标.从表面向内部按照steps。直到碰到所画图形表面。1000.0175。......原创 2022-07-23 20:08:14 · 665 阅读 · 0 评论 -
7.Surface Shaders
描述一种光学现象,当光线照射到物体表面,一部分反射,一部分进入物体内部发生折射或散射。生活中的例子,就是你在湖上,看到脚下的水是透明的可以看到水下,远处的水却波光粼粼看不到水下。几乎所有物体都有这样的菲涅尔效果。在实时渲染中常用来根据视角方向控制反射程度。真实世界的菲涅尔反射公式比较复杂,这里有两个应用比较著名的近似公式。Schlick菲涅尔公式Fschlick(v,n)=F0+(1−F0(1−v⋅n)5Fschlick。...原创 2022-07-21 20:03:00 · 253 阅读 · 0 评论 -
6.Vertex Shaders
漫反射光照符合兰伯特定律(Lambert’slaw)反射光线的强度与表面法线和光源方向之间。漫反射是指入射光线被物体表面反射到各个角度,所以反射角度是不确定的,防止点乘为负(被来自后面的物体照亮),所以要截取到0。这里乘以0.01是因为square的scale是100。通过入射角度可以确定反射光线的强度。n是表面法线,I是指向光源的单位矢量,这里是n到I的投影。...原创 2022-07-21 20:02:02 · 131 阅读 · 0 评论 -
5.Textures
直接用pos的情况是,某个点的颜色是可以不通过纹理知道的。另外,如果直接通过tex2d将pos替换uvvalue也是可以的,但是这样就变得不可控了(tiling和offset没用了),所以应该让uv去适应pos。用pos来表示模型点的位置,uv来表示纹理的位置,让uv匹配到pos上。这里要说明,uv是可以超过[0,1]的,但是一般取值是[0,1],超过这个范围就有另一套算法,并不是不能超过。也就是这里是在操作纹理,所以需要一个将uv转换到pos,再去求每个位置是什么像素,从uv上面去取像素。...原创 2022-07-18 11:03:56 · 134 阅读 · 0 评论 -
4.Noise
此时得到的有可能是[0.25,0.3]这种在[0,1]范围内的值,但也有可能超出了[0,1]范围,那么需要对范围外的值进行处理。比如uv坐标为[0.25,0.3],纹理的宽高为[256,256],那么相乘可得到[64,76.8]。,如果你需要纹理往右移,则你需要把窗口向左移,用u–0.5而不是u+0.5。将uv坐标经过处理变换后,根据实际的纹理尺寸,转化为纹理空间坐标。由此可以得到,要想让纹理向上跑,那么窗口就要下移,uv上面需要减。比如旋转平移缩放,...原创 2022-07-18 11:02:48 · 166 阅读 · 0 评论 -
3. Shaping Functions Part.2
0,0)−>(1,1)(−0.5,−0.5)−>(0.5,0.5)所以i.uv可以完全将pos替换,完全可以变成如何用UV表示pos呢?让中心变成(0.5,0.5)原创 2022-07-16 12:33:16 · 162 阅读 · 0 评论 -
3.Shaping Functions Part.1
length_length。原创 2022-07-15 10:53:43 · 126 阅读 · 0 评论 -
2.First Steps
学习shader的第一步,了解shader的构成,变量的写法。原创 2022-07-14 19:00:50 · 216 阅读 · 0 评论 -
1.Introduction
本课程是讲Unity Shader,主要分为五个部分:1—5 关注片元着色器6 开始关注顶点着色器 灯光7 表面着色器8 高级效果,low polygon mesh runtime和unity stencil buffer9 透明效果10 体积着色器 云效果11 后处理技术(用在渲染之后12 URP渲染管线13 shader graph14 回顾总结When we create a variable we need to give the variable a type:CG is strongly typ原创 2022-07-14 18:47:54 · 226 阅读 · 0 评论