Code Monkey home page Code Monkey logo

hippie's Introduction

Hippie

This framework was originally created for my masters thesis. I have been extending and maintaining it thourgh years. It served as as common code base for my research during my PhD studies at the Czech Technical University in Prague. The framework contains a collection BVH construction algorithms and other related techniques implemented in HIP.

Requirements

The framework was recently tested only on Windows but originally it runs also on Linux.

  • GPU: AMD Navi1x+ or Nvidia Kepler+
  • ROCm 4.4+ (Driver 21.50+) or CUDA 11.4+
  • CMake 2.8.10+
  • QT 5.1+ (OpenGL version! Not ANGLE version!)
  • GLEW 1.8+
  • Assimp 3.1.1+
  • DevIL 1.7.8+
  • Windows: Visual Studio 2019+ (x64)
  • Linux: g++ 4.8.1+

Note that the code assumes warp size 32, so it most likely won't work on the Vega architecture.

Compilation

Windows:

  • Set environment variable GLEW as GLEW root directory.
  • Set environment variable ASSIMP as Assimp root directory.
  • Set environment variable QT5_DIR as QT root directory.
  • If you want to use HIP, set environment variable HIP_DIR as HIP root directory.
  • Run CMake gui.
  • Set source code as the root directory.
  • Set build as the root/build directory.
  • Configure and choose Visual Studio solution (x64).
  • If you want to use CUDA, check the CUDA_USE_CUDA option.
  • Genereate a solution.
  • Build the solution.

Linux:

  • If you want to use HIP, set environment variable HIP_DIR as HIP root directory.
  • Run CMake gui or CMake.
  • Set source code as the trunk directory.
  • Set build as the root/build directory.
  • Configure and choose makefile.
  • If you want to use CUDA, check the CUDA_USE_CUDA option.
  • Generate makefile.
  • Go to build directory and run make.

Note: The executable must resides in the root/bin because of paths.

Usage

We use env file format for the configuration, which is a simple text based format using keys and values. All options can be found in src/environment/AppEnvironment.cpp. We simply use the env file as argument to run the sample:

./hippie.exe config.env

If we do not use any file, then bin/default.env is used instead.

References

The framework is based on Understanding the Efficiency of Ray Traversal on GPUs.

Besides that, we use modified versions of the following public implementations:

Citation

If you use this code, please cite the paper:

@Article{Meister2022,
  author = {Daniel Meister and Ji\v{r}\'{\i} Bittner},
  title = {{Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing}},
  journal = {Journal of Computer Graphics Techniques},
  volume = {11},
  number = {4},
  pages = {1--19},
  year = {2022},
}

Disclaimer

I implemented this work during my stays at the Czech Technical University and the University of Tokyo (before I joined AMD).

hippie's People

Contributors

meistdan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.