diff --git a/README.md b/README.md index e0f3d93..f313d2b 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,26 @@ # Overview -Psychopath is a path tracer, aimed at rendering animations and VFX for -film. It is currently still in an early prototyping stage of development. +Psychopath is a path tracing 3d renderer. You can read about its development +at [psychopath.io](http://psychopath.io). -This project is mostly for fun, but I do hope it eventually becomes useful. -That "for-fun" disclaimer aside, the long-term goals of Psychopath are to -support efficient global illumination rendering of scenes that are -significantly larger than available RAM and/or that contain procedural elements -that need to be generated on-the-fly during rendering. +This project is mostly just for me to have fun, learn, and play with ideas in +3d rendering. I do have vague hopes that it will eventually be useful for real +things, but that's not a hard goal. -The approach that Psychopath takes to enable this is to try to access the scene -data in as coherent a fashion as possible via breadth-first ray tracing, -allowing the cost of HDD access, expensive procedurals, etc. to be amortized -over large batches of rays. - -Psychopath used to be written in C++ but is now written in [Rust](https://www.rust-lang.org). -The curious can take a look at the old C++ code-base [here](https://github.com/cessen/psychopath_cpp). - -I occasionally blog about Psychopath's development at [psychopath.io](http://psychopath.io). +Unlike many for-fun 3d rendering projects, Psychopath is being designed with +production rendering in mind. I think that architecting a renderer to +efficiently handle very large data sets, complex shading, motion blur, color +management, etc. presents a much richer and more challenging problem space to +explore than just writing a basic path tracer. ## Building -Building Psychopath is mostly straightforward except for its OpenEXR dependency. +Psychopath is written in [Rust](https://www.rust-lang.org), and is pretty +straightforward to build except for its OpenEXR dependency. If you have OpenEXR 2.2 installed on your system such that pkg-config can find it, then as long as you have Rust (including Cargo) and a C++ compiler -installed, you should be able to build with this command at the repository -root: +installed, you should be able to build Psychopath with this command at the +repository root: ``` cargo build --release @@ -42,36 +37,18 @@ the same simple cargo command above. If you have any difficulties, please feel free to file an issue and I'll try to help out as I have time! -## Current Features -- Geometry: - - Triangle meshes (both flat and smooth shading) -- Lights: - - Spherical light sources - - Rectangular light sources - - Distant disc light sources (a.k.a. sun lights) -- Motion blur: - - Camera motion blur - - Deformation motion blur - - Transform motion blur -- Focal blur / DoF -- Spectral rendering (via monte carlo sampling) -- Full hierarchical instancing -- Light Tree sampling for efficient handling of large numbers of lights. (See [this thread](http://ompf2.com/viewtopic.php?f=3&t=1938) for an overview of the technique.) -- Shading: - - A simple material system that supports single-color Lambert and GTR BRDFs assigned per-instance. - # PsychoBlend -Included in the repository is an addon for [Blender](http://www.blender.org) +Included in the repository is an add-on for [Blender](http://www.blender.org) called "PsychoBlend" that lets you use Psychopath for rendering in Blender. However, most Blender features are not yet supported because Psychopath itself doesn't support them yet. -If you have any trouble getting the addon working, please feel free to file an +If you have any trouble getting the add-on working, please feel free to file an issue and I'll try to troubleshoot/fix it as I have time! ## Features Supported -- Meshes (rendered as flat-shaded triangle meshes) +- Polygon meshes. - Point, area, and sun lamps (exported as sphere, rectangle, and distant disc lights, respectively) - Simple materials assigned per-object. - Focal blur / DoF @@ -82,9 +59,7 @@ issue and I'll try to troubleshoot/fix it as I have time! # Contributing I'm not looking for contributions right now, and I'm likely to reject pull -requests. This is currently a solo project and I like it that way. Eventually -when things become less playful/experimental I will likely want to start -collaborating, but that's quite a ways off. +requests. This is currently a solo project and I like it that way. However, I _do_ want people to be able to play with Psychopath, so if you have trouble getting it to build/run please file an issue! And if you want to fork