Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
serenag01 authored Nov 10, 2021
1 parent 8eda9c1 commit 216ab6c
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,26 @@ The Tool in Action:
https://user-images.githubusercontent.com/70620606/141118237-24d21cf8-ae9f-4f39-bc3b-92cce27468b0.mp4


# How It All Went Down:

This project started with my inspiration, the coral. From here, I generated samples of my L-System grammar in the 2D L-System Visualizer (linked below) and in Houdini. Once my grammar was finalized, I moved on to coding.

Admittedly, I had to start and re-start this project, but my final version used the following pipeline:

First, I rendered out a single branch using the instanced shader. This helped me familiarize myself with instanced rendering, as well as ensure that, if my L-System is working properly, something will show up in my viewport.

Then, I started working on my L-System. I created Turtle, Expansion Rule, and Drawing Rule classes, which were all used in conjunction in the L-System Class. The Turtle class recorded and altered the current position and orientation of the "turtle." The expansion rule classes expanded the grammar I described, using some randomness. The Drawing Rule class selected drawing rules based on the provided grammar, using some randomness.

To start, I set my grammar to be two iterations of a simple "FF". This way, I could easily test whether my rules were working. Also, to start, I only included rotation in 2D.

Once my grammar was properly working, I added 3D rotation and expanded the grammar to the current version.

From here, I added the branch decoration and incorporated randomness in my grammar by adjusting each angle drawn by no more than 10 degrees in either direction (sampled on a curve, not uniformly, to ensure that larger angle changes are less common). I also added additional rules that could terminate the grammar with a branch decoration.

Next, I worked on the background, adding the various colors and animating them on a sine curve. I also added stripes to my tree shader for a little extra fun! The stripes are made using the current color's inverse, for a little extra POP!

Finally, I added the sand base and the gui elements to make my project a tool to make many corals!

# Samples of L-System Using Tools:

2D L-System Visualizer:
Expand Down

0 comments on commit 216ab6c

Please sign in to comment.