2011-2014
Decay - a Voxel rendering engine, everything is rendered with CPU ... first thing I made. crazy stuff.
Mementos
This is how it started. Basic sprites, custom physics, thousands of enemies and persistent blood.
Enemies, Particles, structures became voxel based.
This shader outlines pixels that are of different color. You can find Koobyky game below that uses advanced version of this shader.
Using Pixel Parallax effect image looks as if indented in soil.
Mobile-friendly detection of vertex edge. Used to smooth edges in future shaders.
By providing smoothed and sharp normal to vertices, and with help of vertex edge detection, edges become smooth.
Many Previous and following effects are possible thanks to custom Mesh Editor.
Same as in Decay game. But this time with Mesh instead of voxel: I make "smart Lego pieces"- similar to how in Minecraft fence changes shape depending on what is nearby.
Using Mesh Editor to bake shadows into mesh (shadows can't move but light can change colour and intensity). A bit impractical to be honest)
Dent mapping changes the angle at which light can no longer reach the surface. Attenuation effect as seen in the image can not be achieved with normal mapping alone. I still use this effect (as of 2020).
Water in this image is not a plane, it is rendered with terrain and geometry. Terrain draws water on itself using method similar to parallax.
Mobile friendly Toon Water (Free on Asset Store)
Intended as a main game mode for Imprint game. Inspired by Desert Strike mod for Star Craft 2. Abandoned at this point but it looked cool at one point.
With Painter I write uv coordinates and radius inside pixel and shader uses those values to render how close is the given pixel to distance from that uv. Weird thing, haven't thought of any practical use as of this moment.
Colour of each brick represented by a single pixel. Shader uses a mask made with Playtime Painter that displaces colour sampling and shapes pixels as bricks (in this case).
Each pixel of texture A contains coordinates of a segment from texture B. Allows to create large and complex texture using just a few very small ones. (thx to Playtime Painter)
Second ship should be way beyond the far_clip_plane. Instead, he is positioned inside clip plane but his true coordinates passed as material parameters and material make it look right without exiting draw range.
A spacial BigVector class that consists of many vectors like (meters, kilometers, light seconds, light years, mega parsecs ... ) and special function to Lerp, MoveTo, Get Distance and so on. The class can be used to set exact position in our universe.
Mobile friendly way to display many tillable textures by sampling a single atlas.
Edge detection with smoothing and hiding the seam.
Mesh Editor used to supply custom data to meshes is now a part of Playtime Painter.
Using custom mesh editor and edge detection I managed to create smoothed effect with 4 normal vectors per vertex.
Simple but brilliant Damage Shader. Performance is excellent.
Similar to previous Pixel Outline but most things are precalculated in vertex function. So as a result it needs a special mesh, not a quad. But the result is better performance.
Mobile Friendly volumes used to bake shadow and ambient data.
Exploring the world of Ray-Marching
Some raymarching Experiments on shadertoy.com.
Experimenting with some ray-tracing using analytical primitives intersection.
Made SDF shapes merge seamlessly with Forward rendered geometry.