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

Rendering is not faster than (diff-gaussian-rasterization). #6

Open
lucylucy27 opened this issue Sep 5, 2024 · 3 comments
Open

Rendering is not faster than (diff-gaussian-rasterization). #6

lucylucy27 opened this issue Sep 5, 2024 · 3 comments

Comments

@lucylucy27
Copy link

Hi Den,

Thanks for your great work~
I have tried to run the fast-gauss and calculate the total render function time as following sample code. Compared with the original (diff-gaussian-rasterization), the spent time in all is a bit longer than (diff-gaussian-rasterization) in my pre-trained 3DGS model.
Is that making sense?
I'm running on Ubuntu20.04 with 4090 nvidia, (EasyVolcap is missing)

for outer_idx in range(outer_loop_count):
    for idx, view in enumerate(tqdm(views, desc="Rendering progress")):
        start_time = time.time()
        rendering = render(view, gaussians, pipeline, background)["render"]
        end_time = time.time()
        # gt = view.original_image[0:3, :, :]
        # torchvision.utils.save_image(rendering, os.path.join(render_path, '{0:05d}'.format(idx) + ".png"))
        # torchvision.utils.save_image(gt, os.path.join(gts_path, '{0:05d}'.format(idx) + ".png"))

        global frame_count
        frame_count += 1
        fps = calculate_fps(end_time - start_time, frame_count)

        if frame_count % 30 == 0:
            print(f"Current FPS: {fps:.2f}")

print(f"Final after all frames: {elapsed_time:.2f} seconds | Total Frames: {frame_count}")

My question is, how can I achieve the 35x faster rendering speed?
Thanks for your great work

@lucylucy27
Copy link
Author

1
2
diff_gs
Here is the running result for fast_gauss vs diff_gauss

@compatiblewaterfire
Copy link

I met the same problem as you and my env is Win11+ Nvidia 4090...

@dendenxu
Copy link
Owner

Hi, thanks for using my code!
As mentioned in the readme, this implementation benefits more from high-resolution cases (much more pixels than Gaussians) and can be quite underperforming in offline rendering compared to online rendering. If possible, you could try setting up a GUI (or maybe just use the EasyVolcap GUI).
For offline rendering, one way to speed things up is to slightly mitigate the copying overhead from GL to CUDA but switching the output buffer to uint8 (which I recently supported in the repo, just change the initialization parameter!).

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

3 participants