Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.75 KB

README.md

File metadata and controls

42 lines (28 loc) · 1.75 KB

Cuddly Broccoli 🥦

OpenGL things in Rust. Aims to provide safe abstractions on top of OpenGL functions, data structures and types. The goal is to be a starting point for more advanced graphics tasks.

Features

A running list of what's been implemented so far:

  • Window creation, keybindings.
  • Low-level buffer operations: Abstractions on VBOs, IBOs, vertex attributes.
  • Abstractions on shader compiling and linking, setting uniforms.
  • Very basic resource loading system for reading files from disk such as shaders, images, other assets.
  • Perspective camera with methods for zooming and orbiting.
  • Abstractions on shape primitives. Sphere and cylinder vertex generators which are generic over vertex layout.
  • Generic 3D mesh shape with normals.
  • Abstractions on OpenGL textures: 2D texture and cubemap targets
  • Skybox as cubemapped cube.
  • Basic lighting model with ambient and diffuse illumination.

Documentation

Run cargo doc from the project root to generate documentation.

Build requirements

You will need the latest stable version of Rust, preferably installed via rustup. Install SDL2 through your package manager (e.g. apt-get, dnf, pacman, brew).

This project is confirmed to work on OS X up to 10.14.1 (Mojave) or Linux. No guarantees for Windows.

A discrete GPU not required, but can be very useful.

Screenshot

Textured sphere with skybox

References