计算机图形学基础-卷积 卷积是概率论中的一个核心结构,这一方法随处可见,在图像处理中尤为明显,在求解微分方程时也被大量使用。 定义在了解卷积之前,我们都知道,光看没有上下文的公式化定义,卷积会变得十分唬人。 (f*g)(t):=\int f(x)\cdot g(t-x)dx但是本质上,卷积具有十分美丽的定义。 从概率论开始有一个最简单的例子,即“扔两枚骰子”,计算两枚骰子各个点数之和的概率。显然,每个骰子有六个面 2023-04-11 教程 数学 计算机图形学 线性代数
从0到实时光线追踪(三):自发光物体与光线的进一步优化 在上一章我们实现了一个简陋的基于光线的光栅化渲染器,在这一章我们将对其进行优化,并实现自发光物体、阴影等功能,使其更加完善。看起来我们似乎完成了一个基于光线的光栅化器,他在2K大小的屏幕上能有80左右的fps,在1080p的屏幕上能呈现140fps,而当窗口大小进一步降低到760p时则能呈现250左右fps的效率。这些数字看起来很大,然而,相较于常规光栅化在4k屏幕上动辄200fps+的渲染效率而 2023-04-06 教程 真实感渲染 图形学 Taichi 实时渲染
从0到实时光线追踪(二):基于光线的光栅化 在上一节我们完成了基本的渲染数据类型,在这一节我们将试着使用写一个不带光照和阴影的简易光栅化渲染器,这个渲染器将是实时光线追踪渲染器的一个重要组成部分。 主渲染循环的构建 Initialize 在开始Taichi图形的运行前,我们需要使用ti.init()对Taichi进行初始化。由于在小场景中使用Vulkan加速器架构要比CUDA开启更快,因此我们首选使用Vulkan架构处理图形界面。同时,由于 2023-04-05 教程 真实感渲染 图形学 Taichi 实时渲染
从0到实时光线追踪(一):基本数据结构 这一系列教程更倾向于从工程领域展开思路,换句话说就是会更多地进行代码上的实现。同时限制于笔者自身水平,在这里我姑且假设读者都有基本的现代图形学知识,换句话说就是已经完成了GAMES101的学习,以至于不必过多地在最基础的部分上做过多讲解,拉长篇幅。 本文的目的是构造一个轻量级的实时光线追踪渲染器。在本章,我们会构造渲染器的基本数据结构,以支撑随后的整体渲染架构。 我们的架构基于python的T 2023-04-04 教程 真实感渲染 图形学 Taichi 实时渲染
重要性采样理论与多重重要性采样 重要性采样理论 译自:Physicall Based Rendering,Third Edition, Importance Sampling 额外补充了部分内容。 重要性采样在光线追踪中可以有效地加速噪点方差的降低进程。我们知道,在蒙托卡洛积分中,有: 当采样函数的变化趋势与被积函数越相近,蒙托卡洛积分的收敛速度就会越快。基于此,我们可以部分舍弃被积函数较小的部分,而将采样点集中在被积函数 2023-03-31 教程 真实感渲染 图形学
计算机图形学基础-线性代数 基础 向量Vector 基本定义 (欧几里得)向量是一个具有大小和方向的实体。 对于零向量,有: 向量可以堆叠起来表示高维向量,通常用于描述对象的状态。假设有向量,则这几个向量堆叠起来可以表示为: 这是一个堆叠向量,而不是方向向量。 另外,向量也可以用于表示一个点、速度、力或直线/射线/线段。 表示从点开始沿向量移动个时刻后的一个点,或是表示该点和点之间的线段。 同时,若有两个点,则可以用 2023-03-16 教程 数学 计算机图形学 线性代数
SPH Based Simulation-基于SPH的刚体与流体模拟 Reference Koschier, Dan, et al. “Smoothed particle hydrodynamics techniques for the physics based simulation of fluids and solids.” arXiv preprint arXiv:2009.06944 (2020). 介绍 平滑粒子流体动力学(Smoothed Partic 2023-03-14 论文复现 图形学 Taichi 物理仿真
[Taichi入门]基于Taichi的简单经验刚体模拟 从零开始学Taichi的第一步,实现了一个基于经验的简单刚体系统。 由于仅包含球体,这个刚体系统实际上只有四条基本的经验法则,即: 物体会受到重力的影响往下落 物体和其它球体相撞会受到与撞击方向相反的作用力 物体碰到墙壁会向相反方向反弹 碰撞会使得力会按一定比例衰减 将这些经验法则抽象为数学公式,我们可以得到这样的结论: 考虑法则1,对于每一个子步,物体受到重力影响可以表示为: 考虑法则 2023-02-27 项目记录 图形学 Taichi 物理仿真
Physically Based Rendering翻译-Chapter1 是这里是对Matt Pharr、Wenzel Jakob以及Greg Humphreys三位大神所写图形学教材PBRT(Physically Based Rendering : From Theory To Implementation, Third Edition)的翻译,同时博主将书中代码依照C++11与C++14的新标准进行了改进。作者造诣不高因此可能出现错误,欢迎阅读到此文的读者在评论区 2023-02-16 翻译 图形学 基于物理渲染
POJ1061-青蛙的约会 题面描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐 2022-08-11 题解 数论 拓展欧几里得 POJ