Skip to content

Conversation

@davidgrosman
Copy link

  • Project Link
  • dgrosman
  • Completed Features (and bells and whistle for cow):
    • Vertex shading. (_vertexTransformAndAssembly in rasterize.cu)
    • Primitive assembly with support for triangles read from buffers of index and vertex data. (_primitiveAssembly in rasterize.cu)
    • Rasterization. (_rasterize in rasterize.cu)
    • Fragment shading. Using Blinn-Phong with ambient, diffuse and specular light effects. (render in rasterize.cu)
    • A depth buffer to store and depth test fragments.
    • Fragment-to-depth-buffer writing (with atomics for race avoidance).
    • Toon Shading by Post processing the fragment buffer divided into "tiles" and using Sobel Filter.
    • Backface culling, optimized using thrust's stream compaction.
    • UV texture mapping with bilinear texture filtering and perspective correct texture coordinates.
    • Support for rasterizing additional primitives:
      • Lines or line strips (Press W to toggle between model drawing and wireframe mode).
      • Points (Press P to toggle between model drawing and point-cloud mode).
  • Note: You must include "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\cudadevrt.lib;" in your Project Properties' Linker Input's Additional Dependencies field to get the Project running. This is because I am using thrust::remove_if() for my back-face culling phase. (And I couldn't figure out in which CMakeList file to specify it in)

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