Jump to content


MineCraft - Path Traced


7 replies to this topic

#1 Guest_Jacco Bikker_*

  • Guests

Posted 19 October 2010 - 02:00 PM

Posted Image


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.

#2 rouncer

    Senior Member

  • Members
  • PipPipPipPip
  • 2722 posts

Posted 20 October 2010 - 07:07 AM

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 used to be able to fit a game on a disk, then you used to be able to fit a game on a cd, then you used to be able to fit a game on a dvd, now you can barely fit one on your harddrive.

#3 .oisyn

    DevMaster Staff

  • Moderators
  • 1842 posts

Posted 21 October 2010 - 04:23 PM

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.
C++ addict
-
Currently working on: the 3D engine for Tomb Raider.

#4 phantom

    Member

  • Members
  • PipPip
  • 33 posts

Posted 21 October 2010 - 08:35 PM

rouncer said:

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.

Quote

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.

#5 rouncer

    Senior Member

  • Members
  • PipPipPipPip
  • 2722 posts

Posted 22 October 2010 - 07:19 AM

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

heres my attempt at ultra smooth light.
http://ompf.org/foru....php?f=8&t=1895
you used to be able to fit a game on a disk, then you used to be able to fit a game on a cd, then you used to be able to fit a game on a dvd, now you can barely fit one on your harddrive.

#6 TheNut

    Senior Member

  • Moderators
  • 1699 posts
  • LocationThornhill, ON

Posted 23 October 2010 - 01:57 PM

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 :)
http://www.nutty.ca - Being a nut has its advantages.

#7 carli

    New Member

  • Members
  • Pip
  • 7 posts

Posted 06 November 2010 - 03:07 PM

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

#8 Reedbeta

    DevMaster Staff

  • Administrators
  • 5307 posts
  • LocationBellevue, WA

Posted 06 November 2010 - 04:24 PM

carli, he already answered this question:

phantom said:

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.

reedbeta.com - developer blog, OpenGL demos, and other projects





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users