<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LeeMcXxs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LeeXxs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LeeXxs]]></copyright><item><title><![CDATA[【GPU Gems 学习笔记】Iridescence : Simulating Diffraction]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/94654300</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/94654300</guid><author>LeeXxs</author><pubDate>Wed, 04 Sep 2019 15:39:42 +0800</pubDate><description><![CDATA[一. 光学现象


物体表面受光呈现七彩色，且会随着光照方向或观察视角的不同而改变，这是一种光学现象，比如说常见的彩虹。



彩虹是由于水滴中光的反射、折射和色散引起的。因为空气中存在的小水珠对各种频率的光具有不同的折射率，使各种色光的传播方向在进入和离开小水珠时各发生一次不同程度的偏折，使复色光分解为单色光，从而形成光谱产生的。



再比如混合了油的水和肥皂泡也有"彩虹"现象，这是由于薄膜...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】点到三角形距离及内外判断]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/90728585</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/90728585</guid><author>LeeXxs</author><pubDate>Tue, 02 Jul 2019 17:47:48 +0800</pubDate><description><![CDATA[三角形内外判断


三角形内外判断

假定一点在三角形内，那么一定有，与点在同侧，与点在同侧，与点在同侧；

那么判断一点是否在三角形内，就拆分为了三次判断两点是否在一条直线同侧的问题。

判断两点是否在一条直线同侧

使用向量的叉积可以判断两点是否在一条直线同侧：

如下图，取直线上两点，，对于两点，有：



若 ，同号，则，在直线同侧，否则为异侧。

...]]></description><category></category></item><item><title><![CDATA[【GPU Gems 学习笔记】Implementing Improved Perlin Noise]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/89282420</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/89282420</guid><author>LeeXxs</author><pubDate>Wed, 24 Apr 2019 16:27:51 +0800</pubDate><description><![CDATA[柏林噪声


柏林噪声算法(Perlin Noise)是Ken Perlin在1983年提出的一种渐变噪声。和完全随机的白噪声相比，柏林噪声做到了杂乱而有序。能够更好地模拟自然界中的随机现象的复杂性和相互间的关联性，常被用于电影视觉效果。

a. 一维柏林噪声

随机出一些散点；
	对这些点进行插值获得连续的曲线；
	用Unity的GL屏幕划线写了一下，这里用的插值函数是


b. 二维柏林噪声...]]></description><category></category></item><item><title><![CDATA[【GPU Gems 学习笔记】Rendering Water Caustics]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/87979215</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/87979215</guid><author>LeeXxs</author><pubDate>Thu, 11 Apr 2019 20:45:12 +0800</pubDate><description><![CDATA[一. 水的焦散


焦散(Caustic)，是一种光学现象，是由于光线在曲面经过反射或折射后形成的聚光效果，类似于凸透镜效果。




对于不透明物体来说，当光线照射到具有强反射属性的曲面对象时，会形成反射焦散现象；而当光线照射到透明物体时，如流动的水或玻璃杯，通过折射后形成聚光的折射焦散现象。

        


同理，对于水体来说，焦散效果不是在水面产生。一部分光线在水...]]></description><category></category></item><item><title><![CDATA[【GPU Gems 学习笔记】Effective Water Simulation from Physical Models]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/86303520</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/86303520</guid><author>LeeXxs</author><pubDate>Mon, 25 Feb 2019 16:35:23 +0800</pubDate><description><![CDATA[一. 正弦波


出于运行效率的考量，游戏中使用的“水面模拟”技术并不是真正的流体动力学计算，实际上大多是使用数学公式模拟水体的视觉效果。其中一种方法就是波形叠加法，通过叠加不同的随机周期函数来表现波涛起伏的水体表面。

说到周期函数，可以使用简单的正弦波来表达水波的模型，首先复习一下初高中知识，下面是标准的正弦函数：



而一般应用的正弦型函数公式为：



其中相关的数学变量如下：

： ...]]></description><category></category></item><item><title><![CDATA[【Unity ShaderLab】Blend混合命令]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/85112661</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/85112661</guid><author>LeeXxs</author><pubDate>Thu, 20 Dec 2018 15:52:07 +0800</pubDate><description><![CDATA[ShaderLab混合命令


每次用到ShaderLab中的混合命令的时候都想不起来......这里做一个备忘笔记。

当同时存在透明物体和不透明物体，首先渲染不透明物体，将不透明物体颜色写入颜色缓存，深度写入深度缓冲，然后渲染透明物体（关闭深度写入，开启深度测试），将透明物体的颜色与颜色缓冲中的颜色混合，得到正确结果。

既然涉及到了颜色混合，UnityShaderLab提供了相应的Blen...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】曲线：贝塞尔曲线]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/84838326</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/84838326</guid><author>LeeXxs</author><pubDate>Mon, 10 Dec 2018 19:15:26 +0800</pubDate><description><![CDATA[内容

简介
	线性贝塞尔曲线
	二次贝塞尔曲线
	三次贝塞尔曲线
	N阶贝塞尔曲线

1. 简介


最近学习了一下贝塞尔曲线，第一次get到了数学之美。--&amp;gt;维基百科传送门

贝塞尔曲线作为计算机图形学中一个十分重要的参数曲线被广泛运用，例如Unity中的曲线编辑器，Photoshop中的钢笔工具，甚至可以模拟物体运动轨迹和用于几何体的绘制。


2. 线性贝塞尔曲线


当只给定两个点...]]></description><category></category></item><item><title><![CDATA[【Unity ShaderLab】屏幕后处理：深度图浅析]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/83419497</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/83419497</guid><author>LeeXxs</author><pubDate>Wed, 21 Nov 2018 10:47:05 +0800</pubDate><description><![CDATA[内容

简介  
	获取深度图
	线性化深度值
	深度图浅析

1. 简介


屏幕后处理，指的是在渲染完整个场景得到屏幕图像后， 再对这个图像进行一系列操作，来实现各种屏幕特效。比如说景深效果的实现(离摄像机/焦距越远的部分，图片越模糊)，这时候我们需要获取屏幕图像上每个像素点对应的物体相对于摄像机的距离，即深度。在Unity中，我们可以通过“深度图”(一张存储着高精度深度信息的渲染纹理)来获取...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】透视矫正插值]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/81533769</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/81533769</guid><author>LeeXxs</author><pubDate>Fri, 09 Nov 2018 10:04:28 +0800</pubDate><description><![CDATA[内容

透视校正插值
	顶点属性插值

1. 透视校正插值


当3D图形处理器渲染一个三角形到屏幕的时候，需要先在屏幕上对三角形以逐行扫描的方式进行光栅化。由下图可以看到，在投影平面上的相同的步长，所对应的三角形面上的步长随着三角形面于相机之间距离的增加而增加(投影平面上等步长的点就是显示器屏幕的像素)。因此图形处理器必须采用非线性插值的方法来计算纹理映射坐标，以避免纹理映射图的扭曲变形。


...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】旋转变换：矩阵形式]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/83107273</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/83107273</guid><author>LeeXxs</author><pubDate>Fri, 02 Nov 2018 14:45:54 +0800</pubDate><description><![CDATA[内容

2D中绕原点旋转
	2D中绕任意点旋转
	3D中绕坐标轴旋转
	3D中绕任意轴旋转

1. 2D中绕原点旋转


在二维坐标系中，物体只能绕点旋转；且逆时针旋转经常(不是必须)被认为是正方向。

设物体在二维坐标系中，绕原点旋转θ度角，求旋转矩阵：

如下图，原坐标系基向量 p，q 绕原点旋转，得到新的基向量 p'，q'。     

知道了旋转后基向量的值，就可以如下所示用基向量造旋转矩...]]></description><category></category></item><item><title><![CDATA[【Lua】LuaForWindows环境配置]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/81294756</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/81294756</guid><author>LeeXxs</author><pubDate>Thu, 25 Oct 2018 09:57:52 +0800</pubDate><description><![CDATA[
Lua开发环境安装与细节配置


1. LuaForWindows介绍

LuaForWindows是一款用于编写Lua语言的IDE（集成开发环境），主要包含两个部分：

Lua语言核心类库和解析器
	开源代码编辑器SciTE
2. LuaForWindows安装

若LuaForWindows.exe安装失败，请先安装vcredist_x86.exe。

LuaForWindows下载地址：h...]]></description><category></category></item><item><title><![CDATA[【Unity ShaderLab】屏幕后处理：模糊]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/82801102</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/82801102</guid><author>LeeXxs</author><pubDate>Fri, 19 Oct 2018 19:53:11 +0800</pubDate><description><![CDATA[内容

简介
	径向模糊
	均值模糊
	高斯模糊

1. 简介


 模糊是一种常见的图像处理手段，也是一种常见的后处理效果，用于降低图片细节层次。对于清晰的图像来说，像素点保存的颜色信息足够准确，图片也就能表现更多的细节。相反，要达到模糊的效果，自然就是将精准的颜色信息“舍弃”掉。

径向模糊



均值模糊



高斯模糊



鬼刀今天更新了吗


2. 径向模糊


 ...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】直线方程及相关计算]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/82911496</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/82911496</guid><author>LeeXxs</author><pubDate>Mon, 08 Oct 2018 11:42:21 +0800</pubDate><description><![CDATA[内容

2D直线方程
	3D直线方程
	2D：求点到直线距离
	3D：求点到直线距离
	2D：求两平行线间的距离
	3D：求两相扭曲直线间的最短距离

1. 2D直线方程


首先假设已知过直线两点  和 ，求直线方程。二维直线的表达式形式有多种，这里就举两个例子：

一般式： （A、B不同时为0，适用于所有直线)

           
           

斜截式： （适用于不垂直于x轴...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】平面方程及相关计算]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/82871804</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/82871804</guid><author>LeeXxs</author><pubDate>Fri, 28 Sep 2018 18:38:50 +0800</pubDate><description><![CDATA[内容

参数化表达式
	求平面法向量
	求点到平面的距离
	求直线与平面交点
	求三个平面斜交

1. 参数化表达式




三维平面可以看做是点的集合，已知一个平面上一点和法向量，
     设点为平面上任意一点，那么一定与平面法向量垂直，表达式为：



除此之外，平面方程还有一种常用的表达方式：



这里的 ，，其实就是法向量的，，分量，而 


2...]]></description><category></category></item><item><title><![CDATA[【Computer Graphics】向量投影]]></title><link>https://blog.youkuaiyun.com/LeeXxs/article/details/82783803</link><guid>https://blog.youkuaiyun.com/LeeXxs/article/details/82783803</guid><author>LeeXxs</author><pubDate>Tue, 25 Sep 2018 22:35:01 +0800</pubDate><description><![CDATA[
向量投影




如上图，求向量P在向量Q上的投影，计算方法如下：

将向量P当做直角三角形的斜边，那么投影大小就是

直接求比较麻烦，据公式可得：

则：

即投影大小等于：

投影方向与向量Q平行，求向量Q的单位矢量：

则向量P在向量Q上的投影为：

顺便一提，向量P相对于向量Q的垂直向量为：...]]></description><category></category></item></channel></rss>