I progressed on my gold shader to include cubemaps and reflections. This was a bit challenging for me. I used GlslViewer to code and compile/render. Some notes:
– I had to use 3D noise instead of 2D noise. This allowed for the flow of the noise to go around the corner of the cube. When using 3D shapes for this shader, up until now I had been using just 2D noise on each face, sort of “cheating”. Now it is a proper flowing 3D noise cube.
– I took away the gold colouring so that only the reflections remained, this caused me to have to really amp the specular value so that you could actually see the reflections
– I would like it if each face of the cube, the noise animated not in any direction but just on the face itself. it’s hard for me to describe. on the top and bottom faces, the noise animates exactly how I want, but on the other sides it sort of “flows” toward an edge. i’d rather it not do this but I couldn’t figure out how
to run this shader, you need glslViewer installed on your machine and then just run this command from within the shaders file folder
glslviewer shader.frag cube.obj -C cubemap.png
View the code and file son gitlab:
For the mid-term, Joshua Linton & I decided to create a digital mirror that resembled the description of the Time Knife given in the show, The Good Place, which is an extra dimensional concept illustrated as, “a trillion different realities folding onto each other like tiny sheets of metal forming a single blade.” Our shader explores this concept by taking the webcam capture and turning it into strings of frames stacked on top of each other, phasing at high speed into a void in a sort of sine-like shape, while the scene rotates. We also decided to create a 3 dimensional reference point to add depth to the scene, which rotates at the speed at which the point of view is rotated in the void, as if the viewer is orbiting this sphere in physical space. Furthermore, we added interactivity by mapping the x and y position of the mouse, so that when you move your mouse left or right, the scene rotates forward or backward (on top of its own passive rotation), and also increases the speed of the phasing images based on mouse y position. Finally, we mapped the rotation of the sphere to match the mouse x rotation, and also translated the sphere up and down as well as changed the stroke/fill based on mouse y position. I created the base webcam capture sketch & grid tiles, mapped the mouse positions and created the push pop sphere while Joshua created the fragment shader that alters the image and ultimately creates the void. This experiment was an extremely intriguing exploration into metaphysical extra-dimensions in 2d space.
Using the shader graph was pretty fun and I enjoyed experimenting with it. I used a low poly tree asset I made in Blender. I created one shader using two texture shaders, and another shader using noise. I used time in both. One thing I really enjoyed working in for the first time was post-processing effects in Unity.
For this week’s assignment I focused on only one of the shader graphs and decided to do a reveal shader by creating a unity animation in which the reveal shader was added as a material at a specific point to make it look like some futuristic space ships were coming out of cloaking. The scene is somewhat cinematic and the project was quite fun.
The first shader I made is just a psychedelic texture adjuster that fracts and animates different channels from the screen position. The second shader is a camouflage texture that essentially is supposed to take a texture to “model” the initial camouflage off of which is then added on with alpha clipping making the camouflage actually invisible.
Working with HSV instead of RGB was new and interesting for me, it was a little confusing to work with but eventually the shader ended up how I wanted it to be.
For Week 8 I attempted to play with 2 of the sketch prompts. My first sketch explored the push pop matrix orbits and different variations of scale, rotate, transform, as well as a little bit of sin() based animation. I feel as if I could continue expanding on this idea but it would require a lot of hours to fine tune and get the math right. I was inspired by sci fi alien technology that floats, expands and rotates.
For the second sketch, I decided to turn a low poly wolf model that I made into a sort of Pokemon or Digimon where their colours and geometry would change from white to coloured over time and back again, to represent the underlying structure of the wolf going through a supernatural change, (similar to evolution or digivolution as shown in the popular kids series). This one was a really fun experiment that I enjoyed thoroughly.
For my final project, I incorporated my knowledge of shaders gained during this class into one of my past game projects. The project I plan to use is a 2D Unity platformer, for comparison the original game can be played here: https://bakaretsu.itch.io/shanghai-scramble
I made 2 major changes to the project, I added floating particles that hover around the player that indicate their combo score, and I added a dissolve shader that dissolves the player’s sprite when they get hurt. GIFs of the shaders are shown below. There is a post-processing effect applied to the player as well, that results in the bloom that occurs during the dissolve.
A playable build of the game for Windows can be downloaded here: https://drive.google.com/drive/folders/1brWm4flKaUf9cZ8z0X9QRmDXeSvDgU8o?usp=sharing