top of page

Software Rasterizer & Pathtracer & MeshEdit & Animation

Project Overview: 
This project was finished when I am taking Computer Graphics (Spring2024)at Carnegie Mellon University as homework . The public repository for the basic framework is here: https://github.com/CMU-Graphics/Scotty3D
Scotty3D is a 3D modeling, rendering, and animation package like Blender, but we will need to complete the main algorithms and functions of Rasterization, MeshEdit, PathTracing and Animation.
Rasterizor: 
-  Scene Graph and Transforms

-  Draw lines with the "Diamond-Exit Rule"

-  Draw triangles with the "Perspective-correct Interpolation" and "Top-left Rule"
-  Depth Testing / Mip-mapping / Supersampling

image_edited.jpg

Drawing Lines

A1T3-cubes-after.png

Depth Test (before)

image.png
A1T4-cubes-after.png

Depth Test (after)

image.png

Mip-Mapping

A1T7-center.png

Supersampling (before)

A1T7-grid-8x8.png

Supersampling (after)

MeshEdit: 
-  Half-edge Data Structure

-  Local Operations: Split edge / Dissolve vertex...
-  Global Operation: Catmull-Clark Subdivision /
Triangulation

    / Loop Subdivision...

image.png
image.png

Half-edge Data Structure

global-catmark-subdivide.png
global-triangulate.png
global-loop-subdivide.png
PathTracing: 
-  Camera Ray and Intersection Test
-  Lambertian BSDF / Mirror / Refract / Glass
-  Indirect / Direct Lighting
-  Environment / Area Lighting
image.png
image.png
image.png
image.png
image.png
bottom of page