<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chgmaker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/w9503</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; w9503]]></copyright><item><title><![CDATA[图片格式及空间的介绍]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/110949852</link><guid>https://blog.youkuaiyun.com/w9503/article/details/110949852</guid><author>w9503</author><pubDate>Thu, 10 Dec 2020 11:39:32 +0800</pubDate><description><![CDATA[图片格式及空间的介绍

]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记47 基于物理的渲染 理论和数学基础]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105553270</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105553270</guid><author>w9503</author><pubDate>Fri, 17 Apr 2020 11:36:26 +0800</pubDate><description><![CDATA[111

]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记46 表面着色器]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105517009</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105517009</guid><author>w9503</author><pubDate>Wed, 15 Apr 2020 16:23:19 +0800</pubDate><description><![CDATA[111

]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记45 Untiy中的 渲染优化技术（二）]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105482918</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105482918</guid><author>w9503</author><pubDate>Mon, 13 Apr 2020 15:34:21 +0800</pubDate><description><![CDATA[一、减少需要处理片元数目
这部分的优化策略是减少overdraw，overdraw就是一个像素被绘制多次。

控制绘制顺序
由于深度测试的存在，如果我们可以保证物体都是从前往后绘制，那么就可以很大程度上减少overdraw，这是因为后面绘制的物体没办法通过深度测试，因此就不会进行后面的渲染处理。渲染队列小于2500(Background、Geometry、AlphaTest)的对象都被认为是不透明...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记44  Untiy中的  渲染优化技术（一）]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105452728</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105452728</guid><author>w9503</author><pubDate>Sun, 12 Apr 2020 18:04:54 +0800</pubDate><description><![CDATA[一、渲染优化技术
几个方面

CPU方面：使用批处理技术减少draw call数目
GPU方面：
（1）减少需要处理的顶点数目：
—优化结合体
—使用模型的LOD技术
—使用遮挡剔除技术
（2）减少需要处理的片元数目
—控制绘制顺序
—警惕透明物体
—减少实时光照
（3）减少计算复杂度
—使用Shader的LOD技术
—代码方面的优化
节省内存带宽
（1）减少纹理大小
（2）利用分辨率缩放

二、...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记43 使用噪声纹理的非均匀雾效]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105430392</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105430392</guid><author>w9503</author><pubDate>Fri, 10 Apr 2020 12:13:00 +0800</pubDate><description><![CDATA[一、思路
仍然需要屏幕后处理效果，和之前的雾效果实现基本一样（全局雾效计算），就是多算了一个噪声值混合雾效果的浓度  用来插值原始颜色和雾颜色。
二、具体实现代码：
摄像机脚本代码：
using UnityEngine;
using System.Collections;

public class FogWithNoise : PostEffectsBase {

	public Shader ...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记42 水波效果]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105322873</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105322873</guid><author>w9503</author><pubDate>Wed, 08 Apr 2020 13:56:05 +0800</pubDate><description><![CDATA[一、实现思想
模拟水面的时候也是需要使用到噪声纹理的。
我们使用噪声纹理作为一个高度图，用来不断修改水面的法线方向。
为了模拟水不断流动的效果，我们使用和时间相关的变量来对噪声纹理进行采样，得到法线信息后，再进行正常的反射+折射计算，最后得到水面波动效果。

...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记41 消融效果(使用噪声)]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105321355</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105321355</guid><author>w9503</author><pubDate>Sun, 05 Apr 2020 01:11:55 +0800</pubDate><description><![CDATA[一、前言
消融效果常见于角色死亡、地图烧毁等等。
消融效果就是指在不同的区域开始，并且看似随机扩张，最后整个物体都消失不见。
二、实现代码(具体见注释)：
Shader "Unity Shaders Book/Chapter 15/Dissolve" {
	Properties {
		_BurnAmount ("Burn Amount", Range(0.0, 1.0)) = 0.0			//控...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记40 素描风格的渲染]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105291728</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105291728</guid><author>w9503</author><pubDate>Fri, 03 Apr 2020 14:59:25 +0800</pubDate><description><![CDATA[总结下头文件：
HLSLSupport.cginc - (自动包含) 为跨平台的着色器编译宏和定义提供帮助。
UnityShaderVariables.cginc - (自动包含)常用的全局变量。
UnityCG.cginc - 常用的辅助函数
AutoLight.cginc - 照明&amp;阴影功能,如表面着色器在内部使用这个文件
Light.cginc - 标准表面着色器照明模式，当你写su...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记39 卡通风格的渲染]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105242808</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105242808</guid><author>w9503</author><pubDate>Fri, 03 Apr 2020 11:20:24 +0800</pubDate><description><![CDATA[11

]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记38 边缘检测(使用深度、法线纹理)]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105232886</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105232886</guid><author>w9503</author><pubDate>Tue, 31 Mar 2020 22:42:36 +0800</pubDate><description><![CDATA[一、前言
因为之前使用的边缘检测，通过屏幕后处理效果使用Sobel算子进行边缘检测的，这种很有可能会导致我们不需要的一些东西(比如阴影、纹理等等)
所以我们尽可能使用在深度纹理和法线纹理上进行边缘检测，这些纹理检测不会受光照和纹理影响，仅仅保存了当前物体的模型信息，这样边缘检测就更加可靠。
二、实现

...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记37 全局雾效(重建世界坐标另一个方法)]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105215318</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105215318</guid><author>w9503</author><pubDate>Tue, 31 Mar 2020 15:00:24 +0800</pubDate><description><![CDATA[一、前言
Untiy内置的雾效可以产生基于距离的线性或指数雾效。
而如果我们要在自己的Shader中实现雾效，我们可能会使用到 #pragma multi_compile_fog ，UNITY_FOG_COORDS，UNITY_TRANSFER_FOG，UNITY_APPLY_FOG等等 内置宏。
基于屏幕后处理的全局雾效的实现：
这种方法我们不需要更改场景内渲染物体的Shader代码，仅仅使用一...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记36 关于平台差异一些总结]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105197363</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105197363</guid><author>w9503</author><pubDate>Mon, 30 Mar 2020 13:28:02 +0800</pubDate><description><![CDATA[P115页的渲染平台差异要注意，仔细考虑使用条件(抗锯齿、并且使用了渲染到纹理技术得到了纹理后续处理使用)。看结果是否颠倒情况满足考虑平台差异的使用。
#if UNITY_UV_STARTS_AT_TOP			//处理平台差异化，用来判断是否在DX平台，如果在dx平台开启了抗锯齿，y值会为负值，
			if (_MainTex_TexelSize.y &lt; 0)
				o.uv_depth...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记35 使用深度纹理获取像素速度来控制运动模糊]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105197043</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105197043</guid><author>w9503</author><pubDate>Mon, 30 Mar 2020 13:19:59 +0800</pubDate><description><![CDATA[一、运动模糊
之前说的两种方式：运动模糊实现
一种是累积缓存，来混和多张连续的图像，消耗性能。
还有一种是采用速度缓存，这个缓存存储了各个像素当前的运动速度，然后使用该值决定模糊的方向和大小。
速度缓存就是通过深度纹理逆运算得出NDC坐标再乘以逆矩阵从而还原出世界空间中的坐标，再使用上一帧的变换矩阵乘以坐标来得到上一帧的NDC坐标，然后根据两个NDC坐标计算像素速度，从而使用速度对主纹理进行相邻像...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记34 使用深度纹理和法线纹理]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105135376</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105135376</guid><author>w9503</author><pubDate>Sun, 29 Mar 2020 19:53:53 +0800</pubDate><description><![CDATA[一、前言
之前学习的实现的屏幕后处理效果都是在在屏幕图像上实现的各种操作，
有时候我们也需要获取深度纹理和法线信息等等，
例如在边缘检测时，我们检测的边缘信息受物体纹理和光照等外部信息影响，会得到很多我们不需要的边缘点，
一种更好的方法是，我们得到深度和法线纹理在他们上进行边缘检测，这些图像不会受到纹理和光照的影响，而是仅仅保存了渲染物体的模型信息，这样的边缘检测更加可靠。

...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记33 运动模糊]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105097060</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105097060</guid><author>w9503</author><pubDate>Wed, 25 Mar 2020 23:07:10 +0800</pubDate><description><![CDATA[一、运动模糊
运动模糊是一种真实世界的效果，摄像机曝光时场景发生变化，就会产生模糊的效果。
这个效果可以使物体运动看起来更平滑，，在一些赛车等等的快速运动的游戏中，这个效果的添加很常见。
运动模糊实现方法有很多种：
一种是使用累积缓存，来混和多张连续的图像，我们取得他们的平均值作为最后的运动模糊图像。但这种会很消耗性能，取得多张图像意味着我们需要在同一帧里渲染很多次场景。
另外一种是采用速度缓存，...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记32 Bloom效果]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105079367</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105079367</guid><author>w9503</author><pubDate>Wed, 25 Mar 2020 00:14:03 +0800</pubDate><description><![CDATA[一、Bloom
这是一种常见的屏幕效果，模拟真实摄像机的图像效果，使画面中较亮的区域扩散到周围的区域中，造成一种朦胧的效果。
实现原理：
先根据阙值提取图像中明亮区域，存储在一张纹理中，然后利用高斯模糊对这张纹理进行模糊处理，模拟光线扩散的效果，最后再与原图像进行混合，得到最终效果。
二、代码
摄像机脚本：
using UnityEngine;
using System.Collections;
...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记31 高斯模糊]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105072525</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105072525</guid><author>w9503</author><pubDate>Tue, 24 Mar 2020 15:15:39 +0800</pubDate><description><![CDATA[一、前言
高斯模糊是卷积的另一个应用，
模糊有很多实现方法：均值模糊、中值模糊等等，
均值模糊就是卷积核中每个元素都相同，且相加为一，取的是卷积核面积大小的像素平均值。
高斯模糊，使用的是高斯核，高斯核中每个元素都是用高斯方程计算出来的。(P253)
因为高斯方程可以很好的模拟出每个像素对当前像素的影响程度，

上面的这个变换，效果是一样的，但可以节省很多次的采样次数。
我们使用两个Pass对横纵...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记30 边缘检测]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105047313</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105047313</guid><author>w9503</author><pubDate>Mon, 23 Mar 2020 14:22:33 +0800</pubDate><description><![CDATA[一、边缘检测理论
边缘检测是一种描边效果实现的方法，原理是通过检测算子对图像进行卷积。
卷积核就是一个正方形的网格结构。在对某个像素进行卷积时，我们会把卷积核的中心放在该像素上，依次计算核中的每个元素值和每个像素的像素值的乘积，再把所有的相加，得到的结果就是该位置的新像素值。
这样的过程可以实现很多效果，例如图像模糊、边缘检测等。
常见的边缘检测算子(卷积核)：

以上别熬是的是两个方向的卷积核。...]]></description><category></category></item><item><title><![CDATA[shader入门精要读书笔记29 屏幕后处理 亮度、饱和度、对比度]]></title><link>https://blog.youkuaiyun.com/w9503/article/details/105037429</link><guid>https://blog.youkuaiyun.com/w9503/article/details/105037429</guid><author>w9503</author><pubDate>Sun, 22 Mar 2020 23:00:35 +0800</pubDate><description><![CDATA[一、使用屏幕后处理效果 进行更改 亮度、饱和度、对比度
声明一个摄像机上的脚本BrightnessSaturationAndContrast，继承上一节的基类用来调用相关函数。
思想大概就是：
先创建一个函数，用来继承基类，那么我们就可以使用相关函数进行材质创建，调用函数。
然后我们创建一个Shader赋值给上面脚本(脚本内使用Shader创建材质)，用来进行特效处理。
脚本代码：
using U...]]></description><category></category></item></channel></rss>