
图形学
文章平均质量分 79
ChiLi_Lin
卧槽!卧槽!!卧槽!!!!!
展开
-
Unity Shader 学习笔记(27)渲染轮廓线(描边)方法、卡通风格渲染、素描风格渲染
Unity Shader 学习笔记(27)渲染轮廓线(描边)方法、卡通风格渲染、素描风格渲染 参考书籍:《Unity Shader 入门精要》渲染轮廓线(描边)五种方法: - 基于观察角度和表面法线。即视角方向和表面法线点乘结果判断(接近0,表示面接近垂直与视角)。 - 过程式几何。两个Pass:第一个Pass渲染背面并且让轮廓可见(顶点外扩);第二个Pass正常渲染正面。适应于大多数表面原创 2017-11-26 00:31:21 · 9969 阅读 · 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 · 3123 阅读 · 0 评论 -
Unity Shader 学习笔记(26) 边缘检测(深度和法线纹理)
Unity Shader 学习笔记(26) 使用深度和法线进行边缘检测 参考书籍:《Unity Shader 入门精要》 Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测边缘检测使用深度和法线纹理实现,是不受图像纹理和光照影响的,仅保存了当前渲染物体的模型信息。这里使用Roberts算子实现,采样的像素法线变化大的(差值大于0.1)或深度变化大的作为边。原创 2017-11-25 16:24:01 · 4108 阅读 · 1 评论 -
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 · 1975 阅读 · 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 · 11640 阅读 · 1 评论 -
Unity Shader 学习笔记(21) 模糊、高斯模糊
Unity Shader 学习笔记(21) 模糊、高斯模糊 参考书籍:《Unity Shader 入门精要》 GaussianBlur类源码:模糊均值模糊:卷积核各个元素都相等,且相加为1。即卷积后得到像素值是邻域内各像素平均值。中值模糊:即邻域内所有像素排序后中间那个,替换掉原颜色。高斯模糊:使用卷积核称作高斯核,高斯核是正方形的滤波核。高斯模糊高斯方程如下。σ为标准方差(一般原创 2017-11-23 10:47:23 · 1579 阅读 · 0 评论 -
Unity Shader 学习笔记(23) 运动模糊
Unity Shader 学习笔记(23) 运动模糊 参考书籍:《Unity Shader 入门精要》运动模糊两种常见方法: - 积累缓存(accumulation buffer),混合连续多张图像。即需要同一帧里渲染多次场景,性能消耗较大。 - 速度缓存(velocity buffer),存储各个像素当前移动速度,利用该值判断模糊方向和大小,但曲线运动较大时会出现错误。积累缓存保持之前渲原创 2017-11-23 22:49:14 · 2743 阅读 · 0 评论 -
Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度
Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度 参考书籍:《Unity Shader 入门精要》屏幕后处理效果(screen post-processing effects)即在渲染完场景得到屏幕图像后在进行处理的效果,如景深、运动模糊等。Unity提供接口方便处理渲染后的图像:OnRenderImage。第一个参数渲染得到纹理,第二个参数是输出到屏幕的纹原创 2017-11-22 16:11:41 · 4275 阅读 · 0 评论 -
Unity Shader 学习笔记(22) Bloom效果
Unity Shader 学习笔记(22) Bloom效果 参考书籍:《Unity Shader 入门精要》Bloom效果即较亮区域“扩散”到周围区域,形成一种朦胧效果。 实现原理:先根据一个阈值获取图像中较亮的区域,存到一张纹理,再用高斯模糊渲染这个纹理,最后混合原图即可。Bloom类:和高斯模糊类似,只是处理的不是整个屏幕,而是较亮区域。using UnityEngine;public原创 2017-11-23 15:33:44 · 1072 阅读 · 0 评论 -
3D数学 学习笔记(7) 视图、视锥、视场(Field of View)、裁切空间、屏幕空间
3D数学 学习笔记(7) 视图、视锥、视场(Field of View) 参考书籍: 《3D数学基础:图形与游戏开发》视图即摄像机的画面。可对应Unity的Canvas。指定输出窗口窗口位置在左上像素(winPosx, winPosy),整数winResx, winResy 是以像素为单位的窗口大小。 像素纵横比像素高对宽的比值,通常为1。pixPhys 指像素物理尺寸。devPhys原创 2017-10-31 11:56:13 · 5955 阅读 · 0 评论 -
Unity Shader 学习笔记(15) 立方体纹理、反射、折射、菲涅尔反射
Unity Shader 学习笔记(15) 立方体纹理、反射、折射 参考书籍:《Unity Shader 入门精要》立方体纹理(Cubemap)是环境映射(Environment Mapping)的一种实现方法。用于模拟物体周围的环境,使用了环境映射的物体可以让物体像镜子一样反射周围环境。天空盒子(Skybox)用于模拟室内背景。创建环境映射的立方体纹理方法有三种: - 由特殊布局的纹理创建原创 2017-11-20 16:11:26 · 4376 阅读 · 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 · 9720 阅读 · 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 · 2028 阅读 · 0 评论 -
Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测
Unity Shader 学习笔记(20) 卷积、卷积核、边缘检测算子、边缘检测 参考书籍:《Unity Shader 入门精要》卷积(convolution)、卷积核(kernel)卷积:使用卷积核对图像每一个像素进行操作。卷积核: 四方形网格结构,每个方格都有一个权重值。也称边缘检测算子。对图像某个像素卷积时,把卷积核中心放置在像素上,依次计算每个元素和重合像素的乘积并求和,得到新的原创 2017-11-22 21:34:32 · 7996 阅读 · 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 · 1276 阅读 · 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 · 2144 阅读 · 0 评论 -
3D数学 学习笔记(2) 矩阵
3D数学 学习笔记(2) 矩阵 参考书籍: 《3D数学基础:图形与游戏开发》矩阵乘法 常用等式** I 为单位矩阵,k为标量,v、w为向量。MI = IM = MAB ≠ BA(AB)C = A(BC)(kA)B = k(AB) = A(kB)(vA)B = v(AB)(AB)T =BTAT (可扩展多个矩阵)(v + w)M = vM + wM注意:用矩阵ABC转换原创 2017-10-24 16:09:07 · 2696 阅读 · 0 评论 -
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 · 1942 阅读 · 0 评论 -
Unity Shader 学习笔记(13) 混合光源、光的衰减
Unity Shader 学习笔记(13) 混合光源、光的衰减 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(8) 光照混合光源的前向渲染一个BasePass处理平行光、四个点光源调用四次Additional Pass,四个点光源的顺序是依靠重要度排序的(光源强度、颜色、距离远近)。注意:只处理了逐像素光照,即光源渲染模式如果为Not Imoportant,则不会原创 2017-11-18 23:15:27 · 3257 阅读 · 2 评论 -
Unity Shader 学习笔记(8) 纹理映射、凹凸映射
Unity Shader 学习笔记(8) 纹理映射、凹凸映射 参考书籍:《Unity Shader 入门精要》 3D数学 学习笔记(9) 凹凸映射(bump mapping)和切线空间(tangent space)逐纹素(texel,区别与像素)控制模型的颜色。单张纹理,凹凸映射的逐顶点和逐像素对比: 纹理映射坐标(UV坐标) 定义了该定点在纹理中对应的2D坐标。通常用一个二维变量原创 2017-11-15 10:32:24 · 3635 阅读 · 0 评论 -
Unity Shader 学习笔记(14) 阴影
Unity Shader 学习笔记(14) 阴影 参考书籍:《Unity Shader 入门精要》*版本:2017.1.1f1阴影实现原理 使用Shadow Map技术。把摄像机与光源位置重合,光源的阴影部分就是摄像机看不到的地方。 前向渲染路径中,最重要的平行光如果开启了阴影,Unity就会为光源计算阴影映射纹理(shadowmap),本质就是深度图,记录光源出发到最近表面位置。两种方法原创 2017-11-19 21:13:01 · 5406 阅读 · 1 评论 -
3D数学 学习笔记(6) 图形管道(渲染流水线)
3D数学 学习笔记(6) 图形管道(渲染流水线) 参考书籍: 《3D数学基础:图形与游戏开发》 《Unity Shader 入门精要》 浅墨_毛星云:【《Real-Time Rendering 3rd》 提炼总结】(二) 第二章 · 图形渲染管线 The Graphics Rendering Pipeline概念性三个阶段概念性是指按照渲染流程进行的功能划分提出的。GPU流水原创 2017-10-30 17:16:13 · 1505 阅读 · 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 · 1686 阅读 · 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 · 5090 阅读 · 0 评论 -
3D数学 学习笔记(8) 光照
3D数学 学习笔记(8) 光照 参考书籍: 《3D数学基础:图形与游戏开发》⊗符号代表两个色彩“按位乘”。标准光照方程Clit = Cspec + Cdiff + Camb + CemisClit:打开光照情况下计算颜色值的结果。Cspec:镜面反射分量。Cdiff:漫反射分量。Camb:环境光分量。Cemis:自发光分量。需要考虑的因素: - 材质属性。 - 表明法向量原创 2017-11-01 17:43:59 · 1139 阅读 · 0 评论 -
3D数学 学习笔记(10) 背面剔除(Clipping)、裁切(Backface Culling)、光栅化(Rasterzation)
3D数学 学习笔记(10) 背面剔除(Clipping)、裁切(Backface Culling)、光栅化(Rasterzation) 参考书籍: 《3D数学基础:图形与游戏开发》 《Unity Shader 入门精要》背面剔除(Backface Culling)移除没有面对这镜头的三角形,只考虑三角形与摄像机的相对位置而不依赖与摄像机朝向。依靠三角形顶点顺序直接判断法向量方向(左原创 2017-11-03 11:23:26 · 5872 阅读 · 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 · 1032 阅读 · 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 · 1834 阅读 · 0 评论 -
3D数学 学习笔记(1) 向量、坐标系
3D数学 学习笔记(1) 向量、坐标系 参考书籍: 《3D数学基础:图形与游戏开发》 《Unity Shader 入门精要》左/右手坐标系Unity中坐标系选择左/右手法则常用于判断法向量、网格的正面等。 CW (clockwise),顺时针。CCW (counterclockwise),逆时针。点只有位置。没有大小和方向。向量只有方向和大小。没有位置,如位移、速度。将向量表示原创 2017-10-24 16:07:41 · 1540 阅读 · 0 评论 -
3D数学 学习笔记(3) 欧拉角与四元数
3D数学 学习笔记(3) 欧拉角与四元数 参考书籍: 《3D数学基础:图形与游戏开发》 【Numberphile数字狂】神奇四元数常用矩阵和四元数表示“角位移”,用欧拉角表示“方位”。欧拉角常用约定“heading-pitch-bank”围绕轴分别代表:y、x、z,使用的是左手坐标系,从惯性坐标系到物体坐标系。要注意的是heading使用的是惯性坐标,pitch和bank使用的是物原创 2017-10-27 14:17:30 · 3291 阅读 · 0 评论 -
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 · 1366 阅读 · 0 评论 -
3D数学 学习笔记(5) 三角网格
3D数学 学习笔记(5) 三角网格 参考书籍: 《3D数学基础:图形与游戏开发》三角网格在Unity中,导入的模型都有这个Mesh,如果模型顶点过多,会分成多个Mesh。索引三角网格// 顶点级别信息struct Vertex { // 顶点的3D坐标 Vector3 pos; // 还可以有纹理映射坐标,表面法向量,光照值等。}; // 三角形级别信息s原创 2017-10-30 10:37:06 · 1853 阅读 · 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 · 977 阅读 · 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 · 1043 阅读 · 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 · 2159 阅读 · 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 · 1213 阅读 · 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 · 3060 阅读 · 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 · 2623 阅读 · 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 · 7007 阅读 · 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 · 1830 阅读 · 0 评论