the-ray-tracer-challenge-racket
tev
the-ray-tracer-challenge-racket | tev | |
---|---|---|
1 | 2 | |
2 | 986 | |
- | - | |
1.7 | 7.8 | |
11 months ago | 16 days ago | |
Racket | C++ | |
- | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
the-ray-tracer-challenge-racket
-
The joy of building a ray tracer, for fun, in Rust
Yes, the book has both implementations of the required functions (for all the complicated ones you need) and tests all written in pseudocode.
The book is really good. I have a half-finished implementation in F#, and what I find striking is just how close the F# code is to the pseudocode. I have also started an idiomatic port to Racket but have only done the tuples, vector, and point implementations so far. I need to pick these up again.
https://github.com/bmitc/the-ray-tracer-challenge-fsharp
https://github.com/bmitc/the-ray-tracer-challenge-racket
I mean, check this out: https://github.com/bmitc/the-ray-tracer-challenge-fsharp/blo...
I have also worked through pieces of Ray Tracing in One Weekend (what was referenced in this post). They get you going much faster, but the code is written in C++. I found the translation to a functional style was harder (was just using Racket and F#'s mutability features), whereas the way The Ray Tracer Challenge is laid out and specified, I found it much easier to translate to an idiomatic functional style.
tev
-
Simple TCP stream library - equivalent of rust's std::net::TcpStream?
Hi. I'm a C++ newbie and want to use a simple, modern library to send over a network - specifically to use the tev image viewer's IPC protocol. I don't need anything fancy, just synchronous that I can feed arrays of bytes to. I looked briefly into asio but that seems too complicated for my needs.
-
The joy of building a ray tracer, for fun, in Rust
In the decade I spent working on RenderMan at Pixar, I learned just how immensely useful it was to have an image viewer running in a separate process talking to the renderer over a socket or pipe. (The Image Tool, or "It" is RenderMan's viewer.) Having it stay up even if you kill the render or it crashes for some reason and being able to flip back and forth to easily compare test renders across recompiles is game changing.
If I were to start writing a new renderer, the first thing I'd do is to hook it up to an external image viewer over some protocol. These days, I find myself liking TEV (https://github.com/Tom94/tev) a lot as a simple open-source image viewer that supports this. See the links in the README for Python and Rust implementations of its protocol.
What are some alternatives?
lisp-sandbox
raytracer-exp - A simple raytracer built as an exercise to learn some Rust
the-ray-tracer-challenge-fsharp - F# implementation of the ray tracer found in The Ray Tracer Challenge by Jamis Buck
hdrToggle - Command Line Tool to turn on HDR in Windows 10
RayTracingWeekend.jl - Ray Tracing in a week-end, implemented in Julia
keikan - An elegant (imo) rendering engine written in Rust.
minifb - MiniFB is a small cross platform library to create a frame buffer that you can draw pixels in
Converseen - Converseen is a batch image converter and resizer
Imath - Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics