简介
在上一节文章中,窝萌了解了 Arnold 渲染分形大法,本文就其中第三步加入的代码来做个解释,以便你更好的调整渲染姿势。
其中代码如下:
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
参数说明
栅格大小(Gridsize)
栅格大小是栅格中单元的数量,即 800 x 800 x 800。
要增大 Mandelbulb 的分辨率,需要增大栅格大小。较高的数值将创建更多的球体。增大此数值时应小心谨慎,因为内存使用和渲染时间会随之增加。
最大迭代次数(Maximum iterations)
尝试的最大迭代次数。如果经过这些次数的迭代后,点仍然位于半径为 2 的球形内,则认为它是束缚点。
幂(Power)
在二维模式下,Julia 集和 Mandelbrot 集是通过对 Z 的二次幂加 C 进行反复迭代得出的。在三维模式下,使用 8 次幂可得到更有趣的效果,但是如果您需要,可尝试通过控制选项更改此值。
Spheremult
这是每个单元中球体半径的倍数;较大的球体混合得更好,但会使效果“蓬松”,较小的球体会更多得显示栅格。
Orbitthresh
如果一个点在迭代后不会超出这个距离,则认为它完全位于该 Mandelbulb 内,并且不会添加它进行渲染;这将在 Mandelbulb 的中心清除出一个很大的空心区域,从而使几何体更亮一些。
区块数
这是 Mandelbulb 分解成的区块数量,这样就不用在内存中一次构建整个集合。数值越大,使用的内存越少,极限在 30 左右。
螺纹
对栅格值进行采样时生成的 CPU 线程数量。
Julia
此开关用于控制是渲染为 Mandelbulb 还是 Julia 集
Cval
用来生成 Julia 集的 C 值;当 Julia == 禁用时,将忽略此值。
看不懂哎
哇哇哇