Metatron is a physically based renderer unbiasedly simulating radiative transfer equation and spectral transport with Metal/Vulkan acceleration.
- Demo scenes at metatron-scenes.
- Scene exporter at metatron-exporter.
- Spectrum
- Sampled spectra are used for rendering.
- RGB compatibility via J19.
- Real world spectra are used for conductor, dispersion and color space definition.
- Medium
- BSDF
- Shape
- Sphere as convenient bounding volume.
- Mesh in various formats supported by assimp.
- Light
- Integrator
Metatron use nix with flakes for package management on Linux and Darwin.
nix buildOr use cmake if dependencies are availabe. Installation is required for runtime resource loading.
cmake --preset rel -DCMAKE_INSTALL_PREFIX=/usr/bin/
cmake --build build/rel
cmake --install build/relMetatron can be used as a library. Use package output in flake.nix or copy package.nix to add metatron.
# flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
metatron.url = "github:tsssni/metatron";
};
outputs = {nixpkgs, metatron, ...}: let
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [
(final: prev: {
metatron = metatron.packages.default;
})
];
};
in {
# use pkgs.metatron somewhere
};
}Modules in src are all optional and chained.
find_package(metatron-core REQUIRED) # only import metaron-core
find_package(metatron-render REQUIRED) # import all as metatron-render depends them
target_link_libraries(renderer PUBLIC metatron-render)Run metatron-tracer -h for option documents.
metatron-tracer -s ~/metatron-scenes/classroom/ -o classroom.exr -a localhost:14158 -d gpu