Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 4 5 [6] 7 8

Author Topic: Euclideon Graphics Engine  (Read 14382 times)

Tharwen

  • Bay Watcher
    • View Profile
Re: Euclideon Graphics Engine
« Reply #75 on: August 03, 2011, 04:24:07 am »

Well, the engine only cares about surface voxels when rendering, unless you want transparency of course, but the objects are indeed volumetric. Even when we're dealing with volumetric data, unless you're dealing with something like a physics simulation, medical data, or something similar, you don't need to specify every single atom inside an object. Atoms also don't need to have the same size as Notch implied.
You know, this gives me an idea, which knowing my lateness to the game has already been done and thought of. If the ray encounters an atom that is large enough to be encountered by a second (or in other words, the pixel is smaller than the atom given its relative distance to the viewer), couldn't you just subdivide the atom again to provide more detail? Essentially a 3D fractal. Lots of natural materials have (or can be approximated by) some easily mathematically defined patterns that could be used like this. More, you could discard these subdivisions periodically when they fall out of view. Not sure what the overhead would be for messing with this data structure that way. I get the feeling that's the major barrier for any of this stuff.

But it doesn't use raytracing!

As far as I know, no graphics card has drivers for raytracing yet, so no engine has been able to process it fast enough to make it usable in real-time without using custom-made hardware.
Logged
[Signature]

Johuotar

  • Bay Watcher
    • View Profile
    • Some game projects
Re: Euclideon Graphics Engine
« Reply #76 on: August 03, 2011, 09:08:34 am »

Logged
[img height=x width=y]http://LINK TO IMAGE HERE[/img]
The Toad hops in mysterious ways.

Nivim

  • Bay Watcher
  • Has the asylum forgotten? Are they still the same?
    • View Profile
Re: Euclideon Graphics Engine
« Reply #77 on: August 03, 2011, 10:07:41 am »

 I found it! Miguel Cepero's Voxel blogging, he is working on his own voxel systems and going in depth on how they work, although what I just linked to gives you the blog post for "should it be open source?", and a poll for what direction he should go in.

 Edit: Looking again, he's really picked up the pace since March, and much of it is interesting from a purely mathematical perspective.
« Last Edit: August 03, 2011, 10:13:26 am by Nivm »
Logged
Imagine a cool peice of sky-blue and milk-white marble about 3cm by 2cm and by 0.5cm, containing a tiny 2mm malacolite crystal. Now imagine the miles of metamorphic rock it's embedded in that no pick or chisel will ever touch. Then, imagine that those miles will melt back into their mantle long before any telescope even refracts an image of their planet. The watchers will be so excited to have that image too.

Johuotar

  • Bay Watcher
    • View Profile
    • Some game projects
Re: Euclideon Graphics Engine
« Reply #78 on: August 03, 2011, 10:10:29 am »

One of the options is "Dwarf Fortress universe with rich graphics" :O
Logged
[img height=x width=y]http://LINK TO IMAGE HERE[/img]
The Toad hops in mysterious ways.

Nivim

  • Bay Watcher
  • Has the asylum forgotten? Are they still the same?
    • View Profile
Re: Euclideon Graphics Engine
« Reply #79 on: August 03, 2011, 10:15:08 am »

 Yeah, I first found the blog through a thread here on Bay 12 where people were talking about using his system for Dwarf Fortress' graphics. He decided to consider the idea.
Logged
Imagine a cool peice of sky-blue and milk-white marble about 3cm by 2cm and by 0.5cm, containing a tiny 2mm malacolite crystal. Now imagine the miles of metamorphic rock it's embedded in that no pick or chisel will ever touch. Then, imagine that those miles will melt back into their mantle long before any telescope even refracts an image of their planet. The watchers will be so excited to have that image too.

Soulwynd

  • Bay Watcher
  • -_-
    • View Profile
Re: Euclideon Graphics Engine
« Reply #80 on: August 03, 2011, 11:48:13 am »

