- 博客(44)
- 收藏
- 关注
原创 【三维重建笔记】02 OpenMVS 流程主要 API 整理
在中初步尝试使用 colmap + MVS 流程重建了人物的 三维模型, 但是还遗留了 执行时间偏长(几个小时), 结果遗留噪声, 部分区域显得有些粗糙等问题。前一节直接使用了 openMVS 官方以及,来生成结果。本节试着通过编写程序的方式, 来走一遍 openMVS 的流程, 顺便进一步了解 OpenMVS API, 看看能否按照自己的需求,来调节参数,处理上面遗留的一些问题。故本节主要梳理 OpenMVS 流程的与。最终本次实验中,观感上比之前 好了不少总的流程跑下来大致是。
2025-12-15 16:02:26
621
原创 【CUDA笔记】05 使用 AMGX 实现泊松图像编辑
前几节已经根据入门课程,了解了一些 CUDA 的使用技巧。这一节想先跳出原本的课程节奏, 找点实际的应用,来看看能否从另一个角度练习一下 CUDA。最后找到了话题。类似如下的抠图编辑为 泊松图像编辑应用的一种。网上可以找到不少介绍 泊松图像编辑 的参考文章, 也可以先参考一下,了解原理与一些其他的应用不少文章的起点是 2003 年的这篇论文本节尝试使用基于 CUDA 实现的AMGX 库,求解泊松方程,来实现泊松图像编辑。主要梳理, 与。
2025-12-01 15:55:14
689
原创 【CUDA笔记】04 CUDA 归约, 原子操作,Warp 交换
/ 与前一个方法的区别仅在于最后使用原子操作来进行归约, 直接将所有的和加到 out 指向的内存空间// 申请 BLOCK_SIZE 个 float 大小的共享内存空间// 获取当前全局线程 index// 获取当前 block 中的线程ID tid, 并初始化对应地址 shared memory 的初始值// 使用 grid stride load(这里因为启动的总的线程数量为 gridDim.x * blockDim.x, 所以以这个数为步长)
2025-11-25 11:03:33
429
原创 【CUDA笔记】03 CUDA GPU 架构与一般的程序优化思路(下)
(1)共享内存是一种位于 GPU 芯片上的高速内存,允许同一个 block 内的所有线程之间共享数据。(2)它主要用于减少全局内存访问次数,从而提升性能。相比于全局内存,共享内存的访问延迟显著更低,通常只需要几个时钟周期。这使得它非常适合用于频繁访问的小块数据。(3)使用__shared__关键字声明共享内存变量。(4)这些变量在每个 block 内独立分配,并且只对该 block 内的线程可见(5)代码设计上,可以借助这一层级来优化对 Global Memory的访问模式。
2025-11-21 12:43:54
767
原创 【三维重建笔记】01 从 COLMAP + OPENMVS 流程, 从多视角图片输入来重建人物模型开始
模式参数是否估计深度是否融合特点默认✅✅快速稳健,适合大多数场景SGM(两步)✅(可拆分)✅深度连续性强,适合结构化表面DMAP 输入无需参数❌(跳过)✅可复用已有深度图,提高效率。
2025-11-17 10:34:35
782
原创 【CUDA笔记】02 CUDA GPU 架构与一般的程序优化思路(上)
前一节已经初步实现了一个入门的 cuda 程序, 向量加法。这一节开始介绍让 Cuda 程序可以执行得更快的一般优化思路,以及结合 GPU的结构设计,介绍为什么是这样优化。本节主要是对应视频课程的第 3 节。
2025-11-08 18:06:28
732
原创 【CUDA笔记】01-入门简介
基于上面的基础概念的介绍, 我们可以 初步拼凑出 Cuda实现向量加法程序do \{ \if (__err!{ \exit(1);} \// -------- 向量加法的 kernel: C = A + B -------- //int main()// 1.初始化 参与计算 与 获得结果 的向量i < DSIZE;// 2.为参与计算 与 获得结果 的向量 在 GPU Memory 上分配空间// 3.将数据拷贝到 GPU 上。
2025-11-08 17:23:47
848
原创 【GAMES202课程小结】:Lecture06 Real-time Enviroment Mapping(Precomputed Radiance Transfer)
本节内容一. 环境光中的阴影二. 前置知识 (1)Frequency and filtering (2)Basis function三. 实时的环境光 (1)Spherical Harmonics(SH : 球面谐波函数) (2)Prefiltered env.lighting (3)Precomputed Radiance Transfer(PRT) 作业二练习
2021-06-28 22:21:28
748
原创 【UE4 Material 101学习笔记】 :Lec08/10/11/12 视差贴图的应用/布料着色/体积冰效果/树叶摇动
视差贴图、布料着色、体积冰效果、树叶摇动效果
2021-04-09 22:03:46
1201
原创 【GAMES202课程小结】:Lecture03 实时渲染中的阴影(1)
本节内容介绍Shadow Mapping基本知识使用PCF实现对阴影的抗锯齿PCSS实现软阴影
2021-04-07 22:22:01
779
原创 【UE4 风格化渲染练习】
前言前段时间看了大神关于非真实渲染的文章,《Real-Time Rendering 3rd》 提炼总结 (十) 第十一章 · 非真实感渲染(NPR)相关技术总结刚好最近在熟悉UE4,在官方课程推荐里看到了这门教程。https://learn.unrealengine.com/course/2721017b站上也有视频的搬运。https://www.bilibili.com/video/BV1KK4y177Ya?p=1这里用可莉的模型来做下练习。关于模型资源的获取和导入
2021-03-15 08:30:00
2530
原创 【UE4 Material 101学习笔记】 :Lec02/04/05/06 默认PBR/UV扭曲/序列帧播放/环境混合
默认PBR、UV扭曲、序列帧动画
2021-03-15 08:27:58
880
原创 【GAMES101 课程小结】:Lecture 15/16 RayTracing
引言这两节介绍基于物理的渲染(PBR)相关知识。介绍了辐射度量学,BRDF,渲染方程,路径追踪等有关概念。
2021-02-12 11:02:13
696
原创 【GAMES101 课程小结】:Lecture 21/22 动画与仿真
内容目录动画生成技术介绍单个粒子运动的模拟(1) Explicit Euler method(2) 数值解法的稳定性分析与改进刚体的模拟流体的模拟正文一. 动画中使用到的一些技术1. 动画的生成动画的生成一般是用一组静态的图片快速播放来实现。通常,我们称这些图片为序列帧。类似小时候玩的这种翻页小人书。视频来源https://www.bilibili.com/video/av60057208/通常视频需要达到 30 帧每秒,才不会有特别明显的卡顿。对于一些虚拟现实的场景,需
2021-02-02 00:39:47
794
原创 【GAMES101 课程小结】:Lecture 07/08/09 Shading
1. Z_buffering 深度测试2. 光照模型3. 着色频率4. 使用纹理贴图
2020-11-21 19:35:07
678
原创 《The Book of Shader》笔记 : 第七节 - 噪声与FBM -- 用噪声勾勒碧海蓝天
定义分形布朗运动FBM(Fractal Brown Motion),是1968年Mandelbrot和Ness两人提出的一种数学模型,它常用于描述自然界的山脉、云层、地形地貌以
2020-11-15 17:37:31
3149
4
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 9】:Dielectrics
Ray Tracing in One Weekend 笔记 - Chapter9:会发生折射的材质该小节中实现了表面会发生折射现象的材质。模型假设:1.文章在实现上做了一些简化,每当光线与该类材质物体表面发生碰撞,便在折射光线和反射光线之间做一次选择,仅生成一种光线。2.折射光线的生成需要满足折射定律。3. 全内反射:“又称全反射(total internal reflection,TIR),是一种光学现象。当光线从较高折射率的介质进入到较低折射率的介质时,如果入射角大于某一临界角θc(光线
2020-11-15 15:50:30
598
原创 《The Book of Shader》笔记 : 第六节 - 噪声入门小结
写在前面之前搜索云雾,火焰,水等效果的时候,噪声一词频繁出现,因而一直想搜索相关概念。现在终于到了这章节。这两节内容从随机数讲起,而后介绍了Value noise, Perlin noise,Simplex noise噪声纹理的生成。(预告:这章之后,理解了噪声与分形的有关概念,大概可以理解这张简单的二维云彩效果是如何生成的了。)
2020-11-15 15:36:29
1046
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 8】镜面材质
本节中尝试将材质抽象为一个抽象类,而后在次基础上新增镜面反射材质,继而在场景中再添加两个不同材质的小球。
2020-11-11 22:20:21
676
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 7】:漫反射材质
本节介绍了漫反射材质,以及建立该类材质模型的一种简单方法,用于在漫反射材质表面生成反射光线。
2020-11-10 08:28:40
745
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 6】:反走样处理
在之前的操作中,只对每个像素点的(0,0)的位置做了一次采样,并用这个点的颜色值代表了整个像素的颜色,因而会有较明显的锯齿感。本节中,对一个像素点的不同位置进行多次采样,对这些采样值取平均操作,从而获得最后代表该像素点的颜色值。该方法也就是常说的MSAA方方法,书中采用的采样方法是对一个像素点的不同位置进行随机采样。
2020-11-09 00:36:09
591
原创 【GAMES101 课程小结】:Lecture 05/06 光栅化,反走样
1. Canonical Cube to Screen2. 光栅化一个三角形3. Antialiasing(反走样,抗锯齿)4. Z-Buffering
2020-11-08 23:24:35
648
原创 【GAMES101 课程小结】:Lecture 17/18 材质相关
前言这两节中介绍了与材质相关话题。17节中提到了几种不同材质的效果,以及与光线交互时的处理,并在中间穿插提到了反射定律,折射定律,菲涅耳项,BRDF等概念。18节中对渲染前沿的一些概念,做了一些介绍。
2020-11-08 16:50:52
706
原创 【GAMES101 课程小结】:Lecture 02/03 线代基础与二维空间中的变换
GAMES前几节的内容相对基础,更多的是对大学所学线代知识的一个复习梳理,这里整合为一个章节。
2020-11-07 11:35:04
650
原创 《The Book of Shader》笔记 :第五节 - Pattern 图案
前言本节是算法绘图的最后一节,介绍了是如何运用简单图形,有规律地重复排布生成图案。
2020-11-06 19:16:51
967
原创 《The Book of Shader》笔记 : 第四节 - Shader中实现位移、旋转、缩放
本节介绍了如何让画面中的图形进行位移,旋转缩放的操作。相比前一节,这节的内容似乎容易些,使用了一些大学高等代数中基本的矩阵运算。
2020-11-05 08:42:32
926
原创 《The Book of Shader》笔记 : 第三节 - Shader绘制简单图形
前言本节示例代码中介绍了如何画出一个矩形,圆形。以及利用极坐标的思想画出简单多边形。
2020-11-03 23:46:23
1354
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 5】:Surface normals and multiple objects
Chapter 5:利用法向量对小球表面进行着色;在场景总中构建多个球本节大致可分为两个模块内容将球体表面的法向量,以着色形式显示到小球表面。定义了球体类,方便在场景中创建多个小球。另外定义了抽象类hitable,帮助检测场景中物体与光线碰撞情况。1.将法向量值映射到小球表面上注: 代码中将hit_sphere 函数的返回值修改为float型float hit_sphere(const vec3& center, float radius, const ray& r) {
2020-11-03 22:24:15
620
原创 《Ray Tracing in One Weekend》笔记 - 【Chapter 4】: Adding a sphere
本节中将在屏幕上画出一个小球。利用球体的表达式与光线表达式,建立方程组,继而求解出光线与小球表面的交点位置。
2020-11-03 08:38:50
555
原创 《Ray Tracing in One Weekend》 笔记 - 【Chapter 3】: Rays,a simple camera,and background
本节中实现了通过光源向背景投射光线的效果,借助光线对画布进行着色。
2020-11-02 22:47:48
568
原创 《Ray Tracing in One Weekend》 笔记 - 【Chapter 2】: The vec3 class
本节里实现了一个基础的3维向量类,包括向量的加减点乘,叉乘等基本运算,以支持后面章节中各种向量运算的需求。
2020-11-02 08:46:45
624
原创 《Ray Tracing in One Weekend》 笔记 - 【Chapter 1】: Output an image
本节中简单介绍了一种方便代码输出的图片格式ppm,为后面查看各种实现的效果打了个基础。(虽然要看这种格式的文图片稍微有些不方便,有时间查查有没有什么方式可以直接将生成的图片转成jpg或其他可以直接查看的格式)
2020-11-02 08:30:50
557
原创 C++:Inline 内联函数小结
为解决代码中频繁调用小函数,消耗大量栈空间的问题,因而引入修饰符inline。运行速度比常规函数稍快,但以代码“膨胀为代价”函数内联,节约的是处理函数调用机制的时长。若函数执行时间短,函数内联的效益较高,反之效益降低使用限制:(1)不可递归使用(2)函数体较大的时候不适合使用(3)必须和函数定义放在一起才能成为内联,仅放在函数声明前不起任何作用适用场景:(1)类似:inline double squre(x) {return x * x;}这样一行就可实现的简短函数(2)类的成员函数
2020-10-30 22:09:18
576
原创 《The Book of Shader》笔记:前言&&VSCode中搭建glsl编写环境
前言了解到这本书,是源于这篇文章。https://zhuanlan.zhihu.com/p/95943444加上最近恰好也想加深下对shader的理解,干脆先挖个坑,记录下后面读这本书的笔记。一.环境搭建首先是练习环境的搭建,先前刚搭建好了 vscode 练习glsl的相关环境。VSCode + shadertoy插件,安装起来很快。具体好像是参考的这篇文章https://panda1234lee.blog.youkuaiyun.com/article/details/104456475另外也看到过
2020-10-28 00:59:48
1870
原创 C++笔记:const关键字
C++笔记:const关键字在C++中用来修饰内置类型变量(int,float,char 巴拉巴拉之类),自定义对象,成员函数, 返回值,函数参数。一.修饰普通变量const int a = 7; int b = a; // 正确a = 8; // 错误,不能改变当一个变量被定义为const 类型常量,便不可再次对其赋值。直接赋值,编译器会报错。通过指针类型变量赋值会导致其他意料之外的情况,如下面这段代码。#include<iostream> using na
2020-10-26 23:05:05
651
原创 C++笔记 : 虚函数,纯虚函数,抽象类
C++:虚函数,纯虚函数,抽象类1.虚函数:被virtual 关键字修饰的成员函数。作用是实现成员函数的动态重载。// --------- 示例 -------- //#include <iostream>using namespace std;class A {public: void print() { cout << "this is A" << endl; }};class B :public A {public: void pri
2020-10-25 10:32:38
617
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