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

Project 3: Ruoyu Fan #22

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

Conversation

WindyDarian
Copy link

@WindyDarian WindyDarian commented Oct 11, 2016

  • Repo Link
  • ruof
  • Basics:
    • Path tracing diffusive and perfect specular materials
    • Original glfw3 lib files doesn't support Visual Studio 2015. I updated glfw3 and put the source version into the external/ folder and configured CMakeLists.txt so it becomes compatible with Visual Studio 2015 while can also build on other compilers supported. Also upgraded CMake FindCuda module to solve linker errors in CUDA 8.
    • Used thrust::remove_if to compact the path segment array... but only to find that the rendering speed after remove_if on structs is slower. However I did some optimization and did stream compaction on an index array, and keep the original array in place... Now it is faster than without compaction.
    • Sorts by material after getting intersections... but results are much slower. (Toggleable by changing SORT_PATH_BY_MATERIAL in pathtrace.cu)
    • Caching first intersections. (Toggleable by changing CACHE_FIRST_INTERSECTION in pathtrace.cu)
    • Performance tests for core features.
    • Additional test: sort paths by sorting indices then reshuffle instead of sorting in place
    • Additional test: access structs in global memory vs copy to local memory first
    • Additional optimization: compact index array instead of PathSegments array. Raised render speed to 120.6% of no stream compaction and 212.9% of the approach that directly do stream compaction on PathSegments array, see below.
  • Features:
    • Loading obj model (with tinyobjloader). If the vertex normal is different from triangle normal, my ray-triangle intersection can give interpolated normal (aka smooth shading).
    • Refraction with Frensel effects
    • Stochastic Sampled Antialiasing
    • Damn interview! Use one late day!

@xueyinw
Copy link

xueyinw commented Oct 11, 2016

Don't be afraid of the interview and practice Spoken English moreeee 👍
Make repos strong then show the interviewer how powerful our GPU projects are.

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

Successfully merging this pull request may close these issues.

2 participants