From 85904b94b8883a94da520648db6ab7767cfe1edb Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Tue, 7 Nov 2023 00:44:18 -0500
Subject: [PATCH 1/7] Update README.md
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index ac8ca804..661485f7 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# HW 4: *3D Stylization*
+### Got an extension from Rachel until Wednesday 11/8 11:59 pm!
+
## Project Overview:
In this assignment, you will use a 2D concept art piece as inspiration to create a 3D Stylized scene in Unity. This will give you the opportunity to explore stylized graphics techniques alongside non-physically-based real-time rendering workflows in Unity.
From b9f58667ac25fe2d6de3ffb67145a4c0130c4b08 Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Wed, 8 Nov 2023 21:10:58 -0500
Subject: [PATCH 2/7] Update README.md
---
README.md | 35 +++++++++--------------------------
1 file changed, 9 insertions(+), 26 deletions(-)
diff --git a/README.md b/README.md
index 661485f7..3ca711f3 100644
--- a/README.md
+++ b/README.md
@@ -1,45 +1,28 @@
# HW 4: *3D Stylization*
-### Got an extension from Rachel until Wednesday 11/8 11:59 pm!
+### Got an extension from Rachel until Friday 11/10 11:59 pm!
## Project Overview:
-In this assignment, you will use a 2D concept art piece as inspiration to create a 3D Stylized scene in Unity. This will give you the opportunity to explore stylized graphics techniques alongside non-physically-based real-time rendering workflows in Unity.
+This project is an exploration of stylized graphics techniques alongside non-physically-based real-time rendering workflows in Unity, with the goal being to replicate a piece of 2D illustration into a 3D stylized scene.
| | |
|:--:|:--:|
| *2D Concept Illustration* | *3D Stylized Scene in Unity* |
-### HW Task List:
-1. Picking a Piece of Concept Art
-2. Interesting Shaders
-3. Outlines
-4. Full Screen Post Process Effect
-5. Creating a Scene
-6. Interactivity
-7. Extra Credit
---
-# Tasks
+## Inspiration
-## 0. Base Project Overview
+As a major fan of Studio MDHR's Cuphead, a video game with a distinct 1930s cartoon-inspired style, I saw lots of potential inspiration for stylization from in-game screenshots, concept art for the game, and even the style of the animated spin-off "The Cuphead Show". I compiled some references demonstrating the major stylistic characteristics I want to try implementing, such as:
-After forking the repo, take a moment to watch this brief HW/Base Project Overview which goes over things that you're expected to bring over from the lab, and etc.
-- [See the Project Overview here](https://youtu.be/JmVTmpgSz5U)
+| ![cff2245c55839dc07f8e5b2c65b9e371](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/02d29ada-3a5b-4295-a7ee-7917df3cc8fc) | ![TheCupheadShow__Season1_Episode2_00_00_24_03](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/16f02719-9587-489b-a94c-394e803c0260) | ![Screenshot 2023-11-08 211003](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/ef7dc75a-07d7-420b-8e29-bb4d49665721) | ![Screenshot 2023-11-08 210933](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/a5c12e9b-6679-46b7-b226-2dae44ab2cb6) |
+|:--:|:--:|:--:|:--:|
+| *#1. Paper/film grain post-processing effect* | *2. Watercolor painted / paper grain backgrounds* | *3. Outlines with varying width (pen inked feel)* | *4. Chromatic Aberration (distorted color or "color bleed" around outlines* | ** |
-## 1. Picking a Piece of Concept Art
-Choose a simple illustration to guide your stylization. Choose a relatively simple piece of art THAT INCLUDES OUTLINES. You *might* want to look through the rest of the homework instructions before committing to one. Here are some examples of styles that will work well. Feel free to choose one of these, but we encourage your to pick your own.
-
-| ![](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/72320867/dae1ffc2-8269-493d-919f-b3811c76ed30) | ![](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/72320867/9c345ee6-19df-4191-9e47-6722b6597a5a) | ![](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/72320867/48521733-f83a-4704-ac8d-9d2f24574922) | ![](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/72320867/3068bdc4-1b08-41cf-9a16-08d94be5f1ea) | ![](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/72320867/ae1d0fae-7998-4287-8269-13e2cafd740b) |
-|:--:|:--:|:--:|:--:|:--:|
-| *https://twitter.com/stefscribbles/status/1646235145110683650* | *https://twitter.com/trudicastle/status/1122648793009098752* | *https://twitter.com/caomor/status/1049494055518908416* | *https://www.artstation.com/requinoesis* | *https://twitter.com/cysketch/status/1712442821389713597* |
-
-
-**Disclaimer: Don't forget to identify and credit the artist who created the concept art : )**
-
-**[Emma Koch](https://www.artstation.com/ekoch)**, an amazing 3D artist I happened to stumble upon on ArtStation produces incredible 2D-esque 3D art pieces. Some of the references I picked above were inspired directly from her work. I'd definitely check out her artstation for any inspiraiton if you want some! [Link](https://www.artstation.com/ekoch)
+**[Emma Koch](https://www.artstation.com/ekoch)**
---
-## 2. Interesting Shaders
+## Creating Custom Surface Shaders
Let's create some custom surface shaders for the objects in your scene, inspired by your concept art!
From 3a80900c74ae53c10a4759836b82c1b84217b331 Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Thu, 9 Nov 2023 13:29:55 -0500
Subject: [PATCH 3/7] Update README.md
---
README.md | 30 ++++++++++--------------------
1 file changed, 10 insertions(+), 20 deletions(-)
diff --git a/README.md b/README.md
index 3ca711f3..2e2596ea 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,28 @@
-# HW 4: *3D Stylization*
+# 3D Still Life Stylization in Unity
### Got an extension from Rachel until Friday 11/10 11:59 pm!
## Project Overview:
This project is an exploration of stylized graphics techniques alongside non-physically-based real-time rendering workflows in Unity, with the goal being to replicate a piece of 2D illustration into a 3D stylized scene.
-| | |
-|:--:|:--:|
-| *2D Concept Illustration* | *3D Stylized Scene in Unity* |
-
----
## Inspiration
-As a major fan of Studio MDHR's Cuphead, a video game with a distinct 1930s cartoon-inspired style, I saw lots of potential inspiration for stylization from in-game screenshots, concept art for the game, and even the style of the animated spin-off "The Cuphead Show". I compiled some references demonstrating the major stylistic characteristics I want to try implementing, such as:
+For the original 2D reference, I used the following illustration by artist [@chitchatchiou](https://twitter.com/chitchatchiou/status/1695202874374987852). I really liked the color scheme, composition, lighting, and visible texture, and tried to recreate the overall feel of the 2D concept in my final 3D scene.
+
+
+
+
-| ![cff2245c55839dc07f8e5b2c65b9e371](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/02d29ada-3a5b-4295-a7ee-7917df3cc8fc) | ![TheCupheadShow__Season1_Episode2_00_00_24_03](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/16f02719-9587-489b-a94c-394e803c0260) | ![Screenshot 2023-11-08 211003](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/ef7dc75a-07d7-420b-8e29-bb4d49665721) | ![Screenshot 2023-11-08 210933](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/a5c12e9b-6679-46b7-b226-2dae44ab2cb6) |
-|:--:|:--:|:--:|:--:|
-| *#1. Paper/film grain post-processing effect* | *2. Watercolor painted / paper grain backgrounds* | *3. Outlines with varying width (pen inked feel)* | *4. Chromatic Aberration (distorted color or "color bleed" around outlines* | ** |
+From @chitchatchiou's work, I got inspired by still-life drawings and wanted to replicate the texture that comes from cross-hatching and pencil on paper. In this project, I wanted to push the stylization of the original 2D illustration and combine the composition with a hand-drawn, sketchy feel.
+| | |
+|:--:|:--:|
+| Color (Colored Pencil) | Black and White (Graphite) |
-**[Emma Koch](https://www.artstation.com/ekoch)**
---
## Creating Custom Surface Shaders
-Let's create some custom surface shaders for the objects in your scene, inspired by your concept art!
-
-Take a moment to think about the main characteristics that you see in the shading of your concept art. What makes it look appealing/aesthetic?
- * Is it the color palette? How are the different colors blending into each other? Is there any particular texture or pattern you notice?
- * Are there additional effects such as rim or specular highlights?
- * Are there multiple lights in the scene?
-
-These are all things we want you to think about before diving into your shaders!
-
### To-Do:
1. **Improved Surface Shader**
- Create a surface shader inspired by the surface(s) in your concept art. Use the three tone toon shader you created from the Stylization Lab as a starting point to build a more interesting shader that fulfills all of the following requirements:
From 74dff395911b462ac7a24d7c2490749859af9586 Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Thu, 9 Nov 2023 15:25:14 -0500
Subject: [PATCH 4/7] Update README.md
---
README.md | 117 ++++++------------------------------------------------
1 file changed, 13 insertions(+), 104 deletions(-)
diff --git a/README.md b/README.md
index 2e2596ea..e79d7237 100644
--- a/README.md
+++ b/README.md
@@ -23,16 +23,12 @@ From @chitchatchiou's work, I got inspired by still-life drawings and wanted to
---
## Creating Custom Surface Shaders
-### To-Do:
-1. **Improved Surface Shader**
- - Create a surface shader inspired by the surface(s) in your concept art. Use the three tone toon shader you created from the Stylization Lab as a starting point to build a more interesting shader that fulfills all of the following requirements:
- 1. **Multiple Light Support**
- - Follow the following tutorial to implement multiple light support.
- -
- - [Link to Complete Additional Light Support Tutorial Video](https://youtu.be/1CJ-ZDSFsMM)
- 2. **Additional Lighting Feature**
+1. **Multiple Light Support**
+- I first used [Logan's Tutorial Video](https://youtu.be/1CJ-ZDSFsMM) to implement support for both directional and point lights.
+
+2. **Specular Highlight Feature**
- Implement a Specular Highlight, Rim Highlight or another similarly interesting lighting-related effect
- 3. **Interesting Shadow**
+3. **Custom Hand-Drawn Textures**
1. Create your own custom shadow texture!
- You can use whatever tools you have available! Digital art (Photoshop, CSP, Procreate, etc.), traditional art (drawing on paper, and then taking a photo/scan)-you have complete freedom!
2. Make your texture seamless/tesselatable! You can do this through the following online tool: https://www.imgonline.com.ua/eng/make-seamless-texture.php
@@ -42,9 +38,10 @@ From @chitchatchiou's work, I got inspired by still-life drawings and wanted to
-
- Notice how in this artwork by [Emma Koch](https://www.artstation.com/ekoch), Link's shadow does not remain fixed in screen space as it is drawn via object UV coordinates.
- 4. **Accurate Color Palette**
+4. **Replicating the Color Palette**
- Do your best to replicate the colors/lighting of your concept art!
-3. **Special Surface Shader**
+
+5. **Special Surface Shader**
- *Let's get creative!* Create a SPECIAL second shader that adds a glow, a highlight or some other special effect that makes the object stand out in some way. This is intended to give you practice riffing on existing shaders. Most games or applications require some kind of highlighting: this could be an effect in a game that draw player focus, or a highlight on hover like you see in a tool. If your concept art doesn't provide a visual example of what highlighting could look like, use your imagination or find another piece of concept art. Duplicate your shader to create a variant with an additional special feature that will make the hero object of your scene stand out. Choose one of the following three options:
- **Option 1: Animated colors**
- ![animesher com_gif-hair-colorful-1560031](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/1758825/4ba53d68-5a82-4108-a842-e71abf522cbc)
@@ -58,7 +55,7 @@ From @chitchatchiou's work, I got inspired by still-life drawings and wanted to
- If you'd like to do an alternative effect to Option 1, just make sure that your idea is roughly similar in scope/difficulty. Feel free to make an EdStem post or ask any TA to double check whether your effect would be sufficient.
---
-## 3. Outlines
+## Adding Outlines
Make your objects pop by adding outlines to your scene!
Specifically, we'll be creating ***Post Process Outlines*** based on Depth and Normal buffers of our scene!
@@ -76,103 +73,15 @@ Specifically, we'll be creating ***Post Process Outlines*** based on Depth and N
- Watch the following video for clarifications on both of these processes, and also, how to actually access and read the depth and normal buffers once we've created them.
- [See here for complete tutorial video on Depth and Normal Buffers](https://youtu.be/giLPZA-xAXk)
-5. Finally, using everything you've learnt about Render Features alongside the fact that we now have proper access to both Depth and Normal Buffers, let's create a Post Process Outline Shader!
- - We **STRONGLY RECOMMEND** watching at least one of these Incredibly Useful Tutorials before getting started on Outlines:
- - [NedMakesGames](https://www.youtube.com/@NedMakesGames)
- - [Tutorial on Depth Buffer Sobel Edge Detection Outlines in Unity URP](https://youtu.be/RMt6DcaMxcE?si=WI7H5zyECoaqBsqF)
- - [Robin Seibold](https://www.youtube.com/@RobinSeibold)
- - [Tutorial on Depth and Normal Buffer Robert's Cross Outliens in Unity](https://youtu.be/LMqio9NsqmM?si=zmtWxtdb1ViG2tFs)
- - [Alexander Ameye](https://ameye.dev/about/)
- - [Article on Edge Detection Post Process Outlines in Unity](https://ameye.dev/notes/edge-detection-outlines/)
- - **Important Clarification/Note on the Tutorials:**
- - You will quickly notice after watching/reading any of these tutorials that many of them use a Render Feature to render out a single DepthNormals Texture that encodes both depth and normal information into a single texture. This optimization saves on performance but results in less accurate depth or normals information and is overall more confusing for a first time experience into Render Features. Thus, for this assignment, we will just be sticking to our approach of having separate Depth and Normal buffers.
-
- - Next, we will create a basic Depth and Normal based outline prototype that produces black outlines at areas of large depth and normal difference across the screen.
- - Explore different kinds of edge detection methods, including Sobel and Robert's Cross filters
- - Make sure the outline has adjustable parameters, such as width.
- - Let's get creative! Modify your outline to be ANIMATED and to have an appearance that resembles the outlines in your concept art / OR, if the outlines in your concept art are too plain, try to make your outline resemble crayon/pencil sketching/etc.
- - Use your knowledge of toolbox functions to add some wobble, or warping or noise onto the lines that changes over time.
- - In my example below, you might be able to notice that the internal Normal Buffer based edges actually don't have any warping/animation. I did this intentionally because I wanted the final look to still have some kind of structure. Thus, by doing the depth and normal outlines in separate passes, I'm able to have a variety of animated/non-animated outlines composited together : ) !
-
-7. (OPTIONAL) If you're not satisfied with the look of your outlines and are looking for an extra challenge, after implementing depth/normal based post processing, you may explore non-post process techniques such as inverse hull edge rendering for outer edges to render bolder, more solid looking outlines for a different look.
- - Check out Alexander Ameye's article on alternative methods of outline rendering in Unity: [See Here](https://ameye.dev/notes/rendering-outlines/)
+## 4. Creating the Scene (with a Post-Process Effect)
+To capture the hand-drawn, sketchy feel, I added a post-process paper texture effect.
----
-## 4. Full Screen Post Process Effect
-We're nearing the end!
-
-### To-Do:
-Ok, now regardless of what your concept art looks like, using what you know about toolbox functions and screen space effects, add an appealing post-process effect to give your scene a unique look. Your post processing effect should do at least one of the following.
-* A vingette that darkens the edges of your images with a color or pattern
-* Color / tone mapping that changes the colorization of your renders. [Here's some basic ideas, but please experiment](https://gmshaders.com/tutorials/basic_colors/)
-* A texture to make your image look like it's drawn on paper or some other surface.
-* A blur to make your image look smudged.
-* Fog or clouds that drift over your scene
-* Whatever else you can think of that complements your scene!
-***Note: This should be easily accomplishable using what you should have already learnt about working with Unity's Custom Render Features from the Outline section!***
+## 6. Adding Interactivity
+To show off the fact that the scene is rendered in real-time, I added an element of interactivity to the scene. By pressing the SPACE button, the scene shifts from a colored version to a black-and-white version (resembling the colored pencil vs. graphite reference images.)
---
-## 5. Create a Scene
-Using Unity's controls, create a ***SUPER BASIC*** scene with a few elements to show off your unique rendering stylization. Be sure to apply the materials you've created. Please don't go crazy with the geometry -- then you'll have github problems if your files are too large. [See here](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github).
-
-Note that your modelling will NOT be graded at all for this assignment. It is **NOT** expected that your scene will be a one-to-one faithful replica of your concept art. You are **STRONGLY ENCOURAGED** to find free assets online, even if they don't strongly resemble the geometry/objects present in your concept art. (TLDR; If you choose to model your own geometry for this project, be aware of the time-constraint and risk!)
-
-Some example resources for finding 3D assets to populate your scene With:
-1. [SketchFab](https://sketchfab.com/)
-2. [Mixamo](https://www.mixamo.com/#/)
-3. [TurboSquid](https://www.turbosquid.com/)
-
-## 6. Interactivity
-As a finishing touch, let's show off the fact that our scene is rendered in real-time! Please add an element of interactivity to your scene. Change some major visual aspect of your scene on a keypress. The triggered change could be
-* Party mode (things speed up, different colorization)
-* Memory mode (different post-processing effects to color you scene differently)
-* Fanart mode (different surface shaders, as if done by a different artist)
-* Whatever else you can think of! Combine these ideas, or come up with something new. Just note, your interactive change should be at least as complex as implementing a new type of post processing effect or surface shader. We'll be disappointed if its just a parameter change. There should be significant visual change.
-
-### To-Do:
-* Create at least one new material to be swapped in using a key press
-* Create and attach a new C# script that listens for a key press and swaps out the material on that key press.
-Your C# script should look something like this:
-```
-public Material[] materials;
-private MeshRenderer meshRenderer;
-int index;
-
-void Start () {
- meshRenderer = GetComponent();
-}
-
-void Update () {
- if (Input.GetKeyDown(KeyCode.Space)){
- index = (index + 1) % materials.Count;
- SwapToNextMaterial(index);
- }
-}
-
-void SwapToNextMaterial (int index) {
- meshRenderer.material = materials[index % materials.Count];
-}
-```
-* Attach the c# script as a component to the object(s) that you want to change on keypress
-* Assign all the relevant materials to the Materials list field so you object knows what to swap between.
-
----
-## 7. Extra Credit
-Explore! What else can you do to polish your scene?
-
-- Implement Texture Support for your Toon Surface Shader with Appealing Procedural Coloring.
- - I.e. The procedural coloring needs to be more than just multiplying by 0.6 or 1.5 to decrease/increase the value. Consider more deeply the relationship between things such as value and saturation in artist-crafted color palettes?
-- Add an interesting terrain with grass and/or other interesting features
-- Implement a Custom Skybox alongside a day-night cycle lighting script that changes the main directional light's colors and direction over time.
-- Add water puddles with screenspace reflections!
-- Any other similar level of extra spice to your scene : ) (Evaluated on a case-by-case basis by TAs/Rachel/Adam)
-
-## Submission
-1. Video of a turnaround of your scene
-2. A comprehensive readme doc that outlines all of the different components you accomplished throughout the homework.
-3. All your source files, submitted as a PR against this repository.
## Resources:
From 13a61fa4c53c958654472e6782912df9b3fbf2dd Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Thu, 9 Nov 2023 15:31:38 -0500
Subject: [PATCH 5/7] Update README.md
---
README.md | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index e79d7237..77b920d8 100644
--- a/README.md
+++ b/README.md
@@ -23,13 +23,17 @@ From @chitchatchiou's work, I got inspired by still-life drawings and wanted to
---
## Creating Custom Surface Shaders
-1. **Multiple Light Support**
-- I first used [Logan's Tutorial Video](https://youtu.be/1CJ-ZDSFsMM) to implement support for both directional and point lights.
+### Multiple Light Support
+I first used [Logan's Tutorial Video](https://youtu.be/1CJ-ZDSFsMM) to implement support for both directional and point lights.
-2. **Specular Highlight Feature**
- - Implement a Specular Highlight, Rim Highlight or another similarly interesting lighting-related effect
-3. **Custom Hand-Drawn Textures**
- 1. Create your own custom shadow texture!
+![Screenshot 2023-11-09 153009](https://github.com/CIIINDYXUU/hw04-stylization/assets/88256581/28400048-fd2e-4546-a7bd-b13dd79c8ae6)
+
+### Specular Highlight Feature
+
+
+
+### Custom Hand-Drawn Textures
+I used Photoshop to create custom hand-drawn textures for midtones and shadows.
- You can use whatever tools you have available! Digital art (Photoshop, CSP, Procreate, etc.), traditional art (drawing on paper, and then taking a photo/scan)-you have complete freedom!
2. Make your texture seamless/tesselatable! You can do this through the following online tool: https://www.imgonline.com.ua/eng/make-seamless-texture.php
3. Modify your shadows using this custom texture in a similar way to Puzzle 3 from the Lab
From db7ffd29a4fed5de3e943f5b406fcfd40f14b71a Mon Sep 17 00:00:00 2001
From: Cindy Xu <88256581+CIIINDYXUU@users.noreply.github.com>
Date: Fri, 10 Nov 2023 00:03:51 -0500
Subject: [PATCH 6/7] Update README.md
---
README.md | 27 ++-------------------------
1 file changed, 2 insertions(+), 25 deletions(-)
diff --git a/README.md b/README.md
index 77b920d8..85b72ee1 100644
--- a/README.md
+++ b/README.md
@@ -34,34 +34,11 @@ I first used [Logan's Tutorial Video](https://youtu.be/1CJ-ZDSFsMM) to implement
### Custom Hand-Drawn Textures
I used Photoshop to create custom hand-drawn textures for midtones and shadows.
- - You can use whatever tools you have available! Digital art (Photoshop, CSP, Procreate, etc.), traditional art (drawing on paper, and then taking a photo/scan)-you have complete freedom!
- 2. Make your texture seamless/tesselatable! You can do this through the following online tool: https://www.imgonline.com.ua/eng/make-seamless-texture.php
- 3. Modify your shadows using this custom texture in a similar way to Puzzle 3 from the Lab
- 4. Now, instead of using screen position, use the default object UVs!
- - In the 3rd Puzzle of the Lab, the shadow texture was sampled using the Screen Position node. This time, let's use the object's UV coordinates to have the shadows conform to geometry. Hint: To get a consistent looking shadow texture scale across multiple objects, you're going to want some exposed float parameter, "Shadow Scale," that will adjust the tiling of the shadow texture. This will allow for per material control over the tiling of your shadow texture.
- -
- - Notice how in this artwork by [Emma Koch](https://www.artstation.com/ekoch), Link's shadow does not remain fixed in screen space as it is drawn via object UV coordinates.
-
-4. **Replicating the Color Palette**
- - Do your best to replicate the colors/lighting of your concept art!
-
-5. **Special Surface Shader**
- - *Let's get creative!* Create a SPECIAL second shader that adds a glow, a highlight or some other special effect that makes the object stand out in some way. This is intended to give you practice riffing on existing shaders. Most games or applications require some kind of highlighting: this could be an effect in a game that draw player focus, or a highlight on hover like you see in a tool. If your concept art doesn't provide a visual example of what highlighting could look like, use your imagination or find another piece of concept art. Duplicate your shader to create a variant with an additional special feature that will make the hero object of your scene stand out. Choose one of the following three options:
- - **Option 1: Animated colors**
- - ![animesher com_gif-hair-colorful-1560031](https://github.com/CIS-566-Fall-2023/hw04-stylization/assets/1758825/4ba53d68-5a82-4108-a842-e71abf522cbc)
-
- - The above is a simple example of what an animated surface shader might do, eg flash through a bunch of different colors. Using at least two toolbox functions, animate some aspect of the surface shader to create an eye-catching effect. Consider how procedural patterns, the screen space position and noise might contribute.
- - Useful tips to get started:
- - Use the Time node in Unity's shader graph to get access to time for animation. Consider using a Floor node on time to explore staggered/stepped interpolation! This can be really helpful for selling the illusion of the animation feeling handdrawn.
- - **Option 2: Vertex animation**
- - Similar to the noise cloud assignment, modify your object shader to animate the vertex positions of your object, eg. making an object sway or bob up and down to make it stand out. You should be able to figure out how to do this given the walkthrough so far, but if you need addition help, check out [this tutorial](https://www.youtube.com/watch?v=VQxubpLxEqU&ab_channel=GabrielAguiarProd).
- - **Option 3: Another Custom Effect Tailored to your Concept Art**
- - If you'd like to do an alternative effect to Option 1, just make sure that your idea is roughly similar in scope/difficulty. Feel free to make an EdStem post or ask any TA to double check whether your effect would be sufficient.
+
+### Custom Surface Shader Effect - Shadow Edge Coloring
---
## Adding Outlines
-Make your objects pop by adding outlines to your scene!
-
Specifically, we'll be creating ***Post Process Outlines*** based on Depth and Normal buffers of our scene!
### To-Do:
From cd904f1f9bedd738ad2a02ec85a33c9709e86b26 Mon Sep 17 00:00:00 2001
From: Cindy Xu
Date: Fri, 15 Dec 2023 19:00:54 -0500
Subject: [PATCH 7/7] submission
---
.../{Default.mat => New Material.mat} | 68 +-
Assets/Materials/New Material.mat.meta | 8 +
Assets/Materials/floor.mat | 175 +
Assets/Materials/floor.mat.meta | 8 +
Assets/Materials/pumpkin.mat | 175 +
.../{Default.mat.meta => pumpkin.mat.meta} | 0
Assets/Materials/squash.mat | 175 +
Assets/Materials/squash.mat.meta | 8 +
Assets/Materials/squash2.mat | 175 +
Assets/Materials/squash2.mat.meta | 8 +
Assets/Models/Decorative_pumpkins.FBX | Bin 0 -> 406608 bytes
Assets/Models/Decorative_pumpkins.FBX.meta | 109 +
Assets/Scenes/Additional Light Demo.unity | 30 +-
Assets/Scenes/HW Base.unity | 233 +-
Assets/Shaders/3-Tone Shader.shadergraph | 5686 +++++++++++++++++
Assets/Shaders/3-Tone Shader.shadergraph.meta | 10 +
Assets/Shaders/Includes/LightingHelp.hlsl | 71 +-
Assets/Textures/Shadow 1.png | Bin 0 -> 1575 bytes
Assets/Textures/Shadow 1.png.meta | 127 +
Assets/Textures/TEST (2).png | Bin 0 -> 1096862 bytes
Assets/Textures/TEST (2).png.meta | 127 +
21 files changed, 6996 insertions(+), 197 deletions(-)
rename Assets/Materials/{Default.mat => New Material.mat} (79%)
create mode 100644 Assets/Materials/New Material.mat.meta
create mode 100644 Assets/Materials/floor.mat
create mode 100644 Assets/Materials/floor.mat.meta
create mode 100644 Assets/Materials/pumpkin.mat
rename Assets/Materials/{Default.mat.meta => pumpkin.mat.meta} (100%)
create mode 100644 Assets/Materials/squash.mat
create mode 100644 Assets/Materials/squash.mat.meta
create mode 100644 Assets/Materials/squash2.mat
create mode 100644 Assets/Materials/squash2.mat.meta
create mode 100644 Assets/Models/Decorative_pumpkins.FBX
create mode 100644 Assets/Models/Decorative_pumpkins.FBX.meta
create mode 100644 Assets/Shaders/3-Tone Shader.shadergraph
create mode 100644 Assets/Shaders/3-Tone Shader.shadergraph.meta
create mode 100644 Assets/Textures/Shadow 1.png
create mode 100644 Assets/Textures/Shadow 1.png.meta
create mode 100644 Assets/Textures/TEST (2).png
create mode 100644 Assets/Textures/TEST (2).png.meta
diff --git a/Assets/Materials/Default.mat b/Assets/Materials/New Material.mat
similarity index 79%
rename from Assets/Materials/Default.mat
rename to Assets/Materials/New Material.mat
index 7a2cb388..0767e852 100644
--- a/Assets/Materials/Default.mat
+++ b/Assets/Materials/New Material.mat
@@ -1,34 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &-8081582795363580827
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 7
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Default
+ m_Name: New Material
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
- m_ShaderKeywords:
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
+ m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
@@ -44,14 +32,6 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - _ClearCoatMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Cube:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -76,10 +56,6 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - _MetallicSpecGlossMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -111,7 +87,6 @@ Material:
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoat: 0
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
@@ -121,31 +96,38 @@ Material:
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- - _GlossMapScale: 1
- - _Glossiness: 0.5
- - _GlossinessSource: 0
- - _GlossyReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
- _Metallic: 0
- - _Mode: 0
- _OcclusionStrength: 1
- - _Parallax: 0.02
+ - _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- - _ReflectionSource: 0
- - _Shininess: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- - _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- - _UVSec: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
+--- !u!114 &8479689843869348053
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
diff --git a/Assets/Materials/New Material.mat.meta b/Assets/Materials/New Material.mat.meta
new file mode 100644
index 00000000..f69ead43
--- /dev/null
+++ b/Assets/Materials/New Material.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 01644c6fff736fa4eaa4fff0040640e8
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/floor.mat b/Assets/Materials/floor.mat
new file mode 100644
index 00000000..b18e79d6
--- /dev/null
+++ b/Assets/Materials/floor.mat
@@ -0,0 +1,175 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8081582795363580827
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: floor
+ m_Shader: {fileID: -6465566751694194690, guid: 261a2b390a758294fbc37366c3a5ee03,
+ type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS
+ - MAIN_LIGHT_CALCULATE_SHADOWS
+ - _ADDITIONAL_LIGHTS
+ - _MAIN_LIGHT_SHADOWS_CASCADE
+ - _SHADOWS_SOFT
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ClearCoatMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Cube:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicSpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_70d068f12a144d14b972da9f79ed47d5_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 69334689c22b304439a9b49619cadf6c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS: 1
+ - MAIN_LIGHT_CALCULATE_SHADOWS: 1
+ - _ADDITIONAL_LIGHTS: 1
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoat: 0
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 60
+ - _GlossinessSource: 0
+ - _GlossyReflections: 1
+ - _MAIN_LIGHT_SHADOWS_CASCADE: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ReflectionSource: 0
+ - _SHADOWS_SOFT: 1
+ - _Shininess: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecSource: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _Threshold: 0.49
+ - _Threshold2: 1
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _Highlight: {r: 1, g: 0.90791065, b: 0.7490566, a: 1}
+ - _Midtone: {r: 0.9921569, g: 0.85098046, b: 0.56078434, a: 1}
+ - _RampedDiffuseValues: {r: 0.2, g: 0.4, b: 1, a: 0}
+ - _Shadow: {r: 0.854902, g: 0.627451, b: 0.3372549, a: 1}
+ - _ShadowEdgeColor: {r: 1, g: 0.5163692, b: 0, a: 0}
+ - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecularColor: {r: 0, g: 0, b: 0, a: 0}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/floor.mat.meta b/Assets/Materials/floor.mat.meta
new file mode 100644
index 00000000..8631f070
--- /dev/null
+++ b/Assets/Materials/floor.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3c677a0de4eb847439698f3ccac53abc
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/pumpkin.mat b/Assets/Materials/pumpkin.mat
new file mode 100644
index 00000000..7de48480
--- /dev/null
+++ b/Assets/Materials/pumpkin.mat
@@ -0,0 +1,175 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8081582795363580827
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: pumpkin
+ m_Shader: {fileID: -6465566751694194690, guid: 261a2b390a758294fbc37366c3a5ee03,
+ type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS
+ - MAIN_LIGHT_CALCULATE_SHADOWS
+ - _ADDITIONAL_LIGHTS
+ - _MAIN_LIGHT_SHADOWS_CASCADE
+ - _SHADOWS_SOFT
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ClearCoatMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Cube:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicSpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_70d068f12a144d14b972da9f79ed47d5_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 69334689c22b304439a9b49619cadf6c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS: 1
+ - MAIN_LIGHT_CALCULATE_SHADOWS: 1
+ - _ADDITIONAL_LIGHTS: 1
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoat: 0
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 250
+ - _GlossinessSource: 0
+ - _GlossyReflections: 1
+ - _MAIN_LIGHT_SHADOWS_CASCADE: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ReflectionSource: 0
+ - _SHADOWS_SOFT: 1
+ - _Shininess: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecSource: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _Threshold: 0.31
+ - _Threshold2: 0.84
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _Highlight: {r: 0.9433962, g: 0.7001243, b: 0.22605905, a: 1}
+ - _Midtone: {r: 0.9686275, g: 0.58431375, b: 0, a: 1}
+ - _RampedDiffuseValues: {r: 0.2, g: 0.4, b: 1, a: 0}
+ - _Shadow: {r: 0.8705883, g: 0.43921572, b: 0, a: 1}
+ - _ShadowEdgeColor: {r: 1, g: 0.5163692, b: 0, a: 0}
+ - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecularColor: {r: 0, g: 0, b: 0, a: 0}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Default.mat.meta b/Assets/Materials/pumpkin.mat.meta
similarity index 100%
rename from Assets/Materials/Default.mat.meta
rename to Assets/Materials/pumpkin.mat.meta
diff --git a/Assets/Materials/squash.mat b/Assets/Materials/squash.mat
new file mode 100644
index 00000000..f26ef12b
--- /dev/null
+++ b/Assets/Materials/squash.mat
@@ -0,0 +1,175 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8081582795363580827
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: squash
+ m_Shader: {fileID: -6465566751694194690, guid: 261a2b390a758294fbc37366c3a5ee03,
+ type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS
+ - MAIN_LIGHT_CALCULATE_SHADOWS
+ - _ADDITIONAL_LIGHTS
+ - _MAIN_LIGHT_SHADOWS_CASCADE
+ - _SHADOWS_SOFT
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ClearCoatMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Cube:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicSpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_70d068f12a144d14b972da9f79ed47d5_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 69334689c22b304439a9b49619cadf6c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS: 1
+ - MAIN_LIGHT_CALCULATE_SHADOWS: 1
+ - _ADDITIONAL_LIGHTS: 1
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoat: 0
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 190
+ - _GlossinessSource: 0
+ - _GlossyReflections: 1
+ - _MAIN_LIGHT_SHADOWS_CASCADE: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ReflectionSource: 0
+ - _SHADOWS_SOFT: 1
+ - _Shininess: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecSource: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _Threshold: 0.157
+ - _Threshold2: 0.74
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _Highlight: {r: 0.9725491, g: 0.77647066, b: 0.24313727, a: 1}
+ - _Midtone: {r: 0.93725497, g: 0.6509804, b: 0, a: 1}
+ - _RampedDiffuseValues: {r: 0.2, g: 0.4, b: 1, a: 0}
+ - _Shadow: {r: 0.82745105, g: 0.454902, b: 0, a: 1}
+ - _ShadowEdgeColor: {r: 1, g: 0.5163692, b: 0, a: 0}
+ - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecularColor: {r: 0, g: 0, b: 0, a: 0}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/squash.mat.meta b/Assets/Materials/squash.mat.meta
new file mode 100644
index 00000000..c2967e0d
--- /dev/null
+++ b/Assets/Materials/squash.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: da813c358d397f24db4e4a1f3aec9281
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/squash2.mat b/Assets/Materials/squash2.mat
new file mode 100644
index 00000000..22dff1e4
--- /dev/null
+++ b/Assets/Materials/squash2.mat
@@ -0,0 +1,175 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8081582795363580827
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: squash2
+ m_Shader: {fileID: -6465566751694194690, guid: 261a2b390a758294fbc37366c3a5ee03,
+ type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS
+ - MAIN_LIGHT_CALCULATE_SHADOWS
+ - _ADDITIONAL_LIGHTS
+ - _MAIN_LIGHT_SHADOWS_CASCADE
+ - _SHADOWS_SOFT
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ClearCoatMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Cube:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicSpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_70d068f12a144d14b972da9f79ed47d5_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 69334689c22b304439a9b49619cadf6c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - ADDITIONAL_LIGHT_CALCULATE_SHADOWS: 1
+ - MAIN_LIGHT_CALCULATE_SHADOWS: 1
+ - _ADDITIONAL_LIGHTS: 1
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoat: 0
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 180
+ - _GlossinessSource: 0
+ - _GlossyReflections: 1
+ - _MAIN_LIGHT_SHADOWS_CASCADE: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ReflectionSource: 0
+ - _SHADOWS_SOFT: 1
+ - _Shininess: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecSource: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _Threshold: 0.217
+ - _Threshold2: 0.79
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _Highlight: {r: 0.8941177, g: 0.8980393, b: 0.3647059, a: 1}
+ - _Midtone: {r: 0.8117648, g: 0.7607844, b: 0.003921569, a: 1}
+ - _RampedDiffuseValues: {r: 0.2, g: 0.4, b: 1, a: 0}
+ - _Shadow: {r: 0.69411767, g: 0.5294118, b: 0, a: 1}
+ - _ShadowEdgeColor: {r: 1, g: 0.5163692, b: 0, a: 0}
+ - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecularColor: {r: 0, g: 0, b: 0, a: 0}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/squash2.mat.meta b/Assets/Materials/squash2.mat.meta
new file mode 100644
index 00000000..6c6c619d
--- /dev/null
+++ b/Assets/Materials/squash2.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1d05f3a340fadc2468350451302cabf6
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/Decorative_pumpkins.FBX b/Assets/Models/Decorative_pumpkins.FBX
new file mode 100644
index 0000000000000000000000000000000000000000..c8d0d1c6702c26ea6340f1a121ca5dee3f14e257
GIT binary patch
literal 406608
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