With Pixar's USD system emerging as a powerful tool for 3D graphics pipelines and interchange. This addon uses AMD Radeon™ ProRender renderer in USD Hydra rendering system in Blender.
Currently, this addon works only with Blender 4.0+ in Windows, Mac OS and Linux.
On the releases page are prebuilt versions of the ready to install addon.
Download the add-on from the releases page releases. Open Blender preferences and got to the Add-ons section click Install button and pick the add-on in File Browser. Enable the add-on from the Add-ons section.
At a simple level, this functions similar to any render addon to Blender, like Cycles or EEVEE which are included in Blender. Simply select the render engine (in this case "Hydra RPR") and render using the F12
key or starting a viewport render.
-
Latest Blender precompiled libraries. Clone repository Blender and follow instructions
-
Python 3.10 x64 (Blender 4.0+ uses 3.10)
- requirements.txt
-
Visual Studio 2022 Community (Windows only)
-
CMake 3.22.2+. Make sure it's added to the PATH environment variable
-
Subversion client, such as TortoiseSVN
- epydoc - enable PyCharm to parse Core's documentation. Use
py -m pip install epydoc
with your selected python interpreter or install it from PyCharm. - PyCharm Community Edition - recommended for coding, possible to enable intellisense(limited) for Blender code.
- Visual Studio 2022 Community - has a powerful python extension, possible to enable intellisense for Blender, provides remote debugging in Blender.
Aim is to conform to pep8.
At minimum it's 4 spaces for indentation, sources are utf-8, there's .gitconfig
in the root of the project - please set you editor to use it (for most simplicity). PyCharm default setting are fine and seems that it also picks up .editorconfig
automatically also, Tortoise Merge has a checkbox 'Enable EditorConfig', for Visual Studio there's EditorConfig extension.
We try to avoid merge commits, the easiest way to do it. This one rejects merges that would result in merge commit:
> git config [--global] merge.ff only
Converts pull to do, essentially, fetch&rebase:
> git config [--global] pull.rebase true
Also, make more meaningful commits (one commit per feature) the easy way. This will create a single change set from multiple commits coming from <branch>
:
> git merge <branch> --squash
There is ThirdParty repositories included to the project as a submodules. Please update submodules:
deps/MaterialX
https://github.com/AcademySoftwareFoundation/MaterialXdeps/RadeonProRenderUSD
https://github.com/GPUOpen-LibrariesAndSDKs/RadeonProRenderUSDdeps/USD
https://github.com/PixarAnimationStudios/OpenUSD
All of them are included via SSH protocol. You will need to create and install SSH keys.
Once SSH keys are installed update/checkout submodules for active branch:
> git submodule update --init -f --recursive
Require python 3.10+
to be set by default.
Download Blender precompiled libraries.
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15
Use cmd.exe or any other command prompt.
> git clone https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon
> cd BlenderUSDHydraAddon
> git submodule update --init --recursive
> python build.py -all
Download Blender precompiled libraries.
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_darwin
> git clone https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon
> cd BlenderUSDHydraAddon
> git submodule update --init --recursive
> python tools/build.py -all
Download Blender precompiled libraries.
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228
> git clone https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon
> cd BlenderUSDHydraAddon
> git submodule update --init --recursive
> python tools/build.py -all
For building on non-default system python version you should change it with update-alternatives --config python
command or via setting venv.
You can build project using build.py
with different flag combinations. It allows you to create a folder with binaries and pack all the necessary files for development to /install
folder. Also build.py
provides a variety of ways to make a project builds:
-all
- builds all binaries, equals to-materialx -usd -hdrpr -addon
-usd
- builds usd binaries-hdrpr
- builds HdRPR plugin binaries-materialx
- builds MaterialX binaries-bin-dir <bin dir>
- define path to build binaries. Default:bin
-bl-libs-dir <libs_dir>
- define path to Blender precompiled libraries. Default:../lib/<OS related name>
-clean
- removes binaries folder before build, for example:-all -clean
remove all folders in<bin dir>
,-usd -hdrpr -clean
removes only<bin dir>/Usd
and<bin dir>/HdRPR
-G <builder name>
- set builder, passing with-all
,-materialx
,-usd
and-hdrpr
. Example:-G "Visual Studio 16 2019"
,-G "Xcode"
-addon
- generates zip archive with plugin to./install
folder
Arguments are mostly used to skip build unneeded binaries. For example:
> python build.py -hdrpr -addon
Recommended software for debugging, has really nice mixed python and C stack debugging. Provides to you ability of interactive code evaluation. You can make breakpoints move step by step, watch variables and etc.
Make sure you have no installed addon for Blender version you want to use; remove installed version if needed.
Press menu Debug -> Attach to Process... or use hotkeyCtrl+Alt+P
. In opened window choose Blender process, now you connected and allowed to debug.
Also use build-in Python debugger in realtime. Turn on with `Debug -> Windows -> Python Debug Interactive.
The easiest way to build Blender in Release or RelWithDebInfo and add #pragma optimize( "", off )
.
import pydevd
pydevd.settrace('localhost', port=52128, stdoutToServer=True, stderrToServer=True, suspend=False)