Cell shading with raylib

Cell shading (sometimes called toon shading) is a fantastic way to give your game a really neat style. There are really two different aspects to a toon shader, one is the banded lighting, and secondly the outlining of the whole model and also outlining the separate features in the model. In order to detect interior…

Published
Categorised as raylib

Using qhull

At first glance turning a bunch of points into some kind of mesh should be an easy task. However look a bit closer and its a different matter. This is where qhull comes in really handy, designed specifically to do this and other closely related tasks, it comes as a stand alone application and also…

Published
Categorised as raylib

Nuklear (GUI) and raylib

Nearly a year ago I demonstrated using Nuklear with raylib, however because I was rendering the GUI inside a 3D environment (on a face of a 3D model rather than as a simple 2D overlay) Its occurred to me recently that the implementation might be a little confusing for someone just wanting to use Nuklear…

Published
Categorised as raylib

raylib billboards, advanced use

As raylib is intended for novice programmers (but more than useful enough for advanced users) it’s important not to make assumptions about the end users understanding of the finer points of rendering. With this in mind lets look at just what a “billboard” is. Billboards are fast, even a low poly tree (for example) could…

Published
Categorised as raylib

raylib parallax effect using 3D

The simple way to do some kind of parallax scrolling background, is simply to render in 2D a number of textures (scrolling at different speeds) usually with transparent (alpha) areas. However mix in a more complex scenario with particles and its time to leverage the power of the GPU to sort things by depth. This…

Published
Categorised as raylib

Python and raylib pushing crates

Believe it or not we’re not a million miles away from a functioning game! By using the players isWalkable function, we can push crates around when its appropriate. But first we need to set up our crates. What’s happening here isn’t too complex – we’re taking the map template for the new level and looking…

Published
Categorised as raylib