This is actually just a really efficient version of Minecraft's rendering engine...
Except it does not use blocks.
It does. It just has lots of them, rendered more smoothly.
Not that one, no. They claim it's pixel by pixel, no blocks. (As far as I can remember, I still haven't rewatched the video)

Well, the engine only cares about surface voxels when rendering, unless you want transparency of course, but the objects are indeed volumetric. Even when we're dealing with volumetric data, unless you're dealing with something like a physics simulation, medical data, or something similar, you don't need to specify every single atom inside an object. Atoms also don't need to have the same size as Notch implied.
You know, this gives me an idea, which knowing my lateness to the game has already been done and thought of. If the ray encounters an atom that is large enough to be encountered by a second (or in other words, the pixel is smaller than the atom given its relative distance to the viewer), couldn't you just subdivide the atom again to provide more detail? Essentially a 3D fractal. Lots of natural materials have (or can be approximated by) some easily mathematically defined patterns that could be used like this. More, you could discard these subdivisions periodically when they fall out of view. Not sure what the overhead would be for messing with this data structure that way. I get the feeling that's the major barrier for any of this stuff.
Each atom can be textured/altered in any way by a shader, much like what happens when a polygon get's 2D projected to your screen-space. So yes, an atom can contain a fractal shader. The shader pipeline in the graphics cards are pretty powerful and flexible, they don't care about what they are drawing from, only that they are drawing a single pixel on the screen. You can give the shader any data you want for it to work with. Normally you'd have a vertex shader that mainly computes 3 things, the relatives angles between light and surface, the normal of the surface, and the z-buffer (the virtual depth of your screen). They can also be used for distortion effects and the like. After that there's the texturing pass and then the final screenspace pass. I -think- you can fake a polygon to make use of the vertex shader, but with pure voxels you wouldn't be using it anyway. You could still make use of CUDA to calculate your voxel data and then use the pixel shaders for final effects, such as texturing, lightning, etc.

But it doesn't use raytracing!

As far as I know, no graphics card has drivers for raytracing yet, so no engine has been able to process it fast enough to make it usable in real-time without using custom-made hardware.
A lot of old games use raytracing, but that's beyond the point. Nowadays we have CUDA, thanks to nvidia. It allows you to make use of the GPU for pretty much anything. For example, I use this:

http://www.randomcontrol.com/arion

Even on my single 275GTX, I can move around a ray-traced scene with several million rays being cast per second. It's pretty smooth. Of course, complex scenes where the light has to bounce around to reach a pixel, it will slow down, but decently made scenes let you move around while rendering in real time. Look at the little videos, that's basically the same thing a voxel rendering engine does, except that for speed you're doing a reverse casting to get a single pixel on the screen.

There are CUDA based voxel engines as well:
http://www.youtube.com/watch?v=Zl9CiGJiZuc

Like I said before, you only need one voxel model and then it can be instanced to near infinity with little to no problem.

More examples:
http://voxels.blogspot.com/
http://www.youtube.com/watch?v=TjmRPjnWJ5g
http://www.youtube.com/watch?v=oIQ0pqIeBcs

This is also a good read to learn about voxel terrains, crysis uses something a bit similar to this for distance terrain:
http://www.flipcode.com/archives/Realtime_Voxel_Landscape_Engines-Part_1_Introduction.shtml

This is probably how crysis does it:
http://www.crs4.it/vic/cgi-bin/bib-page.cgi?id=%27Gobbetti:2005:FV%27

Either that or it uses HLOD simplification.

Notch replies: http://notch.tumblr.com/post/8423008802/but-notch-its-not-a-scam
Notch has no idea what he's talking about, as usual.

Here's an old game demo that uses voxels-to-geometry in a way minecraft is far from dreaming of:
http://www.gpstraces.com/sven/HVox/hvox.news.html
Logged

Jackrabbit

  • Bay Watcher
    • View Profile
Re: Euclideon Graphics Engine
« Reply #81 on: August 10, 2011, 07:07:39 am »

Man this looks really, amazingly cool. As such I will assume it doesn't exist till it arrives in my hands.
Logged

Teency

  • Escaped Lunatic
    • View Profile
Re: Euclideon Graphics Engine
« Reply #82 on: August 12, 2011, 10:04:53 am »

For anyone still sceptical about this company, watch the 40min interview here: http://www.hardocp.com/article/2011/08/10/euclideon_unlimited_detail_bruce_dell_interview (produced after the Aug 1st demo)

He address' most of the points Notch made and explains the technology a little better, gives system specs for a realtime demo (I7 with 4GB DDR3), and quite clearly claims that the realtime demos don't use any of the gpu.

He's also quite open in saying that they're doing fine for money and are turning down offers for investors.

I think notch may come out of this looking like a bit of a douche for so many incorrect assumptions.
Logged

Soulwynd

  • Bay Watcher
  • -_-
    • View Profile
Re: Euclideon Graphics Engine
« Reply #83 on: August 12, 2011, 11:26:13 am »

Like I said before, Notch clearly has no idea of what he's talking about.

Edit: And watching the interview, he said he's not raytracing, now I wonder how his search algorithm works. Maybe he makes a screenspace cube and moving the camera is actually moving the atoms through that cube. Hmm... That would indeed be faster than raytracing and easy to run a search engine for.

Oh crap, did I reveal his secret?
« Last Edit: August 12, 2011, 12:09:24 pm by Soulwynd »
Logged

Soulwynd

  • Bay Watcher
  • -_-
    • View Profile
Re: Euclideon Graphics Engine
« Reply #84 on: August 12, 2011, 01:30:03 pm »

I think I know how he does it. I haven't thought of it until I heard him talking in the interview.

First of all - he only cares about surface atoms, so a rock takes less data to store.

Second - the laser scanned images show one of the tricks. It appears to return 3 points of a triangle for reasonably flat surfaces and he does mention polygons for his own stuff. So I think each atom actually contains 3 points and thus a certain area, which saves a lot of trouble when searching for them in really close up scenes and avoids the noise issue you usually see with voxel engines.

Third - Euclidean... That's the irony and the genius part of it.... Instead of raytracing and doing all the shenanigans a normal polygon graphics would do, he takes a slice of the world, relevant to what you're seeing and projects it into a cuboid viewport through a sine transformation to emulate perspective. So instead of casting a ray, he just needs the closest atom to the surface of the viewport to place it on a given pixel. Which can easily and extremely fast be done by a binary search!

Mind == Blown!

It's a genius move!
« Last Edit: August 12, 2011, 01:54:35 pm by Soulwynd »
Logged

woose1

  • Bay Watcher
  • Yay for bandwagons!
    • View Profile
Re: Euclideon Graphics Engine
« Reply #85 on: August 12, 2011, 01:34:07 pm »

God-fucking dammit Soulwynd, stop figuring out revolutionary things before the rest of us get to! D:<
Logged

eerr

  • Bay Watcher
    • View Profile
Re: Euclideon Graphics Engine
« Reply #86 on: August 12, 2011, 01:50:57 pm »

See now I want to see it without the sine transformation.
Logged

Soulwynd

  • Bay Watcher
  • -_-
    • View Profile
Re: Euclideon Graphics Engine
« Reply #87 on: August 12, 2011, 01:52:50 pm »

Sorry. D:

At least I think that's it. He might be using quads instead of triangles too. I went back to the point where he went through the leaf and it looked like quads instead. Either that or it is a noise from how he searches for them.
Logged

eerr

  • Bay Watcher
    • View Profile
Re: Euclideon Graphics Engine
« Reply #88 on: August 12, 2011, 02:10:35 pm »

Alright, but, I'm still confused as to how the data in the object is arranged?
Logged

Vattic

  • Bay Watcher
  • bibo ergo sum
    • View Profile
Re: Euclideon Graphics Engine
« Reply #89 on: August 12, 2011, 02:11:39 pm »

Nice one Soulwynd.

Assuming you're correct I wonder how they'd respond if they knew you'd figured it out.
Logged
6 out of 7 dwarves aren't Happy.
How To Generate Small Islands

This is not a link
Pages: 1 ... 4 5 [6] 7 8