Рет қаралды 234,101
My Tutorial Series: • Creating the most simp...
(Building a Raytracer from scratch with Blender Math Nodes)
Map Download: www.mediafire.com/file_premiu...
(It takes like 200+ hours for one image to render, even with Carpet Mod which speeds up your game)
Some people in the comments said that what I built is actually a Pathtracer, Raycaster and one guy thought this was Raymarching.
I've had this discussion for years. Using the names introduced in the old original papers has become very confusing. Today, Raytracing is mostly used as a very general term, and both Pathtracing and Raycasting are listed as a subset.
e.g. Wikipedia's page about Raytracing: "...ray tracing-based rendering techniques, such as ray casting, recursive ray tracing, distribution ray tracing, photon mapping and path tracing, ..."
Wikipedia's page about Raycasting: "..., see ray tracing (graphics) as both are essentially the same technique under different names. Scott Roth had invented the term "ray casting" before having heard of "ray tracing". "
Raymarching usually just means that the intersection is computed iteratively by stepping along the ray in small increments - I'm not doing that at all.
What I built is bascially a "Raycaster" - the most important part of a "typical" Raytracer, it shoots the primary rays into the scene. The problem with calling it raycasting is that today people associate that with something that is very different from what I built. e.g. If you search for "raycasting" on google images, you only find Wolfenstein 3D stuff, which is actually only casting rays in 2D, which are used to define the height of 2D collumns to give the illusion of a 3D environment.
What I built uses the exact same camera system as a typical Raytracer, but I do not shoot any further rays for reflections or shadows - I thought about rendering one sphere and a reflective floor plane - but that would not look good on a redstone lamp display. I need to build a better display first, that can display multiple shades of gray without dithering. I decided for rendering 8 spheres in a cube formation so that it can be compared well to rasterization.
The main motivation for me was to learn binary arithmetic, and building a simple programmable computer. And Minecraft Redstone is perfect for learning such things.
This build is actually not that complex, the only reason why nobody built a Raytracer before is that it's super slow and you can get better looking images with traditional 3d rendering (rasterization).
This was my first time actually using Redstone for something more complex than opening a door. A lot of things could be optimized... especially the individual components like the adder and multiplier are not synced so a lot of time is wasted in between instructions.
Big thanks to @mattbatwings for their amazing Redstone Tutorial series.
Many parts of my build are based on these tutorials.
Music at the Beginning: Giving Up - JVNA (KZbin Audio Library)
Chapters:
0:00 - Intro & Reveal
1:31 - Traditional Rendering vs Raytracer
3:31 - Building it in Minecraft
4:27 - Redstone Computer Explanation
6:20 - Implementation in Minecraft