From 216ab6cfe1f51139beea4bd74d111e5fd9d967cd Mon Sep 17 00:00:00 2001 From: serenag01 <70620606+serenag01@users.noreply.github.com> Date: Wed, 10 Nov 2021 08:24:08 -0500 Subject: [PATCH] Update README.md --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index cd40bd0..12a909c 100644 --- a/README.md +++ b/README.md @@ -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: