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

Major rework of isaac #132

Merged

Conversation

FelixTUD
Copy link
Contributor

@FelixTUD FelixTUD commented Mar 3, 2021

Major rework of isaac

  • standardize naming
  • utility functions for rendering added
  • split up the render kernel in multiple cleaner kernels
  • volume rendering and iso surfaces can now be viewed simultaneously
  • the iso surface theshold is now adjustable in the html client
  • iso surfaces now also support SSAO
  • all the shading is done in a seperate pass, allows debug views in client
  • ISAAC_VECTOR_ELEMENT functionality removed for cleaner code

- standardize naming
- utility functions for rendering added
- split up the render kernel in multiple cleaner kernels
- volume rendering and iso surfaces can now be viewed simultaneously
- iso surfaces now also support SSAO
- all the shading is done in a seperate pass, allows debug views in
client
- ISAAC_VECTOR_ELEMENT functionality removed for cleaner code
@bussmann
Copy link
Member

Awesome!

@bussmann
Copy link
Member

Question: Would VXAO be possible using supercells or even cells as voxels?

@FelixTUD
Copy link
Contributor Author

FelixTUD commented Mar 10, 2021

Short answer: yes and even a voxel global illumination approach should be possible.

Long answer: it is a bit more complicated than that, a few things to keep in mind:

  • Additional 3D buffer for occlusion data and/or GI data is needed
  • All voxels in a defined area around the view frustum must be early evaluated, even if they don't contribute to the final image
  • Particles and Volume sources can use different grid sizes
  • In the render kernel the occlusion amount could be determined by individual rays (can be very demanding as many rays are needed) or the more approximate approuch with cones (however, here we need a mip map hierarchy for the occlusion/GI texture, which is a challenge since alpaka does not support texture memory as of now, and it needs to be updateded at least every few frames to minimize the error)

@psychocoderHPC
Copy link
Member

Note for follow-up PRs: Please try to avoid waiting so long before you open a PR. Your PR is mixing nameing changes, refactoring, and new features.
Why do I say this:

  • Naming changes can be revied very easily because you mostly use substitution function in your IDE or sed. During the review I now for renamings that the program flow is not changed.

For this PR I can not follow all changes because it is far from reviewable.

@psychocoderHPC psychocoderHPC merged commit 8d5e808 into ComputationalRadiationPhysics:dev Mar 11, 2021
@psychocoderHPC psychocoderHPC added this to the version 1.6.0 milestone Mar 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants