Illustrative examples of interactive apps made with B+. Run by executing julia path/to/BpExamples/run.jl
.
For the ray-tracer demo, it's recommended to provide Julia with all your CPU threads by running julia -t auto path/to/BpExamples/run.jl
.
To be as clear as possible about where functions and types come from, this code endeavors to name all B+ stuff explicitly. For example, Texture
is written as BplusApp.GL.Texture
. You don't have to do this in your own code!
The simplest example, showing a plain game loop, rendering quads with the SimpleGraphics
service, and doing basic collision detection
Runs a CPU ray-tracer in one thread, and interfaces with it from a "game" thread with live camera controls. Showcases the use of various collision shapes, and techniques to use Julia for high-performance graphics. Also shows how to do multithreading in Julia.
Allows you to generate textures using the Fields module, which provides a mini-language for procedural fields.
Also shows how to use the GUI module to make Dear ImGUI interfaces.
Uses an L-system to generate a hierarchical tree-like structure. Showcases basic loading of assets from files, some interesting GUI stuff, and (WIP) how to make/use cubemaps.
The L-system calculations use Julia's array-processing features to greatly simplify syntax while maximizing performance.