Skip to content

Commit

Permalink
v0.1.5
Browse files Browse the repository at this point in the history
  • Loading branch information
connortbot committed Oct 1, 2024
1 parent ccc2059 commit 6ca46fc
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<p align="center"><img width="600" alt="Render1" src="https://github.com/cypraeno/caitlyn/assets/25397938/9f93e7a7-37d0-43e4-bea1-e81859f75f00"></p>


Caitlyn is an in-development Monte Carlo ray tracer built in C++ by a team of students from the University of Waterloo and Wilfrid Laurier University. Caitlyn is actively working towards being a beautiful tool for bridging the accuracy and lighting of raytracing and the breathtaking visuals of pixel art (see our [portfolio](#our-portfolio) and Odd Tales' "The Last Night"!)
Caitlyn is an reverse path tracer built for implementing raytracing lighting to 'pixellax' 3D visuals. It is built in C++ by a team of students from the University of Waterloo and Wilfrid Laurier University.

'Pixellax' is an art style with a focus on using 2D pixel art in 3D environments with an emphasis on beautiful, colourful lighting. (see our [portfolio](#our-portfolio) and Odd Tales' "The Last Night"!)

_Interested in getting involved? Contact [Connor Loi]([email protected]) or [Samuel Bai]([email protected])._

Expand All @@ -20,24 +22,24 @@ Caitlyn MCRT is built on Debian 12. It may work on other distros, but we recomme
### Setup
Before continuing:
- Install `Docker Desktop`.
- Pull the latest `docker pull connortbot/caitlyn-mcrt:base-vX.X.X`
- Pull the latest `docker pull connortbot/caitlyn-mcrt:base-v0.2.1`

### Build
You may pull the repository from within the container or mount a volume. Either works!
Run `cmake -B build/ -S .` to create files in the `build` folder. `cd build`, and `make`. Don't forget to initialize the submodules.
Run `cmake -B build/ -S .` to create files in the `build` folder. `cd build`, and `make`. _Don't forget to initialize the submodules!_

### Basic Rendering
Caitlyn renders scenes from our custom filetype `.csr`. By default, the `caitlyn` executable will read the scene from a `scene.csr` file, so you need to have one before running. In this guide, we'll just run the `example.csr`, which you can copy from [here](https://github.com/cypraeno/csr-schema/blob/main/examples/example.csr).
Caitlyn renders scenes from our custom filetype `.csr`. By default, the `caitlyn` executable will read the scene from a `scene.csr` file, so you need to have one before running. In this guide, we'll just run the `0.1.5-showcase.csr`, which you can copy from the `tests` folder.

To learn how to write CSR files, check out the [Basic Guide](https://github.com/cypraeno/csr-schema/blob/main/docs/basic-guide.md).

Caitlyn has a user-friendly command line interface, allowing you to customize samples, depth, type of multithreading, and more. Once you have the executable, you can run `./caitlyn --help` to see all the options at your disposal.
Caitlyn has a user-friendly command line interface, allowing you to customize samples, depth, use multithreading, and more. Once you have the executable, you can run `./caitlyn --help` to see all the options at your disposal.

Let's render a PNG file of the example scene! Ensure that you have your CSR file in the same directory.
```
./caitlyn -i example.csr -t png -r 600 600
./caitlyn -i 0.1.5-showcase.csr -o 0.1.5-showcase.png -t png -s 50
```
This will read the scene from `example.csr` and output as a `png`.
This will read the scene from `0.1.5-showcase.csr` and output as a `png`.
And now you have your first caitlyn-rendered scene!

## Our Portfolio
Expand All @@ -57,14 +59,10 @@ Flags like `--samples` and `--depth` control the amount of time spent on the ren

Sometimes, CSR files will have features not supported in your version of `caitlyn`. You can check this with the version indicator at the top of the CSR file and with `./caitlyn --version`.

For users who have a better understanding of their computer's resources, the `--threads` and `--vectorization` flags control the use of more efficient architecture. While `threads` dictate the amount of CPU threads to split the workloads on, the `vectorization` flag will dictate the type of SIMD batching. `[NONE|SSE|AVX|AVX512]`.
However, its important to note that this is increasingly untested with the new pathtracer. It is currently DEPRECATED. Use at own risk.


## Contribute
For contribution or general inquiries, please email one of us at [Connor Loi]([email protected]) or [Samuel Bai]([email protected]).

The people the made it happen:
Acknowledgements:

<div align="center">
<a href="https://github.com/connortbot">Connor Loi</a>,
Expand All @@ -74,5 +72,16 @@ The people the made it happen:
<a href="https://github.com/ASharpMarble">Jonathan Wang</a>,
<a href="https://github.com/18gen">Gen Ichihashi</a>,
<a href="https://github.com/maxtan84">Max Tan</a>,
<a href="https://github.com/rickyhuangjh">Ricky Huang</a>,
<a href="https://github.com/rickyhuangjh">Ricky Huang</a>
</div>

Citation:
```bibtex
@software{Caitlyn,
title = {Caitlyn MCRT},
author = {Connor Loi and Samuel Bai},
note = {https://github.com/cypraeno/caitlyn},
version = {0.1.5},
year = 2024
}
```

0 comments on commit 6ca46fc

Please sign in to comment.