Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告)

本文索引

简介

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 1
炎炎夏日,烤机必备!,之前就了解过 Arnold 分形渲染,今天终于给撸出来了,不过人家大佬 7 年前就撸过了,不得不佩服 Arnold 的强大,分形上站酷的亲,记得帮推一下哦!

知识背景

本简短教程介绍如何通过 .ass 文件渲染 Mandelbulb。我们将生成 Mandelbrot 和 Julia 集的“Mandelbulb”3D 版本。有关如何生成 Mandelbulb 的详细信息。

大型程序数据集
本教程介绍了如何通过有限的 RAM 在程序中创建尽可能多的几何体。

用于在 Arnold 中渲染的、以程序方式生成的几何体在 3 个阶段使用 RAM。第一个阶段是生成数据,第二个阶段是填充 Arnold 的数据结构,最后一个阶段是创建光线加速数据结构(边界体积层次(BVH)通常是最大的)。所有这些阶段完成后,将开始实际渲染,这时不会使用更多内存。在 Arnold 的数据结构内直接构建数据数组是最高效的方法(如果可能)。用户无法控制 BVH 的 RAM 使用量。

Mandelbulb
在我们的示例中,将生成 Mandelbrot 和 Julia 集的“Mandelbulb”3D 版本。此算法涉及对函数 (Z^n+C) 进行迭代,并查看它是否离开半径为 2 的球体;如果在内部停留设定的步数,则将它视为“拘留点”,并在那里放置一个小球体。对于显示 Mandelbulb 来说,将此数学实体渲染为密集的球体栅格既不是最巧妙的方式,也不是最高效的方式;我们只是以此为方法来创建本教程所需的大量数据。

将生成分解为区块
我们无法得知渲染完成后会有多少个球体,因此无法直接填充 Arnold 的数组;因此我们改为填充链接列表,然后使用它在第二次处理时填充数组。如果我们使用所有球体的巨大链接列表来填充 RAM,则需要为 Arnold 分配一个数组以将数据复制到其中;使用此方法,我们只能利用系统中 RAM 的一半。在示例中,我们将任务分解为较小的区块,每个区块填充一个链接列表,分配一个数组,然后删除链接列表。这样,就可以将全部的 RAM 用于可渲染的几何体。在我们的示例中,我们只是将 Mandelbulb 分解为 X 轴上的板。

多线程
运行生成点的数学计算会占用 CPU 功率,许多现代系统都可以访问单个系统上的多个 CPU。为了尽可能高效地填充 RAM,我们提取每个区块,再将其分解为子区块,让单个 CPU 使用 Arnold 的 AiThreadCreate() 并行填充每个子区块。可以在此方法中并入许多其他加速方法(如 SIMD sin/cos 函数、将计算转移到 GPU 或其他方法),但是这些类型的优化未包括在示例中。

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 2
Julia 集是复平面上一些点的集合,当这些点进行平方并与某个常数 (C) 迭代相加后,“束缚点”没有逃出半径为 2 的圆形区域时,我们称这些点的集合为 Julia 集。对于常数 C 所有可能的值,存在一个完整的 Julia 集;C 是复平面上的一个二维值。

Julia 集有 2 种不同的类型:

1. 完全连通。
2. 由点组成的分散的 Cantor 尘(有关 Cantor 尘的详细信息,请参见 http://en.wikipedia.org/wiki/Cantor_set
如果 Julia 集的中心点 (0,0) 是束缚点,则 Julia 集是完全连通的;如果它不是束缚点,则 Julia 集是 Cantor 尘。

Mandelbrot 集是所有完全连通的 Julia 集的集合。它是通过对所有可能的 Julia 集的中心点进行采样而生成的。这意味着,对应 Mandelbrot 集中的每个点,可以生成一个 Julia 集。虽然这两个集合在复平面中都是连续函数,但我们通常通过抽样一个均匀栅格(像素)来渲染它们,如果点是束缚点,将被渲染为黑色。
Mandelbulb 将这个数学计算延伸到三个维度。此生成器的工作原理是:对一个常规栅格中的所有点进行采样,如果点是束缚点,便将其添加到一个 Points 几何体节点中进行渲染。
;

渲染步骤

1、创建一个 Arnold 程序对象。

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 3

2、为 Arnold 程序添加材质,创建场景照明等。

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 4

3、在 Arnold 程序--重写--用户选项,填入以下代码:
declare gridsize constant INT
gridsize 1200
declare max_iter constant INT
max_iter 9
declare power constant FLOAT
power 8
declare spheremult constant FLOAT
spheremult 1
declare orbitthresh constant FLOAT
orbitthresh 0.05
declare chunks constant INT
chunks 25
declare threads constant INT
threads 50
declare julia constant BOOL
julia off
declare Cval constant POINT
Cval -0 1 0

Arnold 渲染 Mandelbulb 分形大法代码参数解释参考

4、开启 IPR,再在 Arnold 程序--Main--类型--切换为 Mandelbulb,即可开启。

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 5

接下来感受一下真香警告吧,炎炎夏日,CPU 非常嗨~上图:

配置 2700X、32G,C4DtoA 2.5.2,C4D R19,采样 AA5~8,漫射 6,渲染 21 分钟,CPU 温度飙到 75°左右,大致如此,玩的开心哈!

Arnold(C4DToA)阿诺德渲染教程(113):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法 大型程序数据集 (附网友测试报告) - R站|学习使我快乐! - 6

群佬测试,2990WX 开景深,渲染 3 分钟不到,尼玛,这差距也太大~~

其他说明:

7 年前 Arnold 玩家就渲染了,由约 2.5 亿个球体构成的 Mandelbulb 上的球体大小,你们猜猜他当时用的啥配置?

安装说明

隐藏内容,您需要满足以下条件方可查看
End
Arnold(C4DtoA)VIP专享

【VIP专享】中文字幕《Arnold阿诺德材质宝典》蜘蛛侠·平行宇宙 3D漫画风格卡通材质 3渲2技法 Toon Shader 视频教程

2019-6-26 12:44:37

Arnold(C4DtoA)

Arnold(C4DToA)阿诺德渲染教程(114):真香警告 硬件杀手 Arnold 渲染 Mandelbulb 分形大法代码参数解释

2019-7-26 19:18:29

152 条回复 A文章作者 M管理员
  1. 666666666

  2. 看看

  3. 6666666666666

  4. 555555

  5. 实打实的阿萨

  6. 666666点撒的

  7. 6666

  8. Main–类型–切换为Mandelbulb,找不到这个啊

    • 试试2.6.0版本,双语补丁中集成了!!

  9. 1

  10. 对方公司公司股份

  11. 666666666666666666666666666666666666666666

  12. 666666666666666666666666666666666666666666

  13. Main–类型–切换为Mandelbulb,找不到这个啊

  14. Main–类型–切换为Mandelbulb,找不到这个啊

  15. Main–类型–切换为Mandelbulb,找不到这个啊

有新私信 私信列表
搜索