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. 6666666666

  2. 666666

  3. 学习使我快乐

  4. 学习使我快乐

  5. 666666666666666666666666666666666666666666

  6. 66666666666666666666666666666666

  7. 6666666666666666

  8. 6666666666

  9. 66666

  10. 没有说明?密码多少?

  11. 66666666666666666666666666666666666R大我第一

  12. 666666

  13. 666

  14. 感谢分享

  15. 66666666666666666666666666666666666R大我第一

有新私信 私信列表
搜索