Skip to content

Commit ee5a6fe

Browse files
Use Fibonacci sequence to increase sample_clamp_indirect
1 parent 3b5f6f1 commit ee5a6fe

2 files changed

Lines changed: 21 additions & 5 deletions

File tree

Cycles/SFR_Benchmark_cy.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import bpy
2-
3-
from ..Utils.SFR_TestRender import TestRender
2+
import itertools as it
43

54
from bpy.types import Context, Operator
5+
66
from .. import SFR_Settings
7+
from ..Utils.SFR_TestRender import TestRender
78
from ..install_deps import dependencies
9+
from ..Utils.fib import fib
810

911

1012
class SFR_Benchmark_cy(Operator):
@@ -290,17 +292,21 @@ def execute(self, context: Context):
290292
iteration = 0
291293
repeat = True
292294
TestRender(path, iteration, settings)
293-
while repeat:
295+
for x in it.takewhile(lambda _: repeat, fib()):
296+
# save best value found so far before rendering next iteration
297+
best_val_found = cycles.sample_clamp_indirect
294298
# set settings
295-
cycles.sample_clamp_indirect += 1
299+
cycles.sample_clamp_indirect += x
300+
print(f"Indirect Clamp increment {x} to {cycles.sample_clamp_indirect}")
296301
if self.insert_keyframes:
297302
keyframe_insert('cycles.sample_clamp_indirect')
298303
# set next
299304
iteration += 1
300305
print("Indirect Clamp Iteration: ", iteration)
301306
# start second render
302307
repeat = TestRender(path, iteration, settings)
303-
cycles.sample_clamp_indirect -= 1
308+
print(f"Best value found: {best_val_found}")
309+
cycles.sample_clamp_indirect = best_val_found
304310
if self.insert_keyframes:
305311
keyframe_insert('cycles.sample_clamp_indirect')
306312

Utils/fib.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import itertools as it
2+
3+
def fib():
4+
''' A modified Fibonacci generator that starts at 1 and increments '''
5+
a, b = 1, 1
6+
while True:
7+
yield a
8+
b = a + b
9+
yield b
10+
a = a + b

0 commit comments

Comments
 (0)