计算机图形学
文章平均质量分 78
Dezeming
研究方向:数学原理,GPU加速技术,数据结构与算法,机器学习,深度学习神经网络,3D可视化,计算机图形学,图像处理,计算机视觉,Qt程序设计,C++编程
曾学习和研究过:Java,51,stm32,msp430等单片机,嵌入式ARM,DSP,模拟/数字电路,树莓派
展开
-
渲染类会议论文投稿截止日期+含渲染类期刊
Pacific Graphics: The Pacific Conference on Computer Graphics and Applications(全部推荐到CGF):【6月5日摘要,6月8日正文】International Symposium on Mixed and Augmented Reality(journal track直接推荐到TVCG):【3月19日摘要,3月25日正文】Eurographics(全部推荐到CGF):【9月28日摘要,10月6日正文截止】原创 2023-10-09 15:26:18 · 802 阅读 · 0 评论 -
关于Optix v6和Optix v7之间的种种区别
全局光照(GI)有很多种解决方案,比如VXGI、Lumen、DDGI、SSGI、IBL、PRT、SurfelsGI等,其中,越来越火的Nvidia的RTX技术也是软硬件结合的实时光追解决方案。Optix的缺点是就像D3D或者OpenGL,代码比较难以理解。更难的问题在于,没有多少可以用来参考或者学习的资料,尤其是比较通俗的中文资料。笔者在广泛搜集和阅读源码后,撰写了Optix v6和Optix v7两个系列文章。其中,Optix v6来自于对官方源码结合用户手册的解读;原创 2023-08-25 16:06:13 · 269 阅读 · 0 评论 -
图形学相关期刊和会议的基本信息
主要的会议和期刊见:CCF 推荐期刊 2022 (qq.com)CCF 推荐会议 2022 (qq.com)原创 2023-07-03 14:52:15 · 5262 阅读 · 0 评论 -
2022年 IEEE VIS 科学可视化与体渲染论文整理与分析
中2017年以后的与我之前主要方向(体渲染、医学可视化)有关的论文。我把这些年全部的论文进行了筛选和梳理,总共筛选出57篇论文,打算写一个文章来记录这些内容。这个栏目是2022年的7篇论文的介绍。因为最近工作的关系,需要研究一下IEEE。原创 2023-06-27 10:01:47 · 761 阅读 · 0 评论 -
2020年 IEEE VIS 科学可视化与体渲染论文整理与分析
中2017年以后的与我之前主要方向(体渲染、医学可视化)有关的论文。我把这些年全部的论文进行了筛选和梳理,总共筛选出57篇论文,打算写一个文章来记录这些内容。这个栏目是2020年的6篇论文的介绍。因为最近工作的关系,需要研究一下IEEE。原创 2023-06-27 09:40:01 · 282 阅读 · 0 评论 -
2019年 IEEE VIS 科学可视化与体渲染论文整理与分析
因为最近工作的关系,需要研究一下IEEE VIS中2017年以后的与我之前主要方向(体渲染、医学可视化)有关的论文。我把这些年全部的论文进行了筛选和梳理,总共筛选出57篇论文,打算写一个文章来记录这些内容。这个栏目是2019年的九篇论文的介绍。原创 2023-06-27 09:28:22 · 216 阅读 · 0 评论 -
图形学模型资源
最近发现有些以前收藏的网址不见了,为了更好地保存,现在把以前收藏的图形学资源网站整理到博客上。面几何模型https://www.cc.gatech.edu/projects/large_models/https://www.cc.gatech.edu/projects/large_models/斯坦福体数据http://graphics.stanford.edu/data/voldata/voldata.htmlhttp://graphics.stanford.edu/data/voldat原创 2022-03-21 09:46:26 · 686 阅读 · 0 评论 -
计算机图形学(几何与建模方向)学习全攻略——学术科研篇
博主以前是打算做计算机视觉的,但是出于好奇,不幸进入了图形学的大坑。在学图形学中,有一些经验和方法,与大家分享一下。这个博客文章我会不断进行更新,将适合的资料学习顺序进行总结。准备阶段(一般是刚入大学的大学生)首先需要学习编程语言,这里主要指C/C++,C++语言是图形学的基础编程语言,是绝对绕不开的。入门编程书:C++和Python都很重要。现在基于深度学习的几何处理有很多研究方向,使用Python做一些数值计算也会非常方便,适合科研人员;实现一些底层功能会大量使用C++。可以参考我原创 2022-03-10 16:17:43 · 8608 阅读 · 6 评论 -
Voronoi 图的增量式构造与归并构造原理
完整内容见 https://dezeming.top/?page_id=973原创 2021-11-25 10:52:14 · 224 阅读 · 0 评论 -
左右坐标系和右手坐标系
PBRT中惯用左手坐标系,包括设置了transformSwapsHandedness表示是不是变换中换了坐标系。为什么需要变换坐标系呢?我想到一个有趣的比喻,们可以想象,比如我们照镜子,我们的左脸有一颗痣,我们无论怎么把人旋转平移和缩放,哪怕摄像机的位置也进行了旋转和平移,但你的痣还是在左脸上。但是对于计算机模型,我们可以通过计算让你的痣显示在右脸上:可以把你进行对称变换,经过对称变换以后,你的痣就在右脸上了:对称变换其实就是坐标系变了。...原创 2021-03-11 14:11:28 · 3795 阅读 · 0 评论 -
PBRT——零基础到完全吃透系列
PBRT源码解读 见PBRT源码解读原创 2021-01-17 15:55:10 · 12609 阅读 · 1 评论 -
模型视角变换与投影
计算机图形学技术见计算机图形学技术好像还从来没写过与模型视角变换方面的内容,打算认真写写。目录模型在世界坐标系下的变换转换到摄像机空间投影正规视体到屏幕坐标整个模型视角变换流程大致如下(图片来自虎书):其中,正规视体是三维坐标都在-1到1之间的立方体。模型在世界坐标系下的变换首先通过缩放旋转平移矩阵将物体转移到世界坐标系下:, 其中表示模型自身的坐标位置,经过矩阵变换后可以转移到世界坐标位置。转换到摄像机空间相机空间中,相机位置在原点,看向-...原创 2021-01-15 15:22:40 · 4064 阅读 · 0 评论 -
万向节死锁
计算机图形学技术见计算机图形学技术很多人之所以不理解什么是万向节死锁,是因为他们没有一开始就注意到这些概念:注意,欧拉角的旋转变换是有顺序的!而且,欧拉角旋转只有在自身坐标系下才会出现万向锁!只是沿着世界坐标系旋转的话不会产生万向锁!假如我们先绕世界坐标的y转,再绕自己轴的x转,最后再绕自己轴的z转。之所以先绕世界坐标的y,是因为相当于对世界有一个参考。如图,红绿蓝对应xyz三个轴如果我们沿着物体坐标轴y(其实同时也是世界坐标y)转30度:(注意图上还有对应于物体的...原创 2021-01-12 18:12:47 · 13568 阅读 · 1 评论 -
交叉双边滤波器 cross bilateral filter
crossbilateral filter可以表示为joint bilateral filter。与双边滤波一样,交叉双边滤波在不平滑边缘的情况下,同时考虑了相邻像素的灰度相似性和几何贴近度,但它使用一幅图像寻找核,另一幅图像进行滤波。双边滤波双边滤波是一种局部的、非线性的、非迭代的滤波技术,它将经典的低通滤波器与边缘停止函数相结合,当像素之间的强度差较大时,边缘停止函数会衰减滤波器的核心。由于同时考虑了相邻像素的灰度相似度和几何贴近度,滤波器的权值不仅依赖于欧氏距离,而且还依赖于灰度/颜...原创 2021-01-06 23:23:30 · 5069 阅读 · 0 评论 -
光线追踪和路径追踪、双向路径追踪、Metropolis光传输之间的区别与联系
首先描述一下几种算法:光线追踪(Whitted光线追踪,最简单的光追形式):对每个像素: 从eye位置穿过该像素发射Ray 像素颜色 = trace(Ray)trace(Ray) 找场景最近的交点p,计算其法向量n color = shade(p,n) return colorshade(p,n) color = 0 对每个光源: 跟踪阴影光线,如果没有被遮挡: color += 光照量原创 2020-12-25 22:42:45 · 5872 阅读 · 6 评论 -
BRDF的表示形式
单位时间单位面积的通过表面的能量为E:,其中BRDF:为什么它不是用反射radiance比上入射radiance,而是采用反射radiance比上入射irradiance呢?有人说,“如果BRDF使用的radiance和radiance的比值,那么想得到brdf就得计算入射光线的radiance,而计算radiance很困难。计算入射光线irradiance则相对容易”,这种解释不是很对。其实,我们先看看如果采用这种BRDF的表示形式,这样计算某个方向的反射辐射度时,就可以采用公式.原创 2020-12-25 16:23:39 · 414 阅读 · 0 评论 -
MC光线追踪在镜面反射会出现白噪点
如图:在做蒙特卡洛光追的时候,我们一般都是按PDF进行采样的,比如下面的场景:初始视线首先击中漫反射物体,然后它继续对其他物体采样:对于第二次递归的Ray来说,以它的角度,如果击中的是上面的镜面反射物体,而不是场景中漫反射物体,则几乎一定会反射到光源上:导致概率密度过大...原创 2020-12-22 09:22:11 · 1409 阅读 · 0 评论 -
球谐光照技术 —— 原理+程序(全网最通俗易懂的版本)
渲染基础研究球谐光照必备的知识,这里简单总结一下。假设时间是静止的,空间中充满了光子。衡量一个表面的光子数量可以表示为flux,单位是joules/second或者watts。单位面积的flux称为irradiance,单位是 watts/meter^2,大小与投影夹角有关,夹角变大,单位面积的irradiance就会变小。MonteCarlo之前写过一堆关于MC和MIS等技术的文章了,网上资料也是一大堆,这里就不再赘述。canonical random varia...原创 2020-12-17 23:12:52 · 12746 阅读 · 2 评论 -
切线空间的注意事项
TBN矩阵的计算一般是先在CPU上根据每个三角形的三个顶点,计算出该顶点的TBN矩阵。TBN矩阵的第三行是法向量,这个法向量可以是共顶点面的柔化的顶点法向量(顶点属性平均化)。故其实T和B也可以平均化,获得更柔和的切线向量和副切线向量。副切线可以简化计算:vec3 B = cross(T, N);操作方法第一种,计算TBN矩阵,然后作用于视向量、光源(GLSL语言,来自LearnOpenGL)//顶点着色器 mat3 normalMatrix = transpose(inve.原创 2020-12-16 20:42:42 · 221 阅读 · 0 评论 -
计算机图形学(渲染方向)学习全攻略——学术科研篇
博主以前是打算做计算机视觉的,但是出于好奇,不幸进入了图形学的大坑。在学图形学中,有一些经验和方法,与大家分享一下。这个博客文章我会不断进行更新,将适合的资料学习顺序进行总结。准备阶段(一般是刚入大学的大学生)首先需要学习编程语言,这里主要指C/C++,C++语言是图形学的基础编程语言,是绝对绕不开的。入门编程书:建议的阅读顺序:The C Programming Language->C primer plus -> C++ primer推荐顺序理由:第一本书最简洁,例.原创 2020-12-16 09:58:12 · 19298 阅读 · 5 评论 -
Metropolis算法求解积分问题
计算机图形学技术见计算机图形学技术Metropolis算法有两种计算积分时的产生随机数的方法:已知目标概率分布 p(x),使用蒙特卡洛方法对该目标函数进行抽样。 已知转移概率分布,给定初始概率分布,markov会迭代趋于稳定分布。这里Metropolis算法是依赖于第一种情况:已知目标概率分布,从中得到样本markov链的最基本性质:当前状态仅取决于前一个状态。方法大致流程基于当前随机数 a 产生新的随机数 b 该随机数 b 以一定概率被接受或者拒绝 接受的 b 作为下一次...原创 2020-12-11 11:20:15 · 2445 阅读 · 0 评论 -
PBRT的程序运行流程
一、程序启动定位到生成完的PBRT的Release目录下,在终端输入:pbrt ../Scenes/material-testball/scene.pbrt即可开始进行渲染。定位程序到pbrt.cpp:main函数为执行入口。一开始初始化google工具,我也不知道有什么用处。然后接下来就是对输入的字符串进行比较,有一些命令行命令,strcmp相等返回0,如果判断不是任何命令,则把该字符串入vector。上面就是把文件名存入vector。而后根据option初始化:option里...原创 2020-12-08 20:40:58 · 794 阅读 · 0 评论 -
线程分支
计算机图形学技术见计算机图形学技术如下图:由于GPU中采用SIMT的计算体系,相同线程簇(半个warp,即16个线程)中的线程在同一时间周期执行相同的指令,因此当设计的程序出现比较多的分支时,会出现明显的线程分歧现象,造成性能的下降。如上图中当程序出现分支时,有一部分线程执行当前分支,其他线程需要等待。在下一个时序中,程序执行另一个分支,部分线程执行该分支,而其他不属于该分支的线程需要等待。当最后结束分支时,所有线程才能继续同时执行其他代码。我们可以得出在当出现分支时,是需要部分线...原创 2020-12-08 13:30:32 · 372 阅读 · 0 评论 -
共享内存 Bank冲突
计算机图形学技术见计算机图形学技术GPU上的warp其实是软件上来说的,在CUDA架构中,一个warp指的是32个线程的集合,这些线程是“编织在一起”并以一致步调(lockstep)方式执行的。在程序的每一行,warp中的每个线程对不同的数据执行相同的指令。为了获得较高的内存带宽,共享存储器被划分为多个大小相等的存储器模块,称为bank,可以被同时访问。如果跨越多个(假设n个)不同的内存bank的对里面的m个地址进行读取和写入的操作,这是可以被同时执行的,这样就大大提高了整体的带宽 ,带宽可..原创 2020-12-08 11:01:49 · 1414 阅读 · 0 评论 -
SIMD:单指令多数据
计算机图形学技术见计算机图形学技术单指令流多数据流是一种采用一个控制器来控制多个处理器,同时对一组数据中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处理器中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元。现代CPU中还有SIMD寄存器,用以支持向量操作:假如我们需要对一个向量进行倍乘,SIMD指令就可以将一个向量的几个数据全都读取到寄存器中进行计算,而不是每次只读取一个数据再进行计算。...原创 2020-12-07 09:48:19 · 1210 阅读 · 0 评论 -
串行指令的并行方法(防止并行Hazard)-pipline bubble、操作数前移、乱序执行等
计算机图形学技术 见计算机图形学技术下面是通过4级管道执行相同的四条指令的执行。pipline bubble:右图表示并行中出现了障碍:出于某种原因,紫色指令的延迟会导致产生一个bubble,从而延迟后面的所有指令。注意上图的指令执行顺序需要从上向下看。Operand forwardingADD A B C #A=B+CSUB D C A #D=C-A如果这两条汇编伪代码指令在管道中运行,则在获取和解码第二条指令之后,管道将暂停,等待加法的结果被写入和读取。1.原创 2020-12-05 22:14:54 · 577 阅读 · 0 评论 -
什么是shader aliasing着色器走样
计算机图形学技术见计算机图形学技术所谓着色器走样,我们考虑像素着色器上的像素点:加入我们要对每个像素值进行同一种线性操作,比如,值乘以两倍,这没关系对吧,大家一起亮两倍,不会有偏差。但是大部分操作都是非线性的,就可能因为插值造成走样,本质上是像素着色器改变了频率。在法线贴图中,用法线纹理计算光照时,就会加剧这种现象:根本原因在于着色器中对光源采样不足(按照渲染方程,应该对整个半球面都采样)。法线贴图让表面的频率加剧,故造成光在表面具有更高的频率分布,显示出高光闪烁。...原创 2020-12-04 15:34:13 · 419 阅读 · 0 评论 -
计算机图形学技术
这个博客系列里面的内容会尽可能讲解得足够详细和通俗易懂,但很多内容也不会是零基础的,而是在科研中解决的一些疑问。原创 2020-12-04 14:59:15 · 4880 阅读 · 3 评论 -
半角切片阴影 half-angle slice based —— 全网最好和最易懂的算法描述
竟然没有人写过这个这么著名的技术。但是不瞎吹,个人认为在算法描述上确实已经足够清晰和透彻了(在彻底通读了三篇论文以后)。首先在说明这项看着貌似有点不太好理解的技术之前,一定要牢记一点:Adding shadows to the volume lighting model means that light gets attenuated through the volume before being reflected back to the eye.这才是阴影的本质,无非就是光照被其他体素遮原创 2020-11-30 18:04:56 · 908 阅读 · 0 评论 -
全局体渲染光照技术总结概括(截止到2014年)
参考文献:A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering交互式体光照技术的三个挑战:体照明模型 交互式传输函数 应用于GPU的算法科学可视化领域开发体光照模型的主要动机之一是提高视觉感知能力。我们将回顾和比较先进体积照明的现有技术,这些技术的适用性来自于照明能力、性能行为以及技术实现。由于本报告涉及交互式高级体积照明技术,可能适用于科学可视化,因此不考虑在渲染过程中不允许改变传递函数原创 2020-11-14 15:47:15 · 2477 阅读 · 0 评论 -
Exposure编译失败的原因总结
注意问题一:在cmake编译好以后,记得手动把编译文件中的moc_MainWindow.cxx添加到工程的Generated里面,否则会提示MainWindow.obj:error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall...原创 2020-10-24 15:47:23 · 790 阅读 · 0 评论 -
三维可视化体渲染效果
今天是程序员节。发几张最近渲染的图像吧。原创 2020-10-24 11:39:59 · 974 阅读 · 4 评论 -
编译PBRT-v3源码
首先下载文件和配置环境:安装VS2015安装git ,git的下载网址为https://git-scm.com/downloads在git里输入命令:git clone --recursive https://github.com/mmp/pbrt-v3/一定不要不加 --recursive,不然cmake的时候会提示你没有recursive等相关信息。下载后的文件在https://blog.csdn.net/tiao_god/article/details/1089974..原创 2020-10-10 19:25:42 · 450 阅读 · 0 评论 -
glut 常用函数描述
虽然现在OpenGL工具已经非常多了,但是使用GLUT会非常方便,有些glut常用函数列在这里:设置初始窗口的位置(窗口左上角相对于桌面坐标(x,y))void glutInitWindowPosition(int x, int y);...原创 2020-09-22 11:36:17 · 314 阅读 · 0 评论