![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图形学
文章平均质量分 93
孤独de守候
这个作者很懒,什么都没留下…
展开
-
视椎体提取
参考:fast extraction viewing frustum planes from world view projection matrix本文主要是记录下视椎体提取的主要方法首先假设我们有一个顶点v=(x,y,z,w=1)\mathbf{v} = (x , y , z , w = 1)和4x4矩阵M=(mij)\mathbf{M}=(m_{ij}),M\mathbf{M}是视图投影矩阵,翻译 2015-10-10 14:54:44 · 1256 阅读 · 0 评论 -
Displacement Map
Normal Map仅仅提升了光照细节,并没有提升图元细节,Normal Map仅仅只是一种光照技巧。 Displacement Map可以用于提升图元的细节。位移贴图配合细分可以极大的提升效果。 Displacement Map通过将顶点沿着法线方向的反方向进行偏移。 p′=p+s(h−1)p^\prime = p + s(h - 1) ss是缩放量,h∈(0,1)h \in (0 , 1原创 2015-10-27 19:55:57 · 2283 阅读 · 0 评论 -
Normal Map
法线贴图是通过扰动法线来产生视觉上的凹凸感 法线贴图的每个像素保存了切线空间的坐标值 如图所示,T ,B , N构成了切线空间,法线贴图中记录的就是该空间中的坐标 然而我们的光照计算是在世界空间进行的,所以我们需要知道该点在世界空间中的法线坐标。 如图所示:假设三角形的三个点为V0V_0 , V1V_1 , V2V_2.对应的纹理坐标为(u0,v0u_0 , v_0) , (u1,v1u原创 2015-10-27 17:31:22 · 1230 阅读 · 0 评论 -
SkyBox
Sky天空是位于极远处的,因此我们将天空盒的深度值设置在远截面cbuffer Transform{float4x4 WorldViewProj;};struct VertexIn{float3 PosL : POSITION;};struct VertexOut{float4 PosH : SV_POSITION;float3 PosL : POSITION;};Ve原创 2015-10-28 15:48:57 · 1023 阅读 · 0 评论 -
SSAO
思路SSAO每一帧都将场景视图空间的最近可视点的Normal ,Depth渲染到全屏render target上。然后将render target作为输入计算屏幕上每个像素对应的环境光遮蔽。渲染Normal , Depth创建一张纹理贴图,将其作为RenderTarget格式为DXGI_FORAMT_R16G16B16A16_FLOAT RGB用于保存视图空间中的最近可视点的法线坐标。alpha通原创 2015-10-28 23:19:25 · 3002 阅读 · 2 评论 -
ShadowMap
创建阴影分为两步: 一:以光源为视点,正交投影渲染整个场景,得到深度图(shadow map)并保存变换矩阵。深度图中记录了以光源为视点时,所有的可视点的深度。 二:以相机为视点渲染场景,对于场景中的每个顶点,将其变换到以光源为视点的空间,若其深度大于shadow map中对应点的深度值,则说明光源射来的光线被物体遮蔽了。则该点处于阴影中由于光源发出的光是平行光,因此我们需要建立一个正交投影矩阵原创 2015-10-28 14:40:04 · 1980 阅读 · 0 评论