2.5D Dynamic LOD Voxel Renderer

Started by
11 comments, last by CC Ricers 9 years, 2 months ago

So uhh, I suck at programming, art, etc. And yet im still overly ambitious, whatever. Heres what i want to be working on:

The art style of the game is "2d" pixel art, with Dungeon%20Master_5.png styled graphics.

At least, thats how its supposed to "look" and "feel" to the player. I don't really know how to explain this.

The world is 3d, the render engine is effectively 3d as well. The world may as well be made up of voxels at different levels of detail, similar to the way Zbrush does its thing. From very far away, a tree would look like a few green and brown pixels, but from closer, you would be able to see each knot in the bark, every detail in a leaf, etc. Potentially up to an infinite level of detail, but not necessarily.

How do i do this?

As well, how beastly would a machine need to be that is dedicated to this render engine?

Lets assume that all the details of the render engine are handled by an external USB device or something fancy like that, since it would be rather impractical to presume that a pc would be able to process this on its own.

Any feedback/questions are welcome. Im sorry i cant really explain this very well...

~Nullie
Advertisement

Oh, And to boot, Throw in physics-based lighting.

What you see is completely dependent on Light (probably best simulated as a color, position, and "energy" value.), Viewpoint (Mostly just simulated as a position, but might have some fancy stuff added like seeing colors differently, seeing things a bit lighter than others, etc.), and Material properties, which have yet to be determined. But, in essence, It should be possible to create a scene like the one above, using only a light source, a viewpoint, and an array of voxels with material properties that affect the way the light is reflected, refracted, lost, etc. But only in relation to the viewpoint. (This would be tricky, since a lot of this would rely on having light "bounce" off the stone, part of it returning to the viewpoint, part of it lighting other areas, and returning to the viewpoint with less "energy" etc.)

Oh yeah, and one more 'impossible' thing to add. Make it an MMO, or at least with a client-server style infrastructure. While it would be possible to just say that all the rendering is handled client-side, How would all those "infinitely detailed" voxels be dealt with? Constant file-streaming, perhaps? Would it be faster to just stream the rendered images to the client, rather than stream the world/area, and wait for the client to render it? I feel like the latter option would be less intensive on the client, making it possible for the "machine" to be cheaper for a consumer, at the cost of a much more expensive server.

~Nullie


How do i do this?

Years of programming expertise in computer graphics and in engineering tradeoffs. Despite the image you posted, your description kind of sounds like Minecraft, so perhaps you should research the techniques used to make that.


As well, how beastly would a machine need to be that is dedicated to this render engine?

That depends on the tradeoffs you make. Modelling worlds and rendering them nicely is all about trickery and "faking it" to get something that looks good enough and runs fast enough.


Lets assume that all the details of the render engine are handled by an external USB device or something fancy like that, since it would be rather impractical to presume that a pc would be able to process this on its own.

External USB device? Huh?

Well on the consumer side, it would seem cheaper to just purchase a machine that communicates with your computer, Than to purchase a highly specialized "console" designed to run "games" and simulations using this engine.

But then again, I'm also considering beefing it up even more, without taking the consumer into consideration. And making it into a sort of next-gen arcade machine, where you pay to use it for a while, rather than owning your own.

And yes, I suppose its similar to minecraft, On steroids, or something. Since its intended to have maybe 10k Voxels for every 1m. (Or as few as 1 Voxel for 1km) and with a severely beefed up lighting system.

~Nullie

Minecraft has no LevelOfDetail.

Dunno what this 2.5D means. 2.5D is only andvantagous for texture mapping on old hardware.

PC hardware today is fully capable to overburden a lot of brains in real time.

My problem with LOD is that always BDRF comes to my mind. And then I want global illumination ...
See how much RAM you have, assume an octree and then assuming your low res on screen the player has to move very close to anything to see your voxels..


My problem with LOD is that always BDRF comes to my mind. And then I want global illumination ...
See how much RAM you have, assume an octree and then assuming your low res on screen the player has to move very close to anything to see your voxels..

I don't understand this. What is BDRF?

I expect that to fully realise this idea, it'll be required to have a "super-computer" built designed to specialize in running the engine (renderer, and other)


Modelling worlds and rendering them nicely is all about trickery and "faking it"

A lot of the world-modelling is hoped to be highly dependent on proc. gen., dealing with each independent brick, tree, leaf, etc.

~Nullie

Well, I suppose that if Euclidean can figure out how to do a ridiculous amount of rendering on the computer using trillions of voxels, you shouldn't have too much to worry about. Check out their latest video of their tech.

Conclusion: The performance you will have depends mostly on the algorithms you choose.

I've seen the euclidean thing, And as far as i can tell, It doesnt really support dynamic lighting.

I dont neccessarily need the engine to run in real-time, but closer to something like a beefed up blender "cycles"

As well, a huge part of this is expected to be working on the hardware side, as well as the soft side.

~Nullie

I should be firm in using this abbreviation as cycles uses it.
I meant bidirectional reflectivity distribution or so.
A smooth surface is well investigated, and can be modeled by simple equations.

In the low res CPU render ages I liked voxels. Today? 4k displays, special hardware. Bruteforce polygon soup just looks too good today!


Lets assume that all the details of the render engine are handled by an external USB device or something fancy like that, since it would be rather impractical to presume that a pc would be able to process this on its own.

If you think that this sentence makes any sense, you do not have the sufficient knowledge or understanding to even start doing what you describe. How do you think a render engine can be handled on an external USB device?

Start with something simpler and work your way up.

This topic is closed to new replies.

Advertisement