Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/petarkirov/chess2rt
A raytracer written in D.
https://github.com/petarkirov/chess2rt
Last synced: 19 days ago
JSON representation
A raytracer written in D.
- Host: GitHub
- URL: https://github.com/petarkirov/chess2rt
- Owner: PetarKirov
- Created: 2014-08-12T20:28:10.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T18:08:27.000Z (almost 2 years ago)
- Last Synced: 2024-12-17T04:52:26.135Z (21 days ago)
- Language: D
- Homepage:
- Size: 24.8 MB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Chess2RT [![GitHub Actions Status](https://github.com/PetarKirov/Chess2RT/workflows/GitHub%20Actions%20[Linux,%20Windows,%20macOS]%20CI/badge.svg)](https://github.com/PetarKirov/Chess2RT/actions)
========
A raytracer renderer, written in D, which will eventually be used for a
3d rendered chess game (and/or a variation of it).![chess2rt_screenshot_20_sept_2016](https://cloud.githubusercontent.com/assets/3475150/18662160/c4766b1c-7f21-11e6-938f-4ac8caa28e80.png)
( Cubemap skybox courtesy of: http://www.custommapmakers.org/skyboxes.php )What works
----------
+ Simple geometry objects: spheres, cubes and a horizontal plane.
+ CSG combinations of supported geometry objects (including CSG objects).
+ Procedural textures.
+ Lambert and Phong shading.
+ Loading scenes from `.sdl` or `.json` files. You can find sample scene files in `data/`.
+ Interactive camera movement (`←`, `↑`, `→`, `↓` for movement, `Shift + ←`, `Shift + ↓`, `Shift + →`, `Shift + ↓` for mouse look, `Ctrl + ←`, `Ctrl + →` for rotation and `Ctrl + ↑`, `Ctrl + ↓` for up and down moving).Performance statistics
----------------------
Available [here](https://github.com/ZombineDev/Chess2RT/blob/master/perf-results.md).Build Instructions
------------------
1. Install what's needed (if you haven't yet):
+ [D][1] compiler with frontend >= **v2.071.1** (e.g. [DMD][2])
+ [dub][3] package manager >= **v1.0.0**
+ [SDL 2][4] binaries >= **v2.0.0** (SDL 2.0.3 DLLs are included for windows)
2. Git clone:
```
git clone https://github.com/ZombineDev/Chess2RT.git
```3. Run DUB:
```
cd ./Chess2RT
dub
```Scene files
-----------
Scene files are written in [SDLang][5] or JSON and are usually put in the `data/` folder.
To render a specific scene you can either:
+ call the app from the command-line like this:
```
./Chess2RT/bin//chess2rt --file=data/scene1.sdl
```+ place the path to scene you wish to load in `data/default_scene.path` and call chess2rt without arguments.
Compatibility
-------------| | Linux | Windows |
|-----------|-------|---------|
| DMD 64 | [![Build Status](https://travis-ci.org/ZombineDev/Chess2RT.svg?branch=master)](https://travis-ci.org/ZombineDev/Chess2RT) | [![Build status](https://ci.appveyor.com/api/projects/status/e7bvb8us3o01p3gc?svg=true)](https://ci.appveyor.com/project/ZombineDev/chess2rt/branch/master) |
| DMD 32 | [![Build Status](https://travis-ci.org/ZombineDev/Chess2RT.svg?branch=master)](https://travis-ci.org/ZombineDev/Chess2RT) | [![Build status](https://ci.appveyor.com/api/projects/status/e7bvb8us3o01p3gc?svg=true)](https://ci.appveyor.com/project/ZombineDev/chess2rt/branch/master) |
| LDC 64 | [![Build Status](https://travis-ci.org/ZombineDev/Chess2RT.svg?branch=master)](https://travis-ci.org/ZombineDev/Chess2RT) | [![Build status](https://ci.appveyor.com/api/projects/status/e7bvb8us3o01p3gc?svg=true)](https://ci.appveyor.com/project/ZombineDev/chess2rt/branch/master) |- DMD (reference D compiler) >= `2.071.1`
- LDC (LLVM D Compiler) >= `1.1.0-beta2`.Acknowledgement
---------------
I developed this project for the 3D Graphics and Raytracing course at fmi.uni-sofia.
Most of the code in `./source/rt/` is based on https://github.com/anrieff/trinity/.This project uses:
+ [SDL 2][4] (SDL 2.0.3 binaries for Windows x86 and x86_64
are included in `lib/`)
+ [GFM][6] (package on http://code.dlang.org)
+ [SDLang-D][5] (package on http://code.dlang.org)[1]: http://dlang.org/
[2]: http://dlang.org/download
[3]: http://code.dlang.org/download
[4]: http://www.libsdl.org/download-2.0.php
[5]: https://github.com/Abscissa/SDLang-D
[6]: https://github.com/d-gamedev-team/gfm