Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to render scene with more than 10k spp? #1335

Open
brabbitdousha opened this issue Oct 9, 2024 · 3 comments
Open

How to render scene with more than 10k spp? #1335

brabbitdousha opened this issue Oct 9, 2024 · 3 comments

Comments

@brabbitdousha
Copy link

brabbitdousha commented Oct 9, 2024

Summary

Hi, I am using python with mitsuba3, and I need to render a reference image with more than 10k spp, maybe 100k spp. However, with mi.set_variant("cuda_ad_rgb") and simply calling mi.render(scene=scene, spp=spp) won't let me do it due to the limitations of MC samples,
I tried to rewrite the render() and put a loop in it like simple.py, but I can only render 14777 spp at most, I think there might be some hardware limitations.
However, I think this task is a fundamental requirement, so is there anyway I can render for more than 10k spp?

System configuration

System information:

OS: windows
CPU: intel i9-13900H
GPU: RTX 4060 laptop
Python version: 3.9
CUDA version: 12.0
NVidia driver: 550.54.14

Dr.Jit version: 0.4.4
Mitsuba version: 3.5.0

@brabbitdousha
Copy link
Author

I tried again with dr.set_flag(dr.JitFlag.VCallRecord, False) & dr.set_flag(dr.JitFlag.LoopRecord, False)
this could be running for more than 10k spp, but much slower

@andyyankai
Copy link

andyyankai commented Oct 11, 2024

You might want to consider to render an image in multiple loops using different seed.

for i in range(npass):
    if i == 0:
        image = mi.render(scene, integrator=integrator, spp=spp, seed=i) / npass
    else:
        image += mi.render(scene, integrator=integrator, spp=spp, seed=i) / npass

@brabbitdousha
Copy link
Author

You might want to consider to render an image in multiple loops using different seed.

for i in range(npass):
    if i == 0:
        image = mi.render(scene, integrator=integrator, spp=spp, seed=i) / npass
    else:
        image += mi.render(scene, integrator=integrator, spp=spp, seed=i) / npass

Hi, thanks for the advice, I tried this but the memory is still increasing, so still, not working. Anyway, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants