Skip to content

pojojojo21/final-project

 
 

Repository files navigation

Final Project!

Design Doc

Motivation

The motivation behind my project is a greater exploration in the use of SDFs and experimenting with intuitive ways to set up a ui so that user inputs help to create cool variations of a basic cat structure.

Goal

I did not feel like I learned enough about how to make SDFs work in the HW so I would like another chance to work with SDFs and understand them better. I would also like to try to implement the proccedural textures we saw on the spore creatures in class. My goal and end result is a proccedural cat generator with changable values to customize the cat. Through this final project my goal is to learn more about the engine built to make this creator work and the learn more about the most intuitive ways to create an interaction between the user and the user inputs to have an end result that looks good.

Inspiration/reference:

  • You must have some form of reference material for your final project. Your reference may be a research paper, a blog post, some artwork, a video, another class at Penn, etc.
  • Include in your design doc links to and images of your reference material.

My inspiration was the spore character creator and the student work we viewed in class with the bird editor.

image image image image image

Specification:

  • The main features of my project:
  1. SDF cat creation
  2. UI features for manipulation/changing of cat
  3. proccedural texture on cat

Extra time features: skeleton/joint based movement of cat more proccedural textures including different breeds

Techniques:

  • The Main technical/algorithmic tools: SDFs and raycasting, proccedural texture using normals and noise like what happens in spore, polishing UI interface

Design:

Blank diagram

Timeline:

Milestone 1: Implement engine for SDFs appearing on the screen. Create a scenegraph type node structure and design the basic cat.

Milestone 2: Convert the cat to SDFs. Add UI options for changing the SDFs that manipulate the form of the cat.

Milestone 3: Add texture and (if time proccedural textures). Catch up on previous milestones. Polish UI and background to make it look nice. (If time add skeleton rigging structure for rigging movement of cat.)

Milestone 1: Implementation part 1 (due 11/16)

I have created the SDF engine and designed the basic cat SDF using a lot of IQ's SDFs from his website. I decided that I do not think I want to create necessarily a scene graph structure I just want to implement specific ways to change the cat. I also realize that I did not factor in design the basic cat and then figuring out how to change the shape of the SDFs to best work with the sliders for different features so I will probably spend most of milestone 2 doing that.

image

image

Milestone 3: Implementation part 2 (due 11/28)

I implemented one procedural texture that can be expanded upon and implemented the GUI features, that can also be expanded upon, to make the cat editable. Ran into trouble figuringout that the way I implemented it will make it hard to scale anything as a whole so I have to scale individul features. Figured out how to use intersections as a way to mathamatically manipulate the colors to create stripes using positions and patches of color with normals.

image

Final submission (due 12/5)

Final Results: image image image image image

Post Mortem: Overall, I think my project went ok. Unfortunately, I couldn't do everything I wanted to because I ran into a lot of troubles and bugs. I had to pivot away from size changes and a more realistic model because I was having trouble with the SDFs and time constraints. I ended up with something not as realistic but I did get to play around alot with proccedural texturing. I ended up creating a texture generator for the cat and it worked out pretty well. I would also like to give credit to all the SDF equations I used from IQ's website.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 49.8%
  • GLSL 48.4%
  • JavaScript 1.8%