FireRays is ray intersection acceleration library provided by AMD which makes the most of AMD hardware and allows for efficient ray queries independently of the generation of underlying AMD hardware.
The source tree consist of the following subdirectories:
-
FireRays: library binaries
-
App: Standalone application featuring FireRays library
The library is cross-platform and the following compilers are supported:
-
Visual Studio 2015
-
Xcode 4 and later
-
GCC 4.8 and later
-
Python (for --embed_kernels option only)
AMD OpenCL APP SDK 2.0+ is also required for the standalone app build.
- Set environmental variable. GPU_MAX_ALLOC_PERCENT = 100. This is necessary to allocate a large buffers.
- Create Visual Studio 2015 Solution
./premake/win/premake5.exe vs2015
- Install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Install OpenImageIO
brew install homebrew/science/openimageio
- Create Xcode project
./premake/osx/premake5 xcode4
- Alternatively use gmake version
./premake/osx/premake5 gmake
make config=release_x64
on Ubuntu: install complimentary libraries:
sudo apt-get install g++
install OpenImageIO:
sudo apt-get install libopenimageio-dev
Create Makefile:
./premake/linux64/premake5 gmake
make config=release_x64
Available premake options:
-
--packagewill package the library for a binary release indistfolder.
example of usage :./Tools/premake/win/premake5.exe --package -
--submitsubmit SDK. This option will generate project with--embed_kernelsand build release version, run unit tests, pack it using script--packageoption, check standalone SDK build and push changes to SDK repo.devenvshould be inPATHto have possibility to build solution via command line. SDK repo location expected to be../FireRays_SDK. checkout & clean -dfx made before adding changes to SDK git. Commit will be pushed to remote namedorigin.
example of usage :./Tools/premake/win/premake5.exe --submit
export LD_LIBRARY_PATH=<FireRays_SDK path>/FireRays/lib/x64/:${LD_LIBRARY_PATH}cd App../Bin/Release/x64/App64
Possible command line args:
-p pathpath to mesh/material files-f filemesh file to render-wset window width-hset window height-ao rrun in ambient occlusion mode and set AO radius-nb numrun in GI mode and calculate num bounces of light-cpx x -cpy y -cpz zset camera position-tpx x -tpy y -tpz zset camera target
The library has been tested on the following hardware and OSes:
- Ubuntu Linux 14.04
- AMD FirePro driver 15.201: W9100, W8100, W9000, W7000, W7100, S9300x2, W5100
- AMD Radeon driver 15.302: R9 Nano, R9 Fury X, R9 290
- NVIDIA driver 352.79: GeForce GTX970, Titan X
- Windows 7/8.1/10
- AMD FirePro driver 15.201: W9100, W8100, W9000, W7000, W7100, S9300x2, W5100
- AMD Radeon driver 16.4: R9 Nano, R9 Fury X, R9 290, Pro Duo
- NVIDIA driver 364.72: GeForce GTX970, Titan X
- OSX El Capitan 10.11.4
- Mac Pro (Late 2013) AMD FirePro D500 x2
- Macbook Pro Retina 13" (Early 2013) Intel HD 4300
- Macbook 12" (Early 2015) Intel HD 5300
If <CL/cl.h> is missing try to specify OpenCL SDK location.
AMD:
export $AMDAPPSDKROOT=<SDK_PATH>
NVIDIA:
export $CUDA_PATH=<SDK_PATH>