Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

pablode/gatling

Repository files navigation

gatling

Evermotion Scene 06 AI48, rendered in Gatling using Blender's Hydra/MaterialX support.

Porsche 911 GT3, modified with materials from the GPUOpen MaterialX library.

About

This is my toy path tracer I work on in my free time.

It is exposed as an OpenUSD Hydra render delegate that implements the MaterialX, NVIDIA MDL and UsdPreviewSurface material standards. As a result, it supports complex BSDFs like OpenPBR.

Gatling runs on Vulkan ray tracing and Apple M3+ processors. Tested in CI:

Build

There are prebuilt binaries which can be copied to the /plugin/usd directory.

Alternatively, for a full source build you need to

Note: it is recommended to have NASM 2.13+ or YASM 1.2.0+ in your PATH to speed up image decoding.

Do a recursive clone of the repository and set up a build folder:

git clone https://github.com/pablode/gatling --recursive
mkdir gatling/build && cd gatling/build

Pass following parameters in the CMake generation phase:

cmake .. -Wno-dev \
-DUSD_ROOT= \
-DMDL_ROOT= \
-DCMAKE_INSTALL_PREFIX=/plugin/usd
-DCMAKE_BUILD_TYPE=Release

Build the relevant targets and install the Hydra delegate to the USD plugin folder:

cmake --build . --target hdGatling --config Release
cmake --install . --component hdGatling

Usage

Gatling can be used by every application which supports Hydra, either natively or through a plugin.

Alex Trevino's Junk Shop (CC BY), distilled to UsdPreviewSurfaces, rendered within usdview.

A headless standalone is provided that accepts a USD file (.usd, .usda, .usdc, .usdz) as input. It exposes the Hydra render settings as command line arguments:

./bin/gatling render.png \
--image-width 1200 \
--image-height 1200 \
--spp 1024 \
--max-bounces 8

Note: high sample counts may require adjusting the system watchdog settings.

Issues

Certain USD prim types (curves, cylinder lights), APIs (UsdLuxShapingAPI, UsdLuxShadowAPI) and features (subdivision, UDIM, volumes, displacement) are not yet supported.

License

Gatling is licensed under the GNU General Public License, as included in the LICENSE file.


Copyright (C) 2019 Pablo Delgado Kramer

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .

Licenses of third-party code and libraries are listed in the same file.

About

Hydra-enabled GPU path tracer that supports MaterialX and MDL

Topics

Resources

Readme

License

GPL-3.0 license

Stars

Watchers

Forks

Contributors