计算机图形学
文章平均质量分 93
滑稽树
游戏开发者
展开
-
SSAO与HBAO学习笔记(持续改进)
HBAO还有噪声,不知道为啥原创 2021-08-12 12:02:52 · 3949 阅读 · 0 评论 -
GPUTerrain简单实现
简介在看了狗哥老司机和MaxwellGeng等大佬关于GPUDriven的实现,就参考Ubisoft实现一个简单的GPUDriven的Terrain的绘制因为地形绘制时需要的数据不需要一直更新,所以只要在一开始传入地形的HeightMap和NormalMap之后,剩下的绘制操作基本不太需要传入其他大量的数据,非常适合GPUDriven。使用GPUDriven的好处是可以在很少的几次DrawCall就可以绘制出整个地形场景,而且可以剔除掉不需要的面片,减少绘制的压力。做GPUDrivenTerrain原创 2021-04-08 01:35:07 · 950 阅读 · 0 评论 -
高效VolumeLighting的实现及说明
引用原创 2021-03-28 16:30:48 · 638 阅读 · 0 评论 -
基于物理的实时大气散射原理与实现
原理实现引用[1] https://ebruneton.github.io/precomputed_atmospheric_scattering/[2] https://hal.inria.fr/inria-00288758/document原创 2021-03-02 07:39:44 · 1010 阅读 · 0 评论 -
PBR学习(持续补充)
BRDF公式引用[1]https://learnopengl.com/PBR/Theory原创 2021-01-02 02:22:34 · 743 阅读 · 0 评论 -
Bloom实现及其数学分析
文章目录Bloom原理Blur流程详解引用Bloom原理本文主要参考 https://catlikecoding.com/unity/tutorials/advanced-rendering/bloom/This is somewhat analogous to how our eyes adapt to deal with bright scenes,Bloom效果是在游戏中的Bloom的流程如图所示Blur流程详解参考[2],圆对称的2d高斯核是可以线性分解的,高斯核可以被分解为水平原创 2020-12-28 01:17:30 · 742 阅读 · 1 评论 -
简单阴影分析
Shadowmap是常用的阴影绘制的技术。实现方式实现的Shadowmap的方法就是,在光源位置放置一个相机,朝着光照方向,绘制一遍场景,得到的深度图就是Shadowmap。而在真正绘制场景的时候则可以将场景的世界空间下的点P使用灯光的proj*view矩阵转换到Shadowmap坐标系下,采样shadowmap,把得到的shadow值与场景点的深度值进行比较,如果当前点的深度值比shadow值更大,那么该点就处于阴影中,从而不做对应点的光照计算。潜在问题本节参考1、Shadow Acne主要表原创 2020-12-27 05:15:17 · 1447 阅读 · 0 评论 -
Lambert表面的brdf推导
Lambert表面的brdf推导朗伯体性质详细推导引用Lambert表面的brdf推导在微表面模型下,基本的反射公式如下Lo(p,ωo)=∫Ωfr(p,ωi,ωo)Li(p,ωi)n⋅ωidωiL_o(p,\omega_o) = \int\limits_{\Omega} f_r(p,\omega_i,\omega_o) L_i(p,\omega_i) n \cdot \omega_i d\omega_iLo(p,ωo)=Ω∫fr(p,ωi,ωo)Li(p,ωi)n⋅ωi.原创 2020-12-25 01:05:53 · 3720 阅读 · 3 评论 -
球谐光照细节分析
文章目录使用球谐函数的本质蒙特卡洛积分正交基函数球谐(Spherical Harmonics)球谐投影(SH Projection)SH函数的特性(Properties of SH Functions)Rotating Spherical HarmonicsSH光照表面漫反射(SH Lighting Diffuse Surfaces)Envmap的例子说明参考文献使用球谐函数的本质使用球谐函数的本质就是把一个点上的空间光照信息投影到球谐基向量上,然后再在需要使用的时候,使用投影得到的球谐系数来还原逼近原创 2020-12-20 19:15:16 · 885 阅读 · 0 评论 -
球谐光照简述
本文主要参考作者在Siggraph上的PPT,都在参考文献中给出,详细理论证明请看论文,代码也在以下链接的论文主页上论文作者提出经验和理论证据表明,在实践中,irradiance仅取决于的前2阶spherical harmonic modes of the illumination,并且可以表示为表面法线的笛卡尔分量的二次多项式。 实际上,Lambertian BRDF滤波器的99%能量包含...原创 2019-03-06 12:15:32 · 1361 阅读 · 0 评论 -
坐标系转换矩阵简单说明
在渲染开始前,从local space转换到world space,再转换到camera space,使用矩阵变换变换矩阵先给出变换矩阵[xpypzp1]=[100xe010ye001ze0001][xuxvxw0yuyvyw0zuzvzw00001][upvpwp1]pxyz=[uvw00001]puvw\begin{bmatrix}x_p \\ y_p \\ z_p \\1...原创 2019-03-02 14:27:00 · 6232 阅读 · 0 评论 -
四元数做旋转过程的具体证明
文章目录背景万象节锁数学基础旋转以及证明证明过程组合旋转矩阵表示球面线性插值参考文档背景一般情况下我们都会使用矩阵做旋转变换,绕某个轴或者绕任意向量,这都有在 DirectX数学介绍 做过介绍,虽然直接用矩阵旋转这种方法很直观,但是使用矩阵会遇到两个问题:万象节锁矩阵旋转过程的差值不平滑万象节锁旋转过程中,会有一个自由度消失现有旋转矩阵E(h,p,r)=[e00e01e0...原创 2018-09-30 20:05:28 · 2976 阅读 · 4 评论 -
顶点法向量的矩阵变换
本文参考 Introduction to 3D Game Programming with DirectX 11在计算机图形学中法向量的变化跟一般顶点的变化有一定的区别,假设我们有一个切向量u=v1−v0 u=v_1-v_0 ,uu与法向量nn垂直。如果我们使用一个矩阵AA来进行非均匀缩放,我们可以在下图中看到由图(a)到图(b),变换后的切向量uA=v1A−v0AuA=v_1A-v_0A与变换后的原创 2016-07-16 04:06:38 · 3656 阅读 · 1 评论 -
根据深度信息重建世界坐标
摘自 https://forum.unity.com/threads/reconstructing-world-pos-from-depth-imprecision.228936/unity的实现代码//main problem encountered is camera.projectionMatrix = ??????? worked but further from camer...原创 2018-06-24 18:58:30 · 3190 阅读 · 0 评论 -
Direct3D基础--渲染管线
本文为 Introduction to 3D Game Programming with DirectX 11 读书笔记Color的XNA实现Rendering PiplineInput Assembler stagePrimitive TopologyIndicesThe vertex shader stageProjection and Homogeneo...原创 2018-06-24 13:09:42 · 851 阅读 · 0 评论 -
Direct3D基础--初始化
本文为 Introduction to 3D Game Programming with DirectX 11 读书笔记本篇博客介绍Direct3D的基础,按照书上章节顺序介绍Direct3D初始化图形学的基本概念与DirectX的类型COM纹理和数据资源格式The Swap Chain and Page FlippingDepth BufferingTextu...原创 2018-06-23 16:49:26 · 674 阅读 · 0 评论 -
DirectX数学介绍
本文为 Introduction to 3D Game Programming with DirectX 11 读书笔记Vector Algebrawin10已经把DirectX11集成到了windows SDK中,所以如果是使用win10做开发,则不需要手动下载DirectX11的类库。对于D3D11,数学计算库用XNA Math library,该库提供了SIMD指令的封装...原创 2018-06-22 01:19:04 · 1730 阅读 · 0 评论