《UnityShader入门精要》学习笔记
本人学习《UnityShader入门精要》的一些学习笔记,用于个人进行记录,不配合书籍观看不易
Rising-Moon
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Unity Shader入门精要》 第四章 学习Shader所需的数学基础 笔记
学习Shader所需的数学基础笛卡尔坐标系三维笛卡尔坐标系左手坐标系右手坐标系Unity使用的坐标系模型空间 左手坐标系世界空间 左手坐标系观察空间 右手坐标系,摄像机前向是z轴的负方向。坐标变换模型空间变换到世界空间中,这个变换叫做模型变换。世界空间变换的观察空间,这个变换叫做观察变换。观察空间变换到裁剪空间(齐次剪切空间),这个变换的矩阵叫做裁剪矩阵,也被称为...原创 2019-04-04 17:32:39 · 358 阅读 · 0 评论 -
《Unity Shader 入门精要》 第十四章 非真实感渲染 笔记
非真实感渲染尽管游戏渲染一般都是以照相写实主义作为主要目标。但也有许多游戏使用了非真实感渲染的方法来渲染游戏画面。非真实感渲染的目标是使用一些渲染方法,使得画面达到和某些特殊的绘画风格相似的效果。例如:卡通、水彩风格。卡通风格的渲染实现卡通渲染有很多方法,其中之一就是基于色调的光照模型。在实现中,我们往往会使用一张一维纹理进行采样,以控制漫反射的色调。卡通风格的高光效果也和我们之...原创 2019-05-07 13:00:29 · 336 阅读 · 0 评论 -
《Unity Shader 入门精要》 第十三章 使用深度法线和纹理 笔记
使用深度法线和纹理获取深度和法线纹理原理深度纹理就是一张渲染纹理,存储的像素值是高精度的深度值。范围是[0,1],通常是非线性分布的。深度值来自于顶点变换后得到的归一化的设备坐标顶点转换到齐次裁剪空间后,z坐标就是它的深度值。但是z分量的范围是[-1,1]所以我们为了能将其存储在图像中,使用:d = 0.5*z + 0.5将其变为[0,1]范围中。Unity中深度纹理可以来自...原创 2019-05-06 20:54:12 · 386 阅读 · 0 评论 -
《Unity Shader入门精要》 第十二章 屏幕后处理效果 笔记
屏幕后处理效果建立一个基本的屏幕后处理脚本系统屏幕后处理,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效。可以为游戏画面添加更多的艺术效果,例如景深、运动模糊。要实现屏幕后处理的基础在于得到渲染后的屏幕图像吗,即抓取平屏幕,Unity为我们提供了这样一个函数:MonoBehaviour.OnRenderImage(RenderTexture src...原创 2019-05-04 20:44:58 · 655 阅读 · 0 评论 -
《Unity Shader入门精要》 第十章 高级纹理 笔记
高级纹理立方体纹理环境映射的一种实现方式。包含六张图像,对应立方体六个面。纹理采样需要提供一个三维坐标,坐标作为一个矢量从立方体中心出发,采样结果就是矢量与立方体表面交点的信息。优点:实现简单,得到的效果好。缺点:引入新的物体、光源,或者物体发生移动时,需要重新生成。常用与天空盒以及环境映射。天空盒模拟天空或室内等背景Unity中,天空盒是在所有不透明物体之后渲染的。...原创 2019-04-28 17:22:29 · 347 阅读 · 0 评论 -
《Unity Shader入门精要》 第八章 透明效果 笔记
透明效果实时渲染中要实现透明效果,通常在渲染模型时控制他的透明通道。Unity中有两种方式实现透明效果:一种是透明度测试这种方法无法得到真正的半透明效果;另一种是透明度混合。之前没有强调过渲染顺序的问题,因为深度缓冲的存在。在实时渲染中,深度缓冲是用于解决可见性的,他可以决定那些部分物体会被渲染在前面,而哪些部分会被其他物体遮挡。它的基本思想是:根据深度缓冲中的值来判断该片元距离摄像机的距...原创 2019-04-22 22:40:02 · 332 阅读 · 0 评论 -
《Unity Shader入门精要》 第九章 更复杂的光照 笔记
更复杂的光照Unity的渲染路径在Unity里,渲染路径决定了光照是如何应用到Unity Shader中的。因此如果想要处理光照,我们需要为每个Pass指定它使用的渲染路径,然后Unity就会将光源和处理后的信息放在数据里,我们才可以访问Unity支持多种渲染路径,在Unity5.0之前有:前向渲染路径(Forward Rendering Path)、延迟渲染路径(Deferred Ren...原创 2019-04-26 11:31:56 · 356 阅读 · 0 评论 -
《Unity Shader入门精要》 第七章 基础纹理 笔记
基础纹理纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术,我们可以把一张图“黏”在模型表面,逐纹素(纹素的名字是为了与像素作区分)地控制模型的颜色。在美术人员建模时,通常会在建模软件中利用纹理展开技术把纹理映射坐标存储到每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。通常,这些坐标使用一个二维变量(u,v)来表示,其中u是横向坐标,而v是纵向坐标。因此,纹理坐标也...原创 2019-04-16 23:27:51 · 323 阅读 · 0 评论 -
《Unity Shader入门精要》 第六章 Unity中的基础光照 笔记
Unity 中的基础光照渲染的基础问题就是,我们如何决定一个像素的颜色?宏观上来看,渲染包括两个部分:决定一个像素的可见性,决定这个像素上的光照计算。光照模型就是用于决定在一个像素上进行怎样的光照计算。我们是如何看这个世界的当我们说一个物体是红色的时候,意味着这个物体会反射更多的红光波,吸收其他的光波。而一个物体看起来是黑色的则是吸收了大部分的光波。模拟真实的光照环境来生成一张图片时,我...原创 2019-04-13 23:50:37 · 452 阅读 · 0 评论 -
《Unity Shader入门精要》 第三章 Unity Shader 基础 笔记
Unity Shader 基础shader和材质基本流程创建材质创建unity shader,并赋给创建的材质将材质赋给要渲染的对象在材质面板调整Unity Shader属性。Unity Shader 模板:standard surface shader:包含了标准光照模型的表面着色器模板unlit shader:不含光照的基本顶点/片元着色器image effect s...原创 2019-04-01 15:31:58 · 744 阅读 · 0 评论 -
《Unity Shader入门精要》 第五章 开始学习Unity Shader之旅 笔记
开始学习Unity Shader之旅最简单的片元着色器#pragma vertex vert#pragma fragment frat告诉Unity那个函数包括顶点着色器的代码,哪个函数包括片元着色器的代码。float4 vert(float4 v : POSITION) SV_POSITION{ return mul(UNITY_MATRIX_MVP,v);}vert...原创 2019-04-10 17:45:07 · 404 阅读 · 0 评论 -
《Unity Shader入门精要》 第二章 渲染流水线 笔记
渲染流水线的起点是CPU把数据加载到显存中渲染所需数据从硬盘中加载到系统内存(RAM)中,又从系统内存中加载到显卡内存(VRAM)中。因为显卡对现存访问速度最快,并且大多数显卡对内存没有访问权限。数据加载到现存中后,系统内存中数据就可以删除,除非其中有数据会用作后续处理,例如网格数据用于碰撞检测则不进行删除。 因为从硬盘到内存的耗时较长,所以不会多次执行这个步骤。设置渲染状态之后...原创 2019-04-01 13:43:10 · 352 阅读 · 0 评论
分享