图形学学习笔记
文章平均质量分 92
This is MX
学不可以已!!!
展开
-
UE Mesh Draw Pipeline 解析
具体在gpu侧会将所有的数据对齐到float4cpu侧的gpuscene中的数据和gpu侧中的scenedate的buffer对应关系为:(左侧蓝色为gpu,右侧为cpu)原创 2023-08-23 00:36:57 · 213 阅读 · 0 评论 -
SIGGRAPH 2022--岩鸽彩虹色羽毛渲染阅读笔记:Rendering Iridescent Rock Dove Neck Feathers
论文核心观点:①论文作者提出了一个参数化的羽毛双向散射分布函数(BSDF),它封装了微尺度结构(单支羽毛)的统计。它在渲染时被完全评估和并进行了重要性采样。②论文作者通过改变局部阴影框架,在毫米级尺度(羽毛每根毛)上应用BSDF,提供丰富的细节,而不必明确地建模微观结构。③论文作者在模型中加入了彩虹色,减轻了混合头发和彩虹色着色器的需要。④论文作者使用测量和渲染的BSDF以及照片之间的一对一比较来验证作者的模型。...原创 2022-07-14 00:15:46 · 670 阅读 · 1 评论 -
UE源码阅读[1]---由问题入手UE中的延迟渲染
延迟渲染:问题:1.UE 延迟渲染的Gbuffer是什么样的?2.怎么样处理多光源3.怎么样处理同屏不同的光照模型UE渲染部分的起点:UE的渲染部分从GameEngine.h 和 GameEngine.cpp原创 2022-07-02 16:59:06 · 1556 阅读 · 0 评论 -
CUDA入门:硬件模型入门与性能优化
最上方是主机端内存(host memory),指的就是我们常说的内存。一般主机端内存通过PCI-E总线与设备端内存交换数据。数据交换的速度等于PCI-E总线的速度。全局内存(global memory) 、常量内存(constant memory)、纹理内存(texture memory)、本地内存(local memory)。都位于GPU板上,但不在片内。因此速度相对片内内存较慢。常量内存和纹理内存对于GPU来说是只读的。GPU上有 L2 cache和 L1 cahce。其中L2 cache为所有流原创 2022-05-21 23:30:00 · 1450 阅读 · 0 评论 -
OpenGL学习-----实用技术:场景管理与视锥体剔除
场景树建立:场景树的建立,这里讲一下建树,树里面保存根据自己的model矩阵,这个矩阵需要根据父物体的model矩阵做出相对变化。出于学习目的:代码会以欧拉角的形式展示,也是只是用oop,而不是odp属性的定义:原创 2022-05-07 18:16:43 · 1429 阅读 · 0 评论 -
实时高清渲染:全局光照(Global Illumination)[2]---漫反射/高光全局光照
预先计算的辐照度值通常与漫反射颜色或反照率映射相乘,存储在一个单独的纹理集。虽然从理论上讲,出射度(辐照度时间漫反射颜色)可以预先计算并存储在一组纹理中,但在大多数情况下,许多实际考虑排除了这种选择。颜色映射通常是相当高的频率,它们利用各种各样的平铺,并且它们的部分经常在模型中重复使用,所有这些都是为了保持合理的内存使用。辐照度值通常要低得多,而且不容易重复使用。将光照和表面颜色分开会消耗更少的内存。除了最严格的硬件平台外,现在很少使用预先计算的辐照度。根据定义,辐照度是针对给定法线方向计算的,因此我们原创 2022-04-27 19:43:03 · 2605 阅读 · 0 评论 -
寒霜PBR阅读与实践[1]:Material材质--Physically Based Rendering 3.0 --SIGGRAPH 2014
Material材质:一个Material model,通常用BSDF(双向散射分布函数)进行模拟,可以分解为两部分:反射部分(BRDF)和透射部分(BTDF)。Material Model 材质模型:在这个标准材料模型的背景下,一个表面响应f通常被分解成两个不同的项称为“漫反射”(fd)的低角频率信号和称为“镜面”(fr)的低到高角频率信号。原创 2022-04-18 14:04:34 · 733 阅读 · 0 评论 -
OpenGL学习---高级光照---法线贴图
增强纹理细节。例如,砖块的表面。砖块的表面非常粗糙,显然不是完全平坦的:它包含着接缝处水泥凹痕,以及非常多的细小的空洞。如果只用普通的纹理贴图,只有一件事决定物体的形状,这就是垂直于它的法线向量。砖块表面只有一个法线向量,表面完全根据这个法线向量被以一致的方式照亮。原创 2022-04-02 19:24:44 · 1826 阅读 · 0 评论 -
RealTimeRayTracing:光追降噪[2]--新的解决方案ATAA
虽然DXR解决了结合光栅化和光线跟踪的技术难题,但通过超采样应用光线跟踪来解决走样问题并非易事:当只给出1个SPP输入时,要知道哪些像素需要进行超采样,将成本降低到一定程度 ,这并不是单纯的光线追踪所能解决的。上面的内容演示了一个实用的解决方案来解决这个问题,它可以运行在一个商业游戏引擎中,甚至在第一代实时光线追踪商品硬件和软件上,并连接到完整的着色管线。在电影级渲染器中选择像素进行自适应超采样的地方,首先每个像素投射许多射线,而我们则通过利用TAA的历史缓冲区来检测走样,将成本分摊到许多帧中。我们进一步识原创 2022-04-02 16:55:08 · 1262 阅读 · 0 评论 -
RealTimeRayTracing:光追降噪[1]--UE4中的光追降噪
目录UE4中的光追降噪:主要思想:Shadow 降噪:Glossy反射降噪:AO和Diffuse GI 降噪:前记:主要是前几天看到了一个问题就是光追怎么降噪,毕竟在实时渲染中光追不可能采用高的spp。所以由这个问题,自己就跑去翻了一波书,做一下记录。------------------------博主:mxUE4中的光追降噪:主要思想:在场景中,当试图解决渲染方程时,ue将出现的光路径分割开来。然后从不同的射线类型,例如,阴影,反射和漫反射射线,应用自定义过滤器。.原创 2022-03-24 13:31:35 · 2473 阅读 · 0 评论 -
Games101作业补全--所有作业含提高项
作业地址:https://github.com/1393650770/Games101-Homework包含作业零、作业一、作业二、作业三、作业四、作业五、作业六、作业七、作业八、大作业作业0:作业1:展示:普通要求:提高项:作业2展示:未抗锯齿:抗锯齿:以下代码一个图截图截不完,就只粘贴关键代码,需要的可以前往文章开头的作业地址查看普通要求:提高项:作业3:展示:normal:原创 2022-03-23 16:51:02 · 7169 阅读 · 3 评论 -
算法复现:OpenGL-ShadowMap/PCSS/CSM
前记:这篇文章将会实现普通的ShadowMap --- PCSS(Percentage-Closer Soft Shadows) --- CSM (Cascaded Shadow Maps)学不可以已-----------------------------博主:MX常规ShadowMap实现:问题:Shadow Acne(自重叠):原创 2022-03-19 13:39:40 · 1661 阅读 · 1 评论 -
OpenGL学习-高级OpenGL-ComputeShader
-----------------------博主:mx基本概念:OpenGL的Compute shader几乎可以被认为是独立于其他面向图形的阶段运行的独立管道。Compute shader是一种获得系统中图形处理器所拥有的计算能力的方法,不像Vertex 、Tessellation、Geometry、Fragment Shader,Compute shader可以被认为是一种特殊的、每个Compute shader都运行在单个工作单元上,称为工作项。而这些工作项被收集到一起,形成一个称为工.原创 2022-03-12 11:29:07 · 3324 阅读 · 1 评论 -
实时高清渲染:全局光照(Global Illumination)[1]
基础知识:这个部分简单介绍一下辐射度量学的基础概念,这个部分的中文翻译比较多,尽量在英文语境下理解Radiance:辐射率/辐亮度,指的是单位投影面积、单位立体角上的辐射亮度Irradiance:辐照度,指单位面积接收到的辐射通量Radiant flux:辐射通量,又称辐射功率,指单位时间内通过某一截面的辐射能量Radiant Intensity:辐射强度,表示的是在单位球面上,一个光源向每单位立体角所投送的辐射通量。Solid Angle:立体角,可以为原创 2022-03-05 22:38:50 · 1293 阅读 · 0 评论 -
OpenGL学习-高级OpenGL-实例化
简述:如果我们想以前一样渲染几千个物体,调用几千个渲染函数会极大的影响性能。与绘制顶点本身相比,使用glDrawArrays或glDrawElements函数告诉GPU去绘制你的顶点数据会消耗更多的性能,因为OpenGL在绘制顶点数据之前需要做很多准备工作(比如告诉GPU该从哪个缓冲读取数据,从哪寻找顶点属性,而且这些都是在相对缓慢的CPU到GPU总线(CPU to GPU Bus)上进行的)。所以,即便渲染顶点非常快,命令GPU去渲染却未必。如果我们能够将数据一次性发送给GPU,然后使用一个绘原创 2022-03-01 18:03:25 · 1233 阅读 · 2 评论 -
OpenGL学习-----高级OpenGL:几何着色器
简述:几何着色器在顶点着色器(以及曲面细分着色器)之后,专门处理场景里的几何图形,可以将创建或销毁几何图元,可以根据顶点的信息批量处理几何图形,对顶点附近的数据进行函数的处理,快速创造出新的多边形(Vertex Shader是专门处理多边形顶点的,而Geometry shader就是专门用来处理场景中的几何图形)输入输出:输入:图元—顶点,边,三角形等points:GL_POINTS (1)lines:GL_LINES, GL_LINE_STRIP, GL_LINE_LIST (原创 2022-02-24 08:00:00 · 1186 阅读 · 0 评论 -
UE Niagara---SPH流体模拟
--------------------------------------------------------------------------博主 :mx基础概念:SPH(Smoothed Particle Hydrodynamics)算法是一种流体模拟算法。SPH算法的基本设想,就是将连续的流体想象成一个个相互作用的微粒,这些例子相互影响,共同形成了复杂的流体运动,对于每个单独的流体微粒,依旧遵循最基本的牛顿第二定律。但是在SPH算法里,流体的质量是由流体单元的密度决定的,所以一般.原创 2022-02-08 19:52:45 · 2308 阅读 · 1 评论 -
OpenGL---基于四元数的摄像机系统
---------------------------------------------------------博主:mx基础概念:摄象机:OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。当我们讨论摄像机/观察空间(Camera/View Space)的时候,是在讨论以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标原创 2022-02-01 02:25:28 · 3696 阅读 · 1 评论 -
实时高清渲染:Shadows
--------------------------------------------------博主:mxShadow Volume(阴影体)基本流程:1.先画出Shadow Volume(阴影区域)从交点V0,V1向外延申得到V2,V3,这样就能生成一个四边形面,其他几个面也是这样生成,并且只画轮廓,而不是每个区域内的三角形都画2.z-Pass算法:我们使用模板缓冲区,首先先清除模板缓冲区,然后将场景绘制入帧缓冲区中并得到深度图,然后关闭zbuffer和关闭颜色输出,然后打开模板测试原创 2022-01-26 16:51:05 · 821 阅读 · 0 评论 -
实时高清渲染:详细介绍Deferrend Rendering技术
做一下笔记-----------------------------------博主:mx基本概念:在前向渲染中,会先把所有的物体都先渲染着色再对进行深度测试,这种方式复杂度与场景复杂度、光源个数有很大的关系,假设有n个物体,m个光源,且每个每个物体受所有光源的影响,那么复杂度就是O(m*n)。Forward Rendering的管线流程如下:延迟渲染:延迟渲染会使用一个pass将物体的深度、法线、纹理、材质信息等存入Gbuffer中,之后渲染着色的时候直接从Gbuffer中获取到信息进行着色,原创 2021-12-02 15:29:02 · 494 阅读 · 0 评论 -
OpenGL学习---1.3 创建窗口
前记:冲冲冲------------------博主:mx必需头文件/引用#include <glad/glad.h>#include <GLFW/glfw3.h>------博主:mx相关函数glfwInit():初始化GLFWglfwWindowHint():配置GLFW,有两个参数第一个参数代表选项的名称,我们可以从很多以GLFW_开头的枚举值中选择第二个参数接受一个整形,用来设置这个选项的值选项和对应值的文档:http://www.glfw.org/d原创 2021-09-12 20:10:16 · 248 阅读 · 0 评论 -
OpenGL学习---1.2 配置运行环境
前记:学习学习学习---------------------博主:mxGLFW简介:GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入下载链接:https://learnopengl-cn.github.io/01%20Getting%20started/02%20Creating%20a%20window/CMake简述:CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本原创 2021-09-12 20:08:25 · 230 阅读 · 0 评论 -
OpenGL学习---1.1 OpenGL基本介绍
前记:非常有乐趣,学!!!-------------------------------博主:mx核心模式与立即渲染模式立即渲染模式(Immediate mode,也就是固定渲染管线):优点:这种模式下绘制图形方便,容易使用和理解缺点:OpenGL的大多数功能都被库隐藏起来了,开发者很少有控制OpenGL如何进行计算的自由,效率低核心模式(Core-profile mode):当使用OpenGL的核心模式时,OpenGL迫使我们使用现代的函数。当我们试图使用一个已废弃的函数时,OpenGL会抛出原创 2021-09-12 20:02:28 · 852 阅读 · 0 评论