Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ttsiodras/renderer-cuda
CUDA version of my renderer (real-time raytracing!)
https://github.com/ttsiodras/renderer-cuda
Last synced: 4 days ago
JSON representation
CUDA version of my renderer (real-time raytracing!)
- Host: GitHub
- URL: https://github.com/ttsiodras/renderer-cuda
- Owner: ttsiodras
- License: gpl-2.0
- Created: 2012-09-30T10:22:18.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2017-10-25T19:13:45.000Z (about 7 years ago)
- Last Synced: 2023-03-10T22:52:58.619Z (almost 2 years ago)
- Language: C++
- Homepage: https://thanassis.space/cudarenderer-BVH.html
- Size: 1.81 MB
- Stars: 63
- Watchers: 8
- Forks: 20
- Open Issues: 1
-
Metadata Files:
- Readme: README
- Changelog: ChangeLog
- License: COPYING
Awesome Lists containing this project
README
![Generated in the renderer's raytracing mode, with reflections and refractions enabled.](https://www.thanassis.space/chessRefraction.jpg "Generated in the renderer's raytracing mode, with reflections and refractions enabled.")
*[Full blog post about this code is here (screenshots, history, etc)](https://www.thanassis.space/cudarenderer-BVH.html)*
This is a real-time raytracer, supporting .3ds, .ply (ascii) and .tri (binary) formats.
## COMPILE/INSTALL/RUN
### Under Linux
The code has 3 dependencies: You must install...
- OpenGL (with GLEW and GLUT)
- libSDL
- CUDA toolkitIf you are using Debian, the first two are covered with:
sudo apt-get install libsdl1.2-dev libglew1.5-dev freeglut3-dev mesa-common-dev
...and the second is also quite easy - add the `contrib` and `non-free`
collections to `/etc/apt/sources.list` - that is, at the end of your distro's
repository line. In my case, it looks like this after editing:deb http://ftp.gr.debian.org/debian/ jessie main non-free contrib
...and then:
$ sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit
$ dpkg -l | grep nvidia-cuda
ii nvidia-cuda-dev 6.0.37-5 amd64 NVIDIA CUDA development files
ii nvidia-cuda-toolkit 6.0.37-5 amd64 NVIDIA CUDA development toolkitAfter installing the dependencies, a simple...
./configure && make && ./src/cudaRenderer 3D-objects/chessboard.tri
...will work.
### Under Windows
Make sure you have the CUDA toolkit installed (I used version 6.0)
Then:
1. Open the cudaRenderer_vc90.sln with your Visual Studio
2. Compile in Release mode
3. Right-click on "cudaRenderer" in the Solution explorer, and select "Properties"
4. Click on "Configuration Properties/Debugging"
5. In the "Command Arguments", enter "..\3D-objects\chessboard.tri" and click OK
6. Hit Ctrl-F5 to run.You should see a rotating chessboard...
Read below for keyboard control intructions, or just press 'H' for help.
Note: I used the free Visual C++ 2008 Express Edition, but this should work
with the commercial one, too.## Keyboard controls
Use the following keys to navigate around the object:
- Hit 'H' for help.
- Hit 'R' to stop/start auto-spin (camera rotates around the object).
- Fly using the cursorKeys/A/Z.
- Rotate the light with W/Q.
- S/F are 'strafe' left/right
- E/D are 'strafe' up/down
(strafe keys don't work in auto-spin mode).
- F4 toggles points mode
- F5 toggles specular lighting
- F6 toggles phong normal interpolation
- F7 toggles reflections
- F8 toggles shadows
- F9 toggles anti-aliasing
- ESC quits.## Misc
Since it reports frame rate at the end, you can use this as a benchmark
for CUDA cards. Just spawn with "-b" to request benchmarking:
(Note: keys don't work in benchmarking mode)./src/cudaRenderer -b 150 3D-objects/chessboard.tri
This will draw 150 frames and report speed back. With my GT240, it reports:
Rendering 150 frames in 8.117 seconds. (18.4797 fps)
You can also do this easily via:
make bench