An in-progress, bare-bones rendering engine built with Vulkano.
Rhyolite is built first and foremost as a personal project and a renderer for my fluid simulation research, but it can be used for all sorts of applications! Currently, it's able to load and render .obj files, both unlit and lit. Unlit models are rendered entirely with a chosen albedo color, while lit models are shaded with Phong shading. To light models, Rhyolite offers point and directional lights, each with controllable color and brightness parameters.
Here's an example of Rhyolite in action:
In order to use Rhyolite, it's necessary to enable the features that you want to use in your Cargo.toml
. To enable
mesh rendering, do so under [dependencies]
, as seen below:
rhyolite = { version = foo, features = ["mesh"] }
and for ray-marched rendering:
rhyolite = { version = foo, features = ["marched"] }
As of now, ray-marched rendering is unstable and does not feature support for custom functions, so it's not recommended to use. These feature flags, therefore, will avoid bloating binaries with unnecessary code.
The code of this library is based partly on Taidaesal's Vulkano tutorial, which, in turn, is based
on the official Vulkano examples. It's adapted to be more extensible and user-friendly than the code in the tutorial, with Phong-shaded point lights,
more abstraction for Camera
s and Renderer
s, performance optimizations, and (a lot of) refactoring for better readability and usability.
All code used from outside sources has been provided under the MIT License.