0

As the title suggests I am interested in voxel based atomic engines (atomic meaning there is at max one visible voxel per pixel). An example for such an engine would be the atomontage engine. What I am trying to archive is an atomic Engine using pixel-wise ray tracing to create the display's image.

Right now I am wondering what programming environment would be suited for such an engine. Normally for 3-D Graphics one may suggest OpenGL (or DirectX?). But OpenGL seems to focus on classic polygonal graphics and I don't know if OpenGL is suited for atomic voxel graphics (where you don't define polygons, don't use textures) and I don't know if classic shadering is suited for an atomic engine.

That's why I thought about using cuda (here as well I don't know beforehand if cuda is suited for my task) and also I unluckily don't own a NVidia Graphics Card.

I also thought about using plain old C (or C++). But doing all of the 3-D calculation yourself seems hard.

So my actual question is: "What tool/environment do I use to create an atomic voxel engine?"

Cœur
  • 37,241
  • 25
  • 195
  • 267
Mein Name
  • 527
  • 3
  • 14
  • Probably not the typical SO question and probably duplicate of http://stackoverflow.com/questions/39473/raytracing-with-cuda... this being said, I'd go for either low resolution so you can handle it on the CPU or develop your own custom hardware. Sadly enough, everything in the graphics world has been polygon-based for decades now, so don't expect any help there... and btw, if the relatively simple 3d math of raytracing to voxels looks hard to you, cancel the project. – Haukinger Nov 20 '16 at 10:56
  • @Haukinger Thanks for your answer. I will read through the topic you posted (but as mentioned in the question I won't be able to use cuda, since I don''t have a NVidia GPU). It's not that ray tracing looks hard to me, but implementing something and implementing it efficiently are two different pair of shoes. Also ray tracing is only a small piece needed to calculate a 3-D enviroment. Thats why I hope for some better solution than "do it all yourself" C++ and NVidia only cuda. =/ – Mein Name Nov 20 '16 at 11:33
  • @Haukinger also is there a better place/forum to ask such a question? I thought SO is about all forms of coding ^^ – Mein Name Nov 20 '16 at 11:34
  • I think the problems begin when you want your world to be dynamic. Voxels are great, giving unlimited detail with constant rendering time and such, but only for _static_ worlds. How do you plan for characters or objects moving around your world? If you transfer some bones-animation to the voxel world, how do you guarantee that the surface of the object remains closed at all times? Polygons, as ugly as they are, bring benefits, and not just the powerful commodity rendering hardware. – Haukinger Nov 20 '16 at 11:58
  • @Haukinger I would be quite happy with a static world to start with (I think creating a static world will be hard enough). As for animations I would create a system devided into two seperate parts. One part manages the static world and one part manages moving/animated objects. So an object like a human or anything moving would be a seperate small voxel space having colission bounderies and changing the voxel information every tick. Though I don't know how efficiently these small space voxel changes can be calculated. Also objects could swap from one system to the other. – Mein Name Nov 20 '16 at 12:29
  • "But doing all of the 3D calculation yourself seems hard" OpenGL, OpenCL, CUDA or whatever won't help you at all doing 3D calculations. There are some basic 3D math GLSL or some CUDA / OpenCL libraries bring, but you have them in plain C/C++ too anyways. – cmourglia Nov 21 '16 at 15:33
  • Anyway, OpenCL might be what you are looking for. It gives you access to the GPU without having to buy an nvidia one. – cmourglia Nov 21 '16 at 15:34
  • @Zouch Thank you for your edvice. I decided to start off with C/C++ and once I have some insight I will try out OpenCL (or maybe get a NVidia Graphiccard since I need a new laptop anyways). – Mein Name Nov 24 '16 at 20:09

0 Answers0