MineCraft - Path Traced

00000000000000000000000000000000
0
Anonymous Oct 19, 2010 at 14:00

10-10-18.jpg

Description
I suppose everyone has played MineCraft by now. :) So have I, and I was wondering how MineCraft would look if you would keep the data, but replaced the renderer.

This screen shot has been generated using a stochastic ray tracer / path tracer, named Brigade. Brigade is the successor of my real-time ray tracer Arauna. Brigade uses the CPU and the GPU in tandem to generate high-quality images, using a skydome as the primary light source. This results in highly accurate lighting, with correct soft shadows.

Brigade is designed to run in real-time on high end hardware for modest game scenes. Since path tracing is a rather expensive process, renders shows quite some noise, especially while moving. As soon as the camera is stationary, the image converges to a smoother image.

The MineCraft scenery is read directly from a world folder. The voxel data is then converted to polygons, using an algorithm that attempts to create large quads (rather than a quad for each voxel surface), resulting in a 90% reduction. The scene used for the screenshots uses 62k triangles. This preprocessing obviously means that this is not suitable for realtime modifications to the landscape.

7 Replies

Please log in or register to post a reply.

Fd80f81596aa1cf809ceb1c2077e190b
0
rouncer 103 Oct 20, 2010 at 07:07

that is luscious!

thats the cutest game ive ever seen!

Is there any chance we could get this to use on our computers too? (I realize you need a really really good video card and cpu’s)

More screenies would be nice too.

340bf64ac6abda6e40f7e860279823cb
0
_oisyn 101 Oct 21, 2010 at 16:23

Since the world data is grid based, isn’t it cheaper to work with the voxel volume rather than with general polygons? Much like raycasting in Wolfenstein 3D, but with 3 dimensions rather than 2.

157dd169eabec527c07f1d57ff0a8850
0
phantom 101 Oct 21, 2010 at 20:35

@rouncer

that is luscious!

thats the cutest game ive ever seen!

Is there any chance we could get this to use on our computers too? (I realize you need a really really good video card and cpu’s)

More screenies would be nice too.

You can of course play the original minecraft, but not this one, it’s not a game yet. :) Working on that though, I would like to see if I can replicate Minecraft’s original ‘Classic’ mode, with larger worlds.

Since the world data is grid based, isn’t it cheaper to work with the voxel volume rather than with general polygons? Much like raycasting in Wolfenstein 3D, but with 3 dimensions rather than 2.

Absolutely. Right now I use triangles though; basically I needed a quick-and-easy case where path tracing gives an instant improvement over traditional graphics. This took me 12 hours of coding (most of it went into parsing Minecraft data), going for a app-specific data structure like the one you mentioned would take much more time, but would potentially give much more performance. Don’t overestimate the possible gains though; path tracing time is dominated by divergent ray traversal and shading, not intersection.

Fd80f81596aa1cf809ceb1c2077e190b
0
rouncer 103 Oct 22, 2010 at 07:19

That truly is the smoothest lighting ive ever seen tho, thats the main thing.

heres my attempt at ultra smooth light.

http://ompf.org/forum/viewtopic.php?f=8&t=1895

6837d514b487de395be51432d9cdd078
0
TheNut 179 Oct 23, 2010 at 13:57

You really should put fences up around the edges. It’s a long way down if you misstep :lol:

Have you considered baking the lighting onto the polygons rather than computing it every frame? This way you can relax the hardware requirements and distribute lighting calculations over a period of time. The “fake” methods can supplement for all other intermediary lighting requirements. I only bring this up because you’re converting voxel data. Although like .oisyn said, working with voxel data directly would probably be in your better interest even if it sets you back a week or two. The sheer coolness factor alone is worth the fame and glory :)

E01be4a13f99cdc25360e6716c5db2af
0
carli 101 Nov 06, 2010 at 15:07

Why do you convert the voxel data to Polygons?
Volume data is the fastest data structure in raytracing at all.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Nov 06, 2010 at 16:24

carli, he already answered this question:
@phantom

Absolutely. Right now I use triangles though; basically I needed a quick-and-easy case where path tracing gives an instant improvement over traditional graphics. This took me 12 hours of coding (most of it went into parsing Minecraft data), going for a app-specific data structure like the one you mentioned would take much more time, but would potentially give much more performance. Don’t overestimate the possible gains though; path tracing time is dominated by divergent ray traversal and shading, not intersection.