![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Shader
文章平均质量分 79
ChiLi_Lin
卧槽!卧槽!!卧槽!!!!!
展开
-
Unity Shader 学习笔记(3)Unity Shader模板、结构、形式
Unity Shader 学习笔记(3)Unity Shader模板、结构、形式 参考书籍:《Unity Shader 入门精要》Unity Sahder的模板 模板名 功能 Standard Surface Shader 包含标准光照模型的表面着色器模板。 Unlit Shader 产生一个不包含光照(但包含雾效)的基本的顶点/片元着色器。 ImageEffect原创 2017-11-10 15:05:32 · 1318 阅读 · 0 评论 -
Unity Shader 学习笔记(24) 深度纹理、法线纹理
Unity Shader 学习笔记(24) 深度纹理、法线纹理 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(2) 矩阵 3D数学 学习笔记(9) 凹凸映射(bump mapping)和切线空间(tangent space)深度纹理即存深度值的纹理。深度值范围[0, 1]。深度值计算来源于顶点变换后得到的归一化设备坐标(Normalized Device原创 2017-11-24 16:49:57 · 1791 阅读 · 0 评论 -
Unity Shader 学习笔记(26) 边缘检测(深度和法线纹理)
Unity Shader 学习笔记(26) 使用深度和法线进行边缘检测 参考书籍:《Unity Shader 入门精要》 Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测边缘检测使用深度和法线纹理实现,是不受图像纹理和光照影响的,仅保存了当前渲染物体的模型信息。这里使用Roberts算子实现,采样的像素法线变化大的(差值大于0.1)或深度变化大的作为边。原创 2017-11-25 16:24:01 · 3969 阅读 · 1 评论 -
Unity Shader 学习笔记(18)纹理动画、顶点动画、广告牌技术
Unity Shader 学习笔记(18)纹理动画、顶点动画、广告牌技术 参考书籍:《Unity Shader 入门精要》Unity Shader的内置变量纹理动画可用于代替粒子系统模拟动画效果。帧序列动画8x8帧序列纹理动画 Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) _MainTex ("Image S原创 2017-11-21 22:55:14 · 3032 阅读 · 0 评论 -
Unity Shader 学习笔记(15) 立方体纹理、反射、折射、菲涅尔反射
Unity Shader 学习笔记(15) 立方体纹理、反射、折射 参考书籍:《Unity Shader 入门精要》立方体纹理(Cubemap)是环境映射(Environment Mapping)的一种实现方法。用于模拟物体周围的环境,使用了环境映射的物体可以让物体像镜子一样反射周围环境。天空盒子(Skybox)用于模拟室内背景。创建环境映射的立方体纹理方法有三种: - 由特殊布局的纹理创建原创 2017-11-20 16:11:26 · 4250 阅读 · 0 评论 -
Unity Shader 学习笔记(28) 噪声纹理、消融效果、水波效果、噪声雾效
Unity Shader 学习笔记(28) 噪声纹理、消融效果、水波效果、噪声雾效 参考书籍:《Unity Shader 入门精要》噪声纹理通过纹理深浅可以作为一些变换的阈值,或者透明度等。= 消融效果(Dissolve)常用与角色死亡、地图烧毁时效果。Burn Amount从0变化到1。 Properties { _BurnAmount ("Burn Amount", Range原创 2017-11-26 16:30:44 · 9578 阅读 · 0 评论 -
Unity Shader 学习笔记(14) 阴影
Unity Shader 学习笔记(14) 阴影 参考书籍:《Unity Shader 入门精要》*版本:2017.1.1f1阴影实现原理 使用Shadow Map技术。把摄像机与光源位置重合,光源的阴影部分就是摄像机看不到的地方。 前向渲染路径中,最重要的平行光如果开启了阴影,Unity就会为光源计算阴影映射纹理(shadowmap),本质就是深度图,记录光源出发到最近表面位置。两种方法原创 2017-11-19 21:13:01 · 5334 阅读 · 1 评论 -
Unity Shader 学习笔记(8) 纹理映射、凹凸映射
Unity Shader 学习笔记(8) 纹理映射、凹凸映射 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(9) 凹凸映射(bump mapping)和切线空间(tangent space)逐纹素(texel,区别与像素)控制模型的颜色。单张纹理,凹凸映射的逐顶点和逐像素对比: 纹理映射坐标(UV坐标) 定义了该定点在纹理中对应的2D坐标。通常用一个二维变量原创 2017-11-15 10:32:24 · 3537 阅读 · 0 评论 -
Unity 对选中物体实现描边效果(方法1:指定layer的外轮廓渲染)
Unity 基于屏幕后处理的描边效果(指定Layer的物体) Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度 Unity Shaderlab: Object Outlines Unity Shader-描边效果 完整源码:https://github.com/ZeroChiLi/ShaderTest原理 添加额外相机(位置等信息等同原相原创 2017-12-03 15:13:18 · 18598 阅读 · 0 评论 -
Unity 对选中物体实现描边效果(方法2:对物体网格顶点的外扩)
Unity 实现选中物体的简单描边效果 WIKI : Silhouette-Outlined Diffuse 完整源码:https://github.com/ZeroChiLi/ShaderTest原理 在完场景渲染后,再对需要描边效果的物体进行渲染,实质上就是就是在原来mesh基础上把顶点延法线方向外扩一点,再上色即可。实现简单,效果也比较劣质。 对物体再渲染一层(背面),顶点外扩原创 2017-12-04 21:59:05 · 4864 阅读 · 0 评论 -
Unity Shader 学习笔记(13) 混合光源、光的衰减
Unity Shader 学习笔记(13) 混合光源、光的衰减 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(8) 光照混合光源的前向渲染一个BasePass处理平行光、四个点光源调用四次Additional Pass,四个点光源的顺序是依靠重要度排序的(光源强度、颜色、距离远近)。注意:只处理了逐像素光照,即光源渲染模式如果为Not Imoportant,则不会原创 2017-11-18 23:15:27 · 3150 阅读 · 2 评论 -
Unity 对选中物体实现描边效果(方法3:结合方法1的外轮廓渲染、方法2的选择网格)
Unity 对选中物体实现描边效果(方法3:结合方法1的外轮廓渲染、方法2的选择网格) Unity 对选中物体实现描边效果(方法1:指定layer的外轮廓渲染) Unity 对选中物体实现描边效果(方法2:对物体网格顶点的外扩) 完整源码:https://github.com/ZeroChiLi/ShaderTest原理 结合方法1和方法2,使用额外相机,将选中物体网格调用Gra原创 2017-12-06 13:49:42 · 11235 阅读 · 1 评论 -
Unity Shader 学习笔记(29) 表面着色器(Surface Shader)
Unity Shader 学习笔记(29) 表面着色器(Surface Shader)基本结构 参考书籍:《Unity Shader 入门精要》 官网API:Writing Surface Shaders Unity Shader 学习笔记(3)Unity Shader模板、结构、形式 【浅墨Unity3D Shader编程】之六 暗黑城堡篇: 表面着色器(Surface S原创 2017-11-27 22:12:19 · 1885 阅读 · 0 评论 -
Unity Shader 学习笔记(31) 基于物理的渲染技术(PBS)、BRDF
Unity Shader 学习笔记(31) 基于物理的渲染技术(PBS)、BRDF 参考书籍:《Unity Shader 入门精要》 【《Real-Time Rendering 3rd》 提炼总结】(六) 第七章 · 高级着色:BRDF及相关技术基于物理的渲染技术(Physically Based Shading, PBS)是为了对光和材质之间的行为进行更加真实的建模。光在物理学上,光原创 2017-12-16 21:53:26 · 2088 阅读 · 0 评论 -
Unity Shader 学习笔记(32) Unity中的Standard Shader
Unity Shader 学习笔记(32) Unity中的Standard Shader 参考书籍:《Unity Shader 入门精要》 AssetStore : Shader Calibration SceneUnity中的Standard Shader这个Standard Shader是基于物理渲染的。 Unity支持两种流行基于物理的工作流程: - 金属工作流(Metall原创 2017-12-17 00:35:31 · 1221 阅读 · 0 评论 -
Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测
Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测 参考书籍:《Unity Shader 入门精要》卷积(convolution)、卷积核(kernel)卷积:使用卷积核对图像每一个像素进行操作。卷积核: 四方形网格结构,每个方格都有一个权重值。也称边缘检测算子。对图像某个像素卷积时,把卷积核中心放置在像素上,依次计算每个元素和重合像素的乘积并求和,得到新的原创 2017-11-22 21:34:32 · 7758 阅读 · 0 评论 -
Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR)
Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR) 参考书籍:《Unity Shader 入门精要》 【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史 官方:ReflectionProbes 官方:Global Illuminati原创 2017-12-18 10:53:30 · 1954 阅读 · 0 评论 -
Unity Shader 学习笔记(25) 全局雾效
Unity Shader 学习笔记(25) 全局雾效 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(7) 视图、视锥、视场(Field of View)、裁切空间、屏幕空间雾效(Fog)实现方法: - Unity内置雾效可以产生基于距离的线性或指数雾效。 - 自行编写雾效需要添加#pragma multi_compile_fog指令,并使用相关宏。缺点是需要原创 2017-11-25 13:56:18 · 11542 阅读 · 1 评论 -
Unity Shader 学习笔记(21) 模糊、高斯模糊
Unity Shader 学习笔记(21) 模糊、高斯模糊 参考书籍:《Unity Shader 入门精要》 GaussianBlur类源码:模糊均值模糊:卷积核各个元素都相等,且相加为1。即卷积后得到像素值是邻域内各像素平均值。中值模糊:即邻域内所有像素排序后中间那个,替换掉原颜色。高斯模糊:使用卷积核称作高斯核,高斯核是正方形的滤波核。高斯模糊高斯方程如下。σ为标准方差(一般原创 2017-11-23 10:47:23 · 1487 阅读 · 0 评论 -
Unity Shader 学习笔记(4)Unity Shader内置变量、函数,Shader Model
Unity Shader 学习笔记(4)Unity Shader内置变量、函数内置文件下载Unity 下载存档内置函数官方API:Built-in shader helper functions民间翻译总结:shader内置函数[zhang273162308] Unity&Shader基础篇-常用函数的使用与案例内置变量官网API:Built-in shader variables民间翻原创 2017-11-12 16:54:58 · 1781 阅读 · 0 评论 -
Unity Shader 学习笔记(5)第一个简单Shader
Unity Shader 学习笔记(5)第一个简单Shader 参考书籍:《Unity Shader 入门精要》 作者源码:https://github.com/candycat1992/Unity_Shaders_Book 项目源码:https://github.com/ZeroChiLi/ShaderTest色彩由法线值控制Shader "Custom/Chapter 5/Si原创 2017-11-13 13:39:52 · 994 阅读 · 0 评论 -
Unity Shader 学习笔记(11) 渲染队列、透明效果
Unity Shader 学习笔记(11) 渲染队列、透明效果 参考书籍:《Unity Shader 入门精要》 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑 3D数学 学习笔记(10) 背面剔除(Clipping)、裁切(Backface Culling)、光栅化(Rasterzation) 官网API:Shade原创 2017-11-17 16:32:31 · 4956 阅读 · 0 评论 -
Unity Shader 学习笔记(6) 漫反射
Unity Shader 学习笔记(6) 漫反射 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(8) 光照逐顶点、逐像素、半兰伯特光照模型对比: 逐顶点光照(Lambert法则)Shader "Custom/Chapter 6/DiffuseVertexLevel" { Properties { _Diffuse ("Diffuse",C原创 2017-11-13 17:52:36 · 933 阅读 · 0 评论 -
Unity Shader 学习笔记(7) 高光反射
Unity Shader 学习笔记(7) 高光反射 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(8) 光照Phong模型的逐顶点、逐像素,和Blinn模型对比: Phong模型 逐顶点光照(Gouraud shading,高洛德着色)Properties { _Diffuse ("Diffuse",Color) = (1,1,1,1) _Sp原创 2017-11-14 11:02:38 · 1001 阅读 · 0 评论 -
Unity Shader 学习笔记(30) Unity中渲染优化技术
Unity Shader 学习笔记(30) Unity中渲染优化技术 参考书籍:《Unity Shader 入门精要》 Unity Shader 学习笔记(1) DrawCall 【U3d】渲染统计窗口详细介绍(Rendering Statistics Window)影响性能因素CPU负责帧率,GPU复杂分辨率。 - CPU - 过多的draw call。原创 2017-11-29 16:49:07 · 1411 阅读 · 0 评论 -
Unity Shader 学习笔记(9) 渐变纹理、遮罩纹理
Unity Shader 学习笔记(9) 渐变纹理、遮罩纹理 参考书籍:《Unity Shader 入门精要》渐变纹理没有使用纹理,和使用两种不同渐变纹理对比: 就是通过一张梯度变换的纹理,取样赋值。可实现一些卡通风格。 使用半兰伯特模型:v2f vert(a2v v) { ... o.uv = TRANSFORM_TEX(v.texcoord,_RampTex);原创 2017-11-15 16:28:40 · 1784 阅读 · 0 评论 -
Unity Shader 学习笔记(16) 渲染纹理(Render Texture)
Unity Shader 学习笔记(16) 渲染纹理(Render Texture) 参考书籍:《Unity Shader 入门精要》 Unity 制作小地图(Minimap)系统 两种方法 官网文档:Graphics Command Buffers渲染纹理(Render Texture) GPU允许把三维场景渲染到一个中间缓冲中,即渲染目标纹理(Render Target Te原创 2017-11-21 11:12:57 · 6735 阅读 · 0 评论 -
Unity Shader 学习笔记(17) 程序纹理(Procedural Texture)、程序材质(Procedural Materials)
Unity Shader 学习笔记(17) 程序纹理(Procedural Texture)、程序材质(Procedural Materials) 参考书籍:《Unity Shader 入门精要》 官网API:Texture2D 程序纹理:ProceduralTextureGeneration.cs程序纹理即由计算机生成的图像。通过脚本创建一个程序纹理,再赋给材质。样例代码见上面链原创 2017-11-21 11:15:46 · 2518 阅读 · 0 评论 -
Unity Shader 学习笔记(10) 纹理(Texture)的属性
Unity Shader 学习笔记(10) 纹理(Texture)的属性 参考书籍:《Unity Shader 入门精要》 官网API:Textures 详解Unity3d游戏开发中Texture贴图纹理及相关属性*版本:2017.1.1f1Texture Type选择适合的类型,Unity会为Unity Shader传递正确的纹理,并对一些纹理进行优化。Defualt(默认纹理)原创 2017-11-16 11:29:04 · 2961 阅读 · 0 评论 -
Unity Shader 学习笔记(1) DrawCall
Unity Shader 学习笔记(1) DrawCall 参考书籍:《Unity Shader 入门精要》 图形管道: 3D数学 学习笔记(6) 图形管道(渲染流水线)DrawCall DrawCall就是一个命令,从CPU发起,GPU接收。这个命令指向一个需要被渲染的图元(primitives)列表,告诉GPU开始进行一个渲染过程。相当与OpenGL中的glDrawElements原创 2017-11-09 16:06:40 · 1172 阅读 · 0 评论 -
Unity Shader 学习笔记(2)Shader、ShaderLab、Cg/HLSL/GLSL
Unity Shader 学习笔记(2)Shader、ShaderLab、Cg/HLSL/GLSL 参考书籍:《Unity Shader 入门精要》 图形管道: 3D数学 学习笔记(6) 图形管道(渲染流水线) 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写Shader是什么GPU流水线上一些可高度编程的阶段。有特定类型的原创 2017-11-09 17:39:08 · 2079 阅读 · 0 评论 -
Unity Shader 学习笔记(12) 渲染路径(Rendering Path)
Unity Shader 学习笔记(12) 渲染路径(Rendering Path) 参考书籍:《Unity Shader 入门精要》 官网API:ShaderLab: Pass Tags 官网API:Rendering Paths渲染路径决定了光照如何应用到Unity Shader中。Pass块内可选择的渲染路径: 前向渲染路径(Forward) 是传统的渲染方式。 原理:原创 2017-11-18 16:31:39 · 1610 阅读 · 0 评论 -
Unity Shader 学习笔记(22) Bloom效果
Unity Shader 学习笔记(22) Bloom效果 参考书籍:《Unity Shader 入门精要》Bloom效果即较亮区域“扩散”到周围区域,形成一种朦胧效果。 实现原理:先根据一个阈值获取图像中较亮的区域,存到一张纹理,再用高斯模糊渲染这个纹理,最后混合原图即可。Bloom类:和高斯模糊类似,只是处理的不是整个屏幕,而是较亮区域。using UnityEngine;public原创 2017-11-23 15:33:44 · 1026 阅读 · 0 评论 -
Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度
Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度 参考书籍:《Unity Shader 入门精要》屏幕后处理效果(screen post-processing effects)即在渲染完场景得到屏幕图像后在进行处理的效果,如景深、运动模糊等。Unity提供接口方便处理渲染后的图像:OnRenderImage。第一个参数渲染得到纹理,第二个参数是输出到屏幕的纹原创 2017-11-22 16:11:41 · 4156 阅读 · 0 评论 -
Unity Shader 学习笔记(23) 运动模糊
Unity Shader 学习笔记(23) 运动模糊 参考书籍:《Unity Shader 入门精要》运动模糊两种常见方法: - 积累缓存(accumulation buffer),混合连续多张图像。即需要同一帧里渲染多次场景,性能消耗较大。 - 速度缓存(velocity buffer),存储各个像素当前移动速度,利用该值判断模糊方向和大小,但曲线运动较大时会出现错误。积累缓存保持之前渲原创 2017-11-23 22:49:14 · 2657 阅读 · 0 评论 -
Unity Shader 学习笔记(27)渲染轮廓线(描边)方法、卡通风格渲染、素描风格渲染
Unity Shader 学习笔记(27)渲染轮廓线(描边)方法、卡通风格渲染、素描风格渲染 参考书籍:《Unity Shader 入门精要》渲染轮廓线(描边)五种方法: - 基于观察角度和表面法线。即视角方向和表面法线点乘结果判断(接近0,表示面接近垂直与视角)。 - 过程式几何。两个Pass:第一个Pass渲染背面并且让轮廓可见(顶点外扩);第二个Pass正常渲染正面。适应于大多数表面原创 2017-11-26 00:31:21 · 9606 阅读 · 1 评论