-
Notifications
You must be signed in to change notification settings - Fork 29
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
Project 3: Xuntong Liang #2
Open
PacosLelouch
wants to merge
16
commits into
CIS565-Fall-2021:main
Choose a base branch
from
PacosLelouch:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PacosLelouch
commented
Oct 5, 2021
- Repo Link
- Implemented a CUDA path tracer and completed some performance analysis.
- Implemented refraction, and non-perfect specular surfaces with Phong material and microfacet material with GGX normal distribution.
- Used stream compaction thrust::partition after shading to reduce the number of rays for further bounce, and completed performance analysis for this feature.
- Used sorting by material type before shading, and completed performance analysis for this feature.
- Implemented a toggleable option to cache the first bounce for re-using, and completed performance analysis for this feature.
- Implemented importance sampling of scattered ray with different materials.
- Implemented OBJ mesh loading with tinyObj.
- Implemented stochastic anti-aliasing.
- Implemented post processing such as outlining by stencil, and a simple version of ramp shading with a ramp texture.
- Implemented texture import and mapping with triangle meshes, and HDR image sky sphere.
- Implemented bounding volume hierarchy as a hierarchical spatial data structure for triangle meshes, and completed performance analysis for this feature.
- Feedback:
- This framework helps me a lot in how to do bounces separately, and how to use CUDA-OpenGL interop. However, the code structure of this framework seems not so unified. For example, the indents are different in different files. There may be some improvements.
- Also, I don't know if there are methods to separate the declarations and definitions of CUDA kernels or functions in header files and source files. What I know is that it is difficult to do this with templates, but I'm not sure if so it is with CUDA. A header-only implementation seems hard to maintain.
- Last but not least, it has a good interop with the guest lecture on Monday! I think there are some idea for further development on the path tracer.
Add sky sphere loading.
Update scenes, images, and readme.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.