Skip to content

Project 5: Griffin Evans - #14

Open
grievans wants to merge 20 commits into
CIS5650-Fall-2025:mainfrom
grievans:main
Open

Project 5: Griffin Evans#14
grievans wants to merge 20 commits into
CIS5650-Fall-2025:mainfrom
grievans:main

Conversation

@grievans

Copy link
Copy Markdown
  • https://github.com/grievans/Project5-WebGPU-Gaussian-Splat-Viewer/tree/main

  • https://grievans.github.io/Project5-WebGPU-Gaussian-Splat-Viewer/

  • Features

    • Point cloud renderer
    • Gaussian splat renderer
      • I used f16s packed into u32s for the splat data transferred between the preprocess and vertex shaders, but I should note the math performed in the preprocess computations themselves is not currently set to use f16s.
  • Feedback:

    • I felt like the instructions were fairly disorganized, jumping around a lot in terms of what sections are relevant throughout the process rather than organizing it more by what parts are needed around the same time as each other (e.g. in setting up the compute shader I kept needing to scroll between the "Gaussian Renderer Pipeline Overview" "Implementation Hints" and "Preprocess Compute Setup Suggestions" sections to really get all of the info I felt like I needed, even though another section that was no longer immediately relevant was in the middle of that—I think dividing up the individual parts of the hints/suggestions/overview and grouping them by what's relevant to each step would make clearer the process one needs to go through).
    • I think the references linked in general were very confusing; the post linked at https://github.com/kwea123/gaussian_splatting_notes disregarding how incomplete it is still felt like it had some issues in terms of conveyance of information to the point that to really understand it I had to additionally follow the links it has within each of the code snippets.
      • Heinous to me is the snippet showing glm::mat3 cov = glm::transpose(T) * glm::transpose(Vrk) * T; being followed shortly after by float det = (cov.x * cov.z - cov.y * cov.y); which does not make it at all clear how this 3x3 matrix has suddenly become a 3x1 vector—it's actually another variable with the same name that just took some of the values from that matrix, but without looking at the linked code I felt I had no way to know what was going on.
      • I also still don't get really why they seem to do the transpose of all the matrices talked about in the math that they directly reference—like they pull ∑' = JW∑WᵀJᵀ directly from the paper but then proceed to do (WJ)ᵀ∑ᵀWJ = JᵀWᵀ∑ᵀWJ instead (seems like it probably works either way as long as one is consistent in what's transposed but it's not obvious what's going on at a glance).
    • Similarly the link for the post about the spherical harmonics evaluation just felt confusing as it provided a lot of context for a section of code we didn't need to write but didn't really give any clues on what actually still needed to be done (that just being the proper indexing to access the color values).

@grievans

Copy link
Copy Markdown
Author

Sorry for the delay in actually submitting the pull request; wanted to be thorough in feedback.

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.

1 participant