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

Point cloud transparency optimizations #72

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

dedoardo
Copy link
Contributor

@dedoardo dedoardo commented Jun 24, 2021

Changes

  • Early transparency test for point clouds. Transparency is now tested in the Embree filter function only for points with transparency.
    From a simple test included below, the total render time for a cube with 10k points the render time goes from 136.44s to 96.76s (tiled, 128spp, default camera, random opacity 0.1-0.9).
    In the presence of emitters in the scene we also avoid a linear loop over the lights that should bring more savings.
  • Stratified sampling: The reference opacity value that is used for testing is calculated as described in this NVIDIA paper (Figure 4), which combines seeds from the pixel, the sample number and the geometry id to produce a value which mantains stratification for the respective disjoint spans. It combines the radical 2 inverse of the pixel and sample id with the geometry one and scrambles it with xors. The results below are good, but the convergence with stratified sampling is perceptually unexpected as different discs seem to make the same (transmit) decision at the same time. It's almost like the pixel hash is of no effect. Try it out and let me know what you think!
    64spp with stratified sampling
    crop0
    64spp without stratified sampling (Using the sobol prng)
    crop1
  • (custom intersection code) Avoiding self-intersection for ray oriented discs. This was missing from the original implementation.

Test files
points_cube_test.zip
image

@dedoardo dedoardo changed the title Early point transparency test Early transparency test for point clouds Jun 24, 2021
@dedoardo dedoardo self-assigned this Jun 24, 2021
@dedoardo dedoardo added the enhancement New feature or request label Jun 24, 2021
@dedoardo dedoardo changed the title Early transparency test for point clouds Point cloud transparency optimizations Aug 6, 2021
@dedoardo dedoardo marked this pull request as ready for review August 6, 2021 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant