dendenxu / fast-gaussian-rasterization

A geometry-shader-based, global CUDA sorted high-performance 3D Gaussian Splatting rasterizer. Can achieve a 5-10x speedup in rendering compared to the vanialla diff-gaussian-rasterization.
MIT License
279 stars 5 forks source link

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

Open lucylucy27 opened 2 months ago

lucylucy27 commented 2 months ago

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 3~5x faster rendering speed? Thanks for your great work~

lucylucy27 commented 2 months ago

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

compatiblewaterfire commented 2 months ago

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