diff --git a/assests/CS 184_284A Rasterizer.pdf b/assests/CS 184_284A Rasterizer.pdf new file mode 100644 index 0000000..09e81ca Binary files /dev/null and b/assests/CS 184_284A Rasterizer.pdf differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-completed.png b/hw2/Images/Task1/sp24-bezier-task1-completed.png new file mode 100644 index 0000000..adfa3ca Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-completed.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-curve.png b/hw2/Images/Task1/sp24-bezier-task1-curve.png new file mode 100644 index 0000000..0a19f10 Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-curve.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-modified.png b/hw2/Images/Task1/sp24-bezier-task1-modified.png new file mode 100644 index 0000000..0bb5a5e Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-modified.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-step1.png b/hw2/Images/Task1/sp24-bezier-task1-step1.png new file mode 100644 index 0000000..c60919f Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-step1.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-step2.png b/hw2/Images/Task1/sp24-bezier-task1-step2.png new file mode 100644 index 0000000..b778f3a Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-step2.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-step3.png b/hw2/Images/Task1/sp24-bezier-task1-step3.png new file mode 100644 index 0000000..e7d3d45 Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-step3.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-step4.png b/hw2/Images/Task1/sp24-bezier-task1-step4.png new file mode 100644 index 0000000..b9e7303 Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-step4.png differ diff --git a/hw2/Images/Task1/sp24-bezier-task1-step5.png b/hw2/Images/Task1/sp24-bezier-task1-step5.png new file mode 100644 index 0000000..7024397 Binary files /dev/null and b/hw2/Images/Task1/sp24-bezier-task1-step5.png differ diff --git a/hw2/Images/Task2/sp24-bezier-task2-teapot.png b/hw2/Images/Task2/sp24-bezier-task2-teapot.png new file mode 100644 index 0000000..98f53b6 Binary files /dev/null and b/hw2/Images/Task2/sp24-bezier-task2-teapot.png differ diff --git a/hw2/Images/Task3/sp24-bezier-task3-default.png b/hw2/Images/Task3/sp24-bezier-task3-default.png new file mode 100644 index 0000000..c7df092 Binary files /dev/null and b/hw2/Images/Task3/sp24-bezier-task3-default.png differ diff --git a/hw2/Images/Task3/sp24-bezier-task3-no-mesh-default.png b/hw2/Images/Task3/sp24-bezier-task3-no-mesh-default.png new file mode 100644 index 0000000..5945dc0 Binary files /dev/null and b/hw2/Images/Task3/sp24-bezier-task3-no-mesh-default.png differ diff --git a/hw2/Images/Task3/sp24-bezier-task3-no-mesh-phong.png b/hw2/Images/Task3/sp24-bezier-task3-no-mesh-phong.png new file mode 100644 index 0000000..3feecdb Binary files /dev/null and b/hw2/Images/Task3/sp24-bezier-task3-no-mesh-phong.png differ diff --git a/hw2/Images/Task3/sp24-bezier-task3-phong.png b/hw2/Images/Task3/sp24-bezier-task3-phong.png new file mode 100644 index 0000000..25ce365 Binary files /dev/null and b/hw2/Images/Task3/sp24-bezier-task3-phong.png differ diff --git a/hw2/Images/Task4/sp24-bezier-task4-after-flip.png b/hw2/Images/Task4/sp24-bezier-task4-after-flip.png new file mode 100644 index 0000000..aa695d7 Binary files /dev/null and b/hw2/Images/Task4/sp24-bezier-task4-after-flip.png differ diff --git a/hw2/Images/Task4/sp24-bezier-task4-before-flip.png b/hw2/Images/Task4/sp24-bezier-task4-before-flip.png new file mode 100644 index 0000000..d981ceb Binary files /dev/null and b/hw2/Images/Task4/sp24-bezier-task4-before-flip.png differ diff --git a/hw2/Images/Task4/sp24-bezier-task4-flip-diagram.jpg b/hw2/Images/Task4/sp24-bezier-task4-flip-diagram.jpg new file mode 100644 index 0000000..9f5bfe2 Binary files /dev/null and b/hw2/Images/Task4/sp24-bezier-task4-flip-diagram.jpg differ diff --git a/hw2/Images/Task4/sp24-bezier-task4-incorrect.png b/hw2/Images/Task4/sp24-bezier-task4-incorrect.png new file mode 100644 index 0000000..3cd0175 Binary files /dev/null and b/hw2/Images/Task4/sp24-bezier-task4-incorrect.png differ diff --git a/hw2/Images/Task5/sp24-bezier-task5-after-flip-split.png b/hw2/Images/Task5/sp24-bezier-task5-after-flip-split.png new file mode 100644 index 0000000..e2672a6 Binary files /dev/null and b/hw2/Images/Task5/sp24-bezier-task5-after-flip-split.png differ diff --git a/hw2/Images/Task5/sp24-bezier-task5-after-split.png b/hw2/Images/Task5/sp24-bezier-task5-after-split.png new file mode 100644 index 0000000..cc862df Binary files /dev/null and b/hw2/Images/Task5/sp24-bezier-task5-after-split.png differ diff --git a/hw2/index.html b/hw2/index.html index 13b7846..98c3aaf 100644 --- a/hw2/index.html +++ b/hw2/index.html @@ -1,7 +1,696 @@ - - - - - Homework 2 index.html here - + + + + + + + + CS 184 Mesh Edit + + + + + + + + + + + +

CS 184: Computer Graphics and Imaging, Spring 2024

+

Homework + 2: Mesh Edit

+

Ian Dong

+ + +
+

Overview

+

+ In this project, I explored the world of mesh editing through building Bezier curves and surfaces using the + de Casteljau algorithm and implementing various mesh operations such as area-weighted vertex normals, edge + flip, edge split, and loop subdivision. +

+
+ +

Section I: Bezier Curves and Surfaces

+ +

Part 1: Bezier Curves with 1D de Casteljau Subdivision

+ +
+ + Briefly explain de Casteljau's algorithm and how you implemented it in order to evaluate Bezier curves. + +

+

+

+
+ +
+ +
+ + Take a look at the provided .bzc files and create your own Bezier curve with 6 control + points of your choosing. Use this Bezier curve for your screenshots below. + +

+

+

+
+
+
+ Show screenshots of each step / level of the evaluation from the original control points down to the final + evaluated point. Press E to step through. Toggle C to show the completed Bezier curve + as well. +

+

+
+
+ Show a screenshot of a slightly different Bezier curve by moving the original control points around and + modifying the parameter \(t\) via mouse scrolling. +

+ +

  • + I had shifted \(t\) to a higher value which meant that the curve was more towards the right. I also + moved the control points around to create a different curve. Here is a screenshot of a slightly + different Bezier curve by moving the original control points around + and modifying the parameter \(t\) via mouse scrolling: +
    + + + + + +
    +
    + +
    Original Completed Bezier Curve
    +
    + +
    Modified Completed Bezier Curve
    +
    +
    +
  • + +

    +
    +
    + + +

    Part 2: Bezier Surfaces with Separable 1D de Casteljau

    +
    + Briefly explain how de Casteljau algorithm extends to Bezier surfaces and how you implemented it in order to + evaluate Bezier surfaces. +

    +

    +

    +
    +
    +
    + Show a screenshot of bez/teapot.bez (not code) evaluated by your implementation. +

    +

    +

    +
    + +
    +

    + + +

    Section II: Triangle Meshes and Half-Edge Data Structure

    + +

    Part 3: Area-Weighted Vertex Normals

    +
    + Briefly explain how you implemented the area-weighted vertex normals. +

    +

    +

    +
    +
    +
    + Show screenshots of dae/teapot.dae (not .bez) comparing teapot shading with and + without vertex normals. Use Q to toggle default flat shading and Phong shading. + +

    +
    + +
    + +

    Part 4: Edge Flip

    + +
    + Briefly explain how you implemented the edge flip operation and describe any interesting implementation / + debugging tricks you have used. +

    +

    +

    +
    +
    + +

    +

    + Show screenshots of the teapot before and after some edge flips. + +

    +
    + +
    + +
    + Write about your eventful debugging journey, if you have experienced one. +

    +

    +

    +
    +
    +
    +

    Part 5: Edge Split

    +
    + Briefly explain how you implemented the edge split operation and describe any interesting implementation + / + debugging tricks you have used. +
    +

    +

    +

    + + +
    + Show screenshots of a mesh before and after some edge splits. +

    +

    +

    +
    +
    + +
    + Show screenshots of a mesh before and after a combination of both edge splits and edge flips. +

    +

    +

    +
    +
    + +
    + Write about your eventful debugging journey, if you have experienced one. +

    + YOUR RESPONSE GOES HERE +

    +

    + + +

    Part 6: Loop Subdivision for Mesh Upsampling

    + + Briefly explain how you implemented the loop subdivision and describe any interesting implementation / + debugging tricks you have used. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + Take some notes, as well as some screenshots, of your observations on how meshes behave after loop + subdivision. What happens to sharp corners and edges? Can you reduce this effect by pre-splitting some + edges? + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + Load dae/cube.dae. Perform several iterations of loop subdivision on the cube. Notice that the cube + becomes + slightly asymmetric after repeated subdivisions. Can you pre-process the cube with edge flips and splits + so + that the cube subdivides symmetrically? Document these effects and explain why they occur. Also explain + how + your pre-processing helps alleviate the effects. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + If you have implemented any extra credit extensions, explain what you did and document how they work + with + screenshots. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + +

    Part 7 (Optional, Possible Extra Credit)

    + + Save your best polygon mesh as partsevenmodel.dae in your docs folder and show us a screenshot of the + mesh + in your write-up. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + Include a series of screenshots showing your original mesh and your mesh after one and two rounds of + subdivision. If you have used custom shaders, include screenshots of your mesh with those shaders + applied as + well. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + Describe what you have done to enhance your mesh beyond the simple humanoid mesh described in the + tutorial. + +

    + YOUR RESPONSE GOES HERE +

    +
    + + + + \ No newline at end of file