avatar
文章
50
标签
48
分类
10

Home
Archives
Tags
Categories
Home
Archives
Tags
Categories

VanishingBlog

DDGI介绍
发表于2024-07-09|ComputerGraphics|DDGI•Lumen•GI•RayTracing
前言DDGI(Dynamic Diffuse Global Illumination,动态漫反射全局光照).是由Nvida于2019年推出的一种基于Probe,基于RayTracing(光线追踪)的动态漫反射全局光照技术,可以在动态的场景与光照中实时的生成漫反射的全局光照. 全局光照在实时渲染领域中,实现全局光照意味着实现间接光照,即光线弹射两次或更多次后进入人眼的光照。 在DDGI技术出现的2019年之前,学界在解决全局光照问题时的方法就已经可谓是百花齐放,所以我们先简单回顾一些经典的全局光照的解决方案. Baked Global IlluminationBaked Global Illumination(烘焙全局光照)或称Lightmap(光照贴图)是一种离线计算全局光照的方法,也是目前游戏中主流的解决方法. 这种方法的基本思路是将场景中的光照信息预先计算并保存为一张光照贴图,然后在渲染时直接读取光照贴图进行渲染.而在计算光照信息时,常常会用到光子映射的技术. 它们的优点是结果细腻,但是缺点是无法处理动态场景或动态光源. 这不由得让我想起了小时玩黑魂3时判断宝箱怪的技巧:没有影子的 ...
.Net响应式编程,一键入坑到入坟
发表于2025-09-23|编程理论.NET|.NET•C#•Rx•Rx.NET•Reactive-Extensions•Reactive-Programming•函数式编程
前言这是一份面向 .NET 工程师的 Rx.NET 学习与实践指南:从 IObservable/IObserver 基础,到 Subject 类型、冷/热源、多订阅控制,再到调度器与线程模型、时间类操作符、错误处理与测试,最后给出落地的最佳实践清单。适合希望系统性掌握响应式编程并在实际项目中安全使用 Rx 的读者。 你可以在Rxxxxxxx中找到一些代码示例 对于调度器一章节,为了更好理解,可以查看这个仓库:VaniRx Part1 - Why Rx.NET事件的问题 讽刺的是,如果没有event关键字,c#的对事件的处理会更好 .NET event关键字基本问题是: 它们在 .NET 类型系统中得到了特殊处理, 使得没法像对象一样操作事件,比如存储在字段中,作为参数传递,不能使用LINQ,不能拓展等等. event唯一的优势在于: += & -=​ IObservableIEnumerable<T> vs. IObservable<T> IEnumerable<T> 让代码(IEnumerator)可以主动获取 ...
PBR--从理论到实际
发表于2024-11-03|Computer Graphics|PBR
状态: 更新中… Intro 前置知识辐射度量学下面的所有概念,请记英文(因为中文翻译千奇百怪). Radiant Energy(辐射能量)单位: J(焦耳) 用于描述能量的大小.比如一颗原子弹能释放的总能量大约为10^10 J. Radiant Flux(辐射通量)单位: W(瓦特)单位: lm(流明,照明度单位,lumen)单位: J/s(焦耳每秒) 描述单位时间内通过某一面积的辐射能量.比如太阳mitted的辐射通量大约为3.828 x 10^26 W/m^2. Radiant Intensity(辐射强度) 功率/立体角 单位: W/sr (瓦每立体角) 单位: cd(坎德拉,candela) 太阳照的坎德拉为3.828 x 10^10 cd/m^2.地球在太阳的立体角为: 23.45 deg.可求太阳对输出的功率为: 3.828 x 10^10 W/m^2 * 23.45 deg = 1.05 x 10^11 W/sr. 再比如这个灯泡: Irradiance 功率/面积 单位 ...
NeRF介绍
发表于2024-07-15|3D Reconstruction|NeRF•AI•Deep Learning•Computer Graphics
NeRF介绍 前言NeRF(Nerual Radiance Field):神经辐射场,是在2020年被提出的一种三维重建技术。由于其对比传统三维重建技术来说有简单快速且效果好的优势,尤其是解决了传统三维重建难以处理的反射表面和烟雾等半透明物体,以至于迅速爆火甚至“出圈”。 三维重建我们经常会听到“渲染”一词,这是一个将计算机中存储的各种数据(Mesh,材质,光照等)通过一定的流程从而得到一张图片。而三维重建可以认为是这一过程的逆过程,即通过已有的图片,来还原一个三维的场景。 传统的三维重建技术一般有四个步骤:1. SfM(运动恢复结构)该步骤接受图像和摄像机内外参数作为输入,输出一个三维的稀疏点云2. MVS(多视立体视觉)该步骤将前一步的稀疏点云进行稠密化,进而输出稠密的三维点云3. 表面重建根据三维点云计算出三角网格4. 纹理重建通过输入图像为mesh计算出纹理 传统的三维重建很常常会出现模型有空洞和不正确的问题,并且需要很多的数据量,而且其中的算法颇为复杂。 NeRF OverViewNeRF对于传统三维重建技术最大的不同点在于,通过构建一个神经辐射场来隐式地表达了场景,而跳过了 ...
静态批处理 & 动态批处理 & GPU Instancing
发表于2024-10-23|Computer Graphics|Graphics•Optimization•Unity•Batching
Intro我们知道,在传统的渲染管线中,为了渲染一个物体,CPU需要向GPU发送一个DrawCall命令.比如下面这段代码: glDrawElements(GL_TRIANGLES, indices->size(), GL_UNSIGNED_INT, 0); 而在下达DarwCall命令之前,CPU还需要设置好渲染状态,绑定顶点数据,绑定纹理,设置材质等等.比如这样: glBindVertexArray(VAO); // 设置VAOmaterial->Use(); // 设置材质status->Set() // 设置物体各种状态//...glDrawElements(GL_TRIANGLES, indices->size(), GL_UNSIGNED_INT, 0);//DrawCall 值得注意的是,设置各种参数的操作费用不低,DrawCall也是一个非常费的操作(虽然现代图形API已经做了很多相应的优化). 这就出现了一个问题,看下面这个场景: 在这个场景中,各种各样的物体十分之多,如果每个物体都需要发送一次DrawCall命令的话,那么帧数将十分 ...
Sheen从理论到实践
发表于2025-09-23|Computer Graphics|PBR•Rendering•Computer-Graphics•Shading•Sheen
本文为这篇文章的翻译与整理 光泽(Sheen) 属性 类型 描述 必需 sheenColorFactor 线性空间中的光泽颜色。 否,默认值:[0.0, 0.0, 0.0] sheenColorTexture 光泽颜色纹理(RGB,sRGB传输函数)。 否 sheenRoughnessFactor 光泽粗糙度。 否,默认值:0.0 sheenRoughnessTexture 光泽粗糙度alpha纹理。 否 光泽计算颜色和粗糙度if (sheenColorTexture) { sheenColor = sheenColorFactor * sampleLinear(sheenColorTexture).rgb; sheenRoughness = sheenRoughnessFactor * sample(sheenRoughnessTexture).a;} else { sheenColor = sheenColorFactor; sheenRoughness = sheenRoughnessFacto ...
Irridescence从理论到实践
发表于2025-09-23|Computer Graphics|PBR•Rendering•Computer-Graphics•Shading•Iridescence
本文为这篇文章的翻译与整理 彩虹色(Iridescence)彩虹色描述了一种色调随观察角和光照角变化的效果。 半透明层的薄膜产生相互反射,由于薄膜干涉,某些波长被吸收或放大。 例子包括肥皂泡、油膜和昆虫翅膀。 此扩展允许指定薄膜的厚度和折射率(IOR),实现彩虹色材质。 属性 类型 描述 必需 iridescenceFactor 彩虹色强度因子。 否,默认值:0.0 iridescenceTexture 彩虹色强度纹理。 否 iridescenceIor 薄膜层的折射率。 否,默认值:1.3 iridescenceThicknessMinimum 最小薄膜厚度(纳米)。 否,默认值:100.0 iridescenceThicknessMaximum 最大薄膜厚度(纳米)。 否,默认值:400.0 iridescenceThicknessTexture 厚度纹理。 否 强度计算: iridescence = iridescenceFactor * iridescenceTexture.r 如果未设置纹理,假设值为1.0。 如果irid ...
ClearCoat从理论到实践
发表于2025-09-23|Computer Graphics|PBR•Rendering•Computer-Graphics•Shading•ClearCoat
本文为这篇文章的翻译与整理 清漆层(Clearcoat) 类型 描述 必需 clearcoatFactor 清漆层强度。 否,默认值:0.0 clearcoatTexture 清漆层强度纹理。 否 clearcoatRoughnessFactor 清漆层粗糙度。 否,默认值:0.0 clearcoatRoughnessTexture 清漆层粗糙度纹理。 否 clearcoatNormalTexture 清漆层法线贴图纹理。 否 如果clearcoatFactor为零,整个清漆层将被禁用。 值计算清漆层强度和粗糙度可以使用因子、纹理或两者来定义。 如果未提供clearcoatTexture或clearcoatRoughnessTexture,则假设其纹理分量的值为1.0。 所有清漆层纹理在线性空间中包含RGB分量。 如果同时存在因子和纹理,因子作为线性乘数: clearcoat = clearcoatFactor * clearcoatTexture.rclearcoatRoughness = clearcoatRoughnessFactor * ...
Anisotropy从理论到实践
发表于2025-09-23|Computer Graphics|PBR•Anisotropy•Rendering•Computer-Graphics•Shading
本文为这篇文章的翻译与整理 各向异性(Anisotropy)引入了两个新的材质属性:强度参数和镜面反射相对于表面切线延伸的方向。 强度参数是范围在[0, 1]内的无量纲数字,它增加了沿选定方向的粗糙度。 默认方向与网格的切线对齐,如glTF 2.0规范中的网格部分所述。 切线空间要求使用各向异性材质的网格基元必须具有定义的切线空间: 它必须具有NORMAL和TANGENT属性,或者 其基础材质必须具有法线纹理。 如果网格基元没有NORMAL或TANGENT向量,它们将按照glTF 2.0规范的定义进行计算。 由于glTF 2.0不强制要求任何特定的切线空间推导算法,网格基元应该始终提供它们的NORMAL和TANGENT向量。 当材质同时具有normalTexture和anisotropyTexture时,这些纹理应该使用相同的纹理坐标,因为它们在同一切线空间中操作,且它们的纹素值通常相关。 各向异性纹理当提供时,各向异性纹理编码: 红色和绿色通道: 切线空间中各向异性方向向量的XY分量。 蓝色通道: 各向异性强度。 所有值都使用线性传输函数存储。 反量化 红色 [0, ...
函数式编程原则
发表于2025-09-10|编程理论|函数式编程
函数式编程原则原则 优先使用表达式而不是语句 使用高阶函数 实现函数组合 ‍ Dos & Don’ts Dos 尽力编写纯函数 隔离副作用 促进数据不可变性 使用 [Pure] Don’ts 修改输入参数 忽视 [Pure] 忽略上下文: 盲目避免副作用,但实际上副作用是无可避免的 ‍ ‍
12…5
avatar
Vanish
KeepLearning
文章
50
标签
48
分类
10
Follow Me
公告
公告竟然消失了!
最新文章
Sheen从理论到实践2025-09-23
Irridescence从理论到实践2025-09-23
ClearCoat从理论到实践2025-09-23
Anisotropy从理论到实践2025-09-23
.Net响应式编程,一键入坑到入坟2025-09-23
分类
  • 3D Reconstruction1
  • C++1
  • Computer Graphics10
  • ComputerGraphics2
  • OpenGL9
  • TroubleShooting1
  • algorithm1
  • glTF3
标签
PBRAnisotropyRenderingComputer-GraphicsShadingClearCoatDDGILumenGIRayTracingDFSSDistance FieldSoft ShadowsSDFGraphicsEarly-ZPre-ZglTF3DIridescenceNeRFAIDeep LearningComputer Graphics.NETC#RxRx.NETReactive-ExtensionsReactive-Programming函数式编程OpenGLDpeth Testsoft shadowPCFPCSSVSSMMSMSTLC++
归档
  • 九月 202520
  • 十二月 20243
  • 十一月 202411
  • 十月 20244
  • 九月 20248
  • 七月 20242
  • 六月 20241
  • 五月 20241
网站资讯
文章数目 :
50
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2024 - 2025 By Vanish
框架 Hexo|主题 Butterfly
湘ICP备2024058874号 http://beian.miit.gov.cn