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
- Sampler
- Integrator
Metatron use nix with flakes for package management on Linux and Darwin.
nix buildOr use CMake with manual dependencies. Add prefix flag for runtime resource loading.
cmake --preset rel -DCMAKE_INSTALL_PREFIX=/usr/bin/ -DCMAKE_CXX_FLAGS="-march=native"
cmake --build build/rel --target installMetatron 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
};
}Metatron will be linked as a shared library.
find_package(metatron REQUIRED)
target_link_libraries(renderer PUBLIC metatron)Run metatron-tracer -h for option documents.
metatron-tracer -s ~/metatron-scenes/classroom/ -o classroom.exr -a localhost:14158 -d gpu