Vulkan Tutorial 01 Overview
1 Origin of Vulkan 与早期图形API类似,Vulkan旨在为GPU提供跨平台抽象。但传统API设计时受限于当时以固定功能管线为主的图形硬件环境,开发者只能以标准格式提供顶点数据,在光照与着色功能上受制于GPU厂商。 随着显卡架构发展,可编程功能逐渐增强。这些新特性只能通过补丁式整合到现有API中,导致驱动层抽象不理想,需要大量猜测性代码将开发者意图映射到现代架构。这正是...
1 Origin of Vulkan 与早期图形API类似,Vulkan旨在为GPU提供跨平台抽象。但传统API设计时受限于当时以固定功能管线为主的图形硬件环境,开发者只能以标准格式提供顶点数据,在光照与着色功能上受制于GPU厂商。 随着显卡架构发展,可编程功能逐渐增强。这些新特性只能通过补丁式整合到现有API中,导致驱动层抽象不理想,需要大量猜测性代码将开发者意图映射到现代架构。这正是...
1 Area Lights: Math Foundations 1.1 Why Are Area Lights Ideal? Punctual Light因其简单性和较低的计算成本,至今仍广泛应用。然而,这类光源存在固有的概念缺陷,使其无法精确还原真实世界的光照效果。相较于面光源,其主要缺陷可以概括为两点: Punctual Light的反射不具备物理真实性 ...
1 An Intro to Lighting in 3D Rendering [TODO] 2 Point and Spot Lights [TODO] 3 Distant Lights [TODO]
1 An Introduction for Artists to BRDFs and Radiometry 1.1 Radiometry: Defining Relations between Light and Matter 辐射度量学是一门研究包含可见光在内的电磁辐射测量的学科,它是计算机图形学中模拟光线与物质交互行为的基础。 1.2 Radiometry Terms: Flux,...
1 Ambient Occlusion 1.1 Introduction to AO 环境光遮蔽用于模拟物体表面因周围几何结构而接受到的环境光被遮挡的效果。 采样当前像素深度 → 重建视图空间坐标 → 随机方向生成 → 步进采样周围像素 → 计算遮挡贡献 → 积分AO值 → 后处理输出 1.2 AO Frameworks 本篇博客将会专注于在URP14中实现SSAO、HBAO、G...
1 Motivation Cozy Space是一个装修模拟类游戏。它具有以下特点: 灵活的房间户型设计:玩家可以构建任意的多边形房间 时间/天气系统:玩家可以修改游戏中的时间段与天气,从而影响房间内的光照与氛围 自由的家具摆放:玩家可以自由地摆放房间中的家具、装饰品 基于以下几点考虑,我最终选择使用实时面光源作为房间中的主要光照来源: 平行光不适合作为封闭室内...
LearnOpenGL - Area Lights 1 Introduction 虽然我们已经实现了三种经典的光源类型:平行光、点光源、聚光灯,但是这些光源存在一个相同的缺点:无法模拟现实世界中具有真实面积/形状的光源。 2 Problem Description 假设场景中放置了一个邻近几何体的矩形面光源,该光源需向周围发射光线。我们需要在着色点处,将面光源对应的球面多边形立...
LTC.pdf - Google Drive 1 Introduction 基于物理的着色的核心在于求解光照方程,即对BRDF与场景光照在半球空间上的乘积进行积分。而本篇博客主要关注多边形光源的着色计算,这意味着需要对球面多边形区域上的BRDF进行积分。这里的球面多边形(spherical polygon)区域表示三维空间的多边形光源投影到着色点法线方向上的半球所形成的区域。 尽管多...
0 Aliasing 在归纳各个抗锯齿算法之前,我们首先需要明白锯齿出现的原因:连续的几何信号在离散的像素网格上的采样不足,导致高频细节信息丢失,进而出现Aliasing。 具体来说,我们可以从两方面进行考虑: 采样率不足 渲染是对连续几何对象的离散化采样的过程,而三角形的边缘、纹理的细节都属于连续几何 当几何边缘的变化频率(斜边、曲线)超过了像...
0 Aliasing 在归纳各个抗锯齿算法之前,我们首先需要明白锯齿出现的原因:连续的几何信号在离散的像素网格上的采样不足,导致高频细节信息丢失,进而出现Aliasing。 具体来说,我们可以从两方面进行考虑: 采样率不足 渲染是对连续几何对象的离散化采样的过程,而三角形的边缘、纹理的细节都属于连续几何 当几何边缘的变化频率(斜边、曲线)超过了像...