hello ,my name is Daniel.I am very interesting in voxel . I am creating my models with Voxel3D everygraph ( i see more easy than slab6),and also playing with evaldraw and worms 3d editor.
http://www.worms3d-portal.com/viewtopic.php?t=779
I had not seen info about poxel in this forum,and i think it would a good way to render in realtime.(i know it is not "exact voxels")
Some help for creating a tool to export/import with xom,vox,v3a .. formats ??
someone has experience with render poxels ? some ideas?
Thanks
Dani
Edited by cualquiercosa327 at
ConsistentCallsign at
Re: POXELS
I am creating my models with Voxel3D everygraph ( i see more easy than slab6)
Slab6 is easier and more powerful than Voxel3D. And it's free ;)
worms 3d editor.
Worms 3D sucks. You should stop playing it / using its editor. Poxels are not the future.
Some help for creating a tool to export/import with xom,vox,v3a .. formats ??
http://advsys.net/ken/util/v3b2vox.zip You can convert v3b to vox and then you can convert the vox to kv6 or kvx with slab6.
esuvs at
Hi Daniel,
Yes, I am working on an engine which uses a polygon-voxel hybrid. I avoid using the term 'Poxel' because my approach is a bit different from that used in Worms3D, but it has a lot of similar concepts. I have a thread on these forums which you can read:
Interestingly, I also had a discussion with one of the Worms3D developers about the similarities and differences in our approaches. You can read the discussion near the bottom of this page (his user name is 'Peeling', mine is 'PolyVox'):
As for your original quetion, I do of course have some ideas how to render poxels ;) I use the 'Marching Cubes' algorithm - see what that finds in Google and then I can explain some more details. I don't currently have any plans for making a converter for VoxLap, but then I've never used ken's tools. If there are good I may consider it :)
cualquiercosa327 at
hello to all .thanks for your replies.
Quote I am creating my models with Voxel3D everygraph ( i see more easy than slab6) Slab6 is easier and more powerful than Voxel3D. And it's free
I tried slab6,but i am new on modeling ,and i see easier voxel3d ,it is similar to paint in 2d (similar to tiles to older 2d videogames ).Maybe when i have more experience i go back to trying slab6 again.I know voxel3d has some limitations,but for a new person it the most easily (in my view). And yes,being free is very good.I love gnu software,not only being free,as for this powerfull and easily of expansion,but there are some good programs and no so expensive.
Quote Some help for creating a tool to export/import with xom,vox,v3a .. formats ??
Thanks.I explain bad,i have used v3b2box for exporting my models,and after play with it in evaldraw (i see it a very good and interesting tool :p ) I tried write about convert xom to vox (or v3a) and vox(v3a) to xom.
Quote Worms 3D sucks. You should stop playing it / using its editor. Poxels are not the future.
mm,maybe .But i love the look and feel of this game,and it is apropiate for actual plataforms.I think on present and this is a solution ,very adecuate for me. For my ideas ,kens engine is not apropiate (it is very powerfull and optimizated but also requisites are high),it is very optimized for pc but not videoconsoles less limited videoconsoles as nintendods. (i am not an expert able to convert full engine on other plataforms,and also i dont need all this freatures),i only wanna create some funny objets and maybe simple and funny games on nintendods, and i love the look and feel of voxel for my "proyects" When we have more powerfull computer,and we can have millons and millons of voxels,render in "full" realtime,with realistic look as actual poligon engines,we will can forget this kind of render (the same of "trixel" of fez ,or other aprochs),but nowadays i think it has good results. My first idea are games similar to metroid cubed (http://pages.infinit.net/voxel/ ) but maybe using 3d chip of nintendo ds for render my voxels models.
And after reading a lot about ideas of rendering voxels i think it is one of the most apropiated engines.
esuvs,your ideas sounds very interesting,i am going to read all info you have post,but i think your main idea is similar to mine.
It would be interesting being to use worms models with your engine,i think it is a very good idea not reinvent severaltimes the thing are already done.We already have a very powerfull editors (several,but now i am speaking about worms free editor,but also the other voxels as slab6 and vox3d)being able to use the tool you choose to modeler and after use your models independly the editor you had used . For this i asked about tools to convert into formats.
I have not a 'engine to render" ,only a lot of ideas.Are you engine easily portable to a limited plataform as nintendods?it can render a few poligons with hardware (similar to nintendods) And it would factible using voxel model created with other tools (as voxel3d /worms editor/slab6...) in your engine,or almost being able to convert into a adecuated format?
But 'Marching Cubes' algorithm will require a lot of cpu, no.?(Nintendo ds only has arm cpu and not very fast .I think about poxel for this reasons,it is not full rendering realtime voxel,only a semi prerender and mix with poligons.
And yes ,ken toos are very good,check evaldraw and you will be surprised :p
yours Dani
cualquiercosa327 at
Hello again. I have reading all webs you post.wow,they are VERY interesting. But maybe nintendo ds doesnt enough powerfull for polivox library.But it would be nice,using one cpu (or maybe two ) to convert in realtime voxels to geometry the ds gpu understand and it draw. and maybe after use a simplificate physics engine .(in my original idea i dont need it ,now i only am dreaming awake :p)
Your chat with worms engine programing is also very instructive. I would like coment some ideas about it here:
"Regenerating data over multiple frames is also something I have considered but haven't needed yet. I guess I have the advantage that I'm targeting a considereably more powerful machine."
I have the same (bigger problem than them),the plataform is very limited.
"What tools were the artists using for making the voxel models and applying the deformations? Presumably something developed in house? I was instead planning to have objects modeled in a standard package, placed into the world, and then voxelized.
Peeling Yes, I wrote an in-house editor. Your plan does have some drawbacks:
1. Voxelised polygonal models simply won't look like the originals. Even if you use prohibitively high voxel densities, the lighting won't look right because you've only ever got the 90/45 angles of voxel corners to work with.
2. You can't hope to animate models converted in this fashion. Even if you have multiple 'frames' of voxel animation you can't extrapolate damage incurred by one frame across the rest.
It's a lot more work, but creating a proper editor and supporting lattice deformation - including animated lattice deformation - will make it possible for your users to get the absolute most out of the engine. "
mmm.It is no many problem as i said up.There are several good editor (worms3d,voxel3d,splab6,..). I havent animate anything already,but i will investigate more.
bye
esuvs at
cualquiercosa327 said at
Hello again. I have reading all webs you post.wow,they are VERY interesting. But maybe nintendo ds doesnt enough powerfull for polivox library.But it would be nice,using one cpu (or maybe two ) to convert in realtime voxels to geometry the ds gpu understand and it draw. and maybe after use a simplificate physics engine .(in my original idea i dont need it ,now i only am dreaming awake :p)
Well, I don't really know how well my engine would port to the DS as I don't have any experience with that platform. There are two potential bottlenecks: Firstly, there is the question of whether the DS CPU is fast enough to run the marching cubes algorithm in real time. I have generally found the algorithm to be very fast so hopefully this is ok. Secondly, the marching cubes algorithm generates a lot of polygons (about 100,000 for my 256x256x256 volume). I would imagine the DS can only render a few thousand polygons, so the volume might need to be scaled down to say 128x128x128 or 64x64x64. But, given the smaller size of the DS screen, this may not matter.
Also, I probably wouldn't 'port' my engine as it makes a use of a lot a advanced C++ features such as templates and the STL. More likely I would rewrite it in C as this is usually more appropriate for consoles.
It could certainly be interesting - I can imagine using the DS stylus to carve up a volume could be fun. But I think you need to be a registered developer to create games for the DS? Do you meet that criteria? If you have funding I could definitely be interested :-D
cualquiercosa327 said at
Your chat with worms engine programing is also very instructive. I would like coment some ideas about it here:
"Regenerating data over multiple frames is also something I have considered but haven't needed yet. I guess I have the advantage that I'm targeting a considereably more powerful machine."
I have the same (bigger problem than them),the plataform is very limited.
Perhaps, but the only real way to find this out is by experimentation. But regenerating the scene over several frames shouldn't be a problem - you simply cover up the relevent area with an explosion animation while you are doing it.
cualquiercosa327 said at
1. Voxelised polygonal models simply won't look like the originals. Even if you use prohibitively high voxel densities, the lighting won't look right because you've only ever got the 90/45 angles of voxel corners to work with.
2. You can't hope to animate models converted in this fashion. Even if you have multiple 'frames' of voxel animation you can't extrapolate damage incurred by one frame across the rest.
I think his comments are valid for the platform he was developing for, but these days we can make use of hardware shaders which can improve lighting and (to some extent) animation. Of course, this probably doesn't apply to the DS.
But actually I do not really see the need to animate the world. In worms, parts of the world slowly sway and bob but of course this is not realistic. It's simply the 'cartoon' look which the designers wanted. The real world doesn't tend to do this.
cualquiercosa327 said at
mmm.It is no many problem as i said up.There are several good editor (worms3d,voxel3d,splab6,..).
Right, but I must say that internally my approach is much more similar to Ken's voxels than to Worm's poxels. It would be quite easy to convert VoxLap maps to my engine, but I am also looking at converting real 3D meshes from 3ds Max, for example.
Plagman at
Yeah, in reality you really don't want more than ~500 triangles per frame on the DS, so I'm not sure it makes sense to generate geometry from volume sets on that platform.
cualquiercosa327 at
Hi again. The Nintendo Ds has two cpu .you can run code in parallel in them.
ARM946E-S 67 Mhz ARM7TDMI 33 Mhz
and 4 MB ram (also there are expansion ram cards with 16 and/or 32 mb). The DS can render at most about 6144 vertexes per frame (which translates to roughly 2048 triangles per scene or 1536 quads), at 60 frames per second.(via gpu,it can also draw more vertex with arm procesors,i will explain later) and yes :" the smaller size of the DS screen, this may not matter."
Now the software poligons.The gba has not 3d gpu,but it was build several good demos and a few games with poligons.And it has only an arm7 ,but at 16,7 MHz.(1/2 than the arm 7 of ds )
As you see ,it can be used the arm9 for your algoritm and send the data to GPU .(also maybe sound,or other stuff) and arm7 for render more poligons or voxel (in similar way to voxlap or with heighmap)
3d hardware renders the 3d gfx to framebuffer (one of gfx layer).. you dont have access to it, but you can draw software polygons , but as different layer under/over the hardware one (thanks to tomasz for the info)
Also it can use some "tricks" for the lack of memory.(neods is a good example)
And no.you have not register programer (yes for selling it).Are a lot of homebrew for nintendo ds,since emulators and other good programs. the scene has advanced a lot and they are many librarys. Only install dev kit pro and the library you need.(they are sdl,ulib,mplib ,ndslib,box2d (for 2d physics),...) and also boost (http://patater.com/boostds ) but yes,i think it would better make it on c or asm ,for speed.
interesting demos for gameboy advance (for seing its power por 3d for software,with the same procesor and less mhz): http://www.gbadev.org/demos.php?showinfo=347 http://www.gbadev.org/demos.php?showinfo=263 http://www.gbadev.org/demos.php?showinfo=1281 --> the most impresionant
"I think his comments are valid for the platform he was developing for, but these days we can make use of hardware shaders which can improve lighting and (to some extent) animation. Of course, this probably doesn't apply to the DS."
I think not
"But actually I do not really see the need to animate the world. In worms, parts of the world slowly sway and bob but of course this is not realistic. It's simply the 'cartoon' look which the designers wanted. The real world doesn't tend to do this"
But maybe it would be interesting seing some word with animation.see this map : http://www.worms3d-portal.com/files/clipboard04_209.gif
it "asks" being in motion :p
"Right, but I must say that internally my approach is much more similar to Ken's voxels than to Worm's poxels. It would be quite easy to convert VoxLap maps to my engine, but I am also looking at converting real 3D meshes from 3ds Max, for example."
mmm.they are tools as poly2vox,but always is better create with a voxel editor. it would be easly load a worms map with your engine??
And yes.using the stilus is VERY FUNNY.I love this videoconsole.They are a lot of interesting games,different to all see .
esuvs at
The DS is indeed a very interesting console - I do have one but don't play so much any more. I should probably get some new games :-)
Based on what you have said, it may be possible to create a simplified version of my technology to run on the DS. However, I would need to do some experiments before really being able to confirm this. I don't really have time to do that though (unless someone is paying me - would be a cool job!).
However, remember the DS is 2-3 years old now and technology has moved on. You might be interested in OpenPandora:
http://www.openpandora.org
It is a DS-like system designed for hobbyist game programmers. However it runs Linux (so is easy to develop for) and they are making many tools available. I did hear somewhere that it is powerful enough to run Quake 3 :-)
As for your last question, Worms 'Poxels' and my 'PolyVox' are sufficiently different that you cannot just load one with the other. It would be possible to write a converter to convert worms maps into my format, but you would lose a lot along the way (animation, and textures are handled very differently).
cualquiercosa327 at
About ds,i must said i am very happy with it.I have a tablet pc also but it is not so funny. Are a lot of interesting games which exploit the most interesting freature of ds : touch screen. Games as doodle hex,soul bubbles,drawn to life (i create a mario as heroe),point black... And the ability of play other older games as gba,and emulators. Also it has some interesting expansion cards as motion (dsmotion pack/card ,wario ware twisted cartidge,yoshi tupsy),rumble,more ram...
I never had listen about openpandora,but it seems interesting ,but nowadays i prefer center on nintendo ds. nowadays thay are a lot of free tools to developer and they are very good,with a lot of libraries.
I have two question about your last coments. One is about your format ,i would like seing a pics of your map editor . I like how the w3d editor works and they are a lot of interesting maps created and maybe it would interesting make a loader (adding some new code to polyvox to be able working with this kind of map also ,no? ) Maybe the map editor creator could help us. The best would be able to using as many editor/format posible (xom,kv6,kvx,vox,k3a,...)
And about animation,i think worms3d maps has not animation,only items and worms (which are fully poligonals)
cualquiercosa327 at
Re: POXELS VideoGL
Hello,i was investigating about try your engine on ds,and i think it would be interesting try your opengl example.Soon i will have more free time to experiment (soon exams :( ) . ,but it seems very interesting. look: http://libnds.devkitpro.org/a00041.html
and
http://patater.com/boostds
Edited by cualquiercosa327 at
0xC0DE at
Re: POXELS
I was asked to reply and give my take/opinion on the NDS situation. So here it is :
getting a decent 3D voxel engine working for NDS is hard, but possible. Although the map size can't be too big (thanks to memory problems). Also don't expect high framerates. I can't really give more info on the NDS stuff, since I'm an official developer under NDA. However, I will say this; it's easier to do with the homebrew SDK. Because you can break and bend some rules that apply to official developers.
Poxels aren't going to work on the NDS at all.
cualquiercosa327 at
thanks hugo for your comments. in homebrew we could use the expansion card ,which let us an extra of 16 or 32 megas. It is used on ported of quake1 and 2.
Also could be possible mix software render voxel and "hardware render model" as polyvox,the only question is optimizate it for arm9 and arm7 cpus.
I would coment again this: As for your last question, Worms 'Poxels' and my 'PolyVox' are sufficiently different that you cannot just load one with the other. It would be possible to write a converter to convert worms maps into my format, but you would lose a lot along the way (animation, and textures are handled very differently)."
the worms3d poxel objett has not animation (almost i have seeing ,and also the worms3d map editor doesnt let us animate it.) and or the textures,it would also be transformed no??
Maybe two options:
1) a conversor of poxel to your engine and (and its textures)
2) maybe add/modificate new code to your engine to be able read and use poxel models but rendering with your engine, if the worms3d editor would help with some code it would not very difficult.(he is able to render it in his editor,although it is no so fast as game engine render,but maybe it could be improved with your code,no? ) making your render usiing its maps
0xC0DE at
Also could be possible mix software render voxel and "hardware render model" as polyvox,the only question is optimizate it for arm9 and arm7 cpus.
No, this is not possible. It's told multiple times before you can only render 2048 triangles at 60 FPS, or 4096 triangles at 30 FPS (if you would really want to, it might be fast enough for a tech demo).
Let's be really, really optimistic and say 1 voxel is ~ 2 triangles. then 4096 / 2 = 2048 voxels. That's a BIG limit.
just for example, to show it's not possbile : For a 64x64x64 cube that is rotate so that you can see 3 sides (which is pretty common) then you need 3x 64x64 = 12288 voxels. That's 6 time more triangles then we can render! Just imagine what would happen when you shoot at the cube and create holes, he triangle count will increase FAST.
Edited by Hugo Smits at
cualquiercosa327 at
Hello,i have understand than voxel would not be a nice idea for ds (a lot of work,and no so interesting results) but i would like comment the other idea. I also post it in worms3d .I think than esuvs's engine (polyvox) would be expanded to acept poxel format (and ken's formats ) ((i think maybe would be more difficult in voxlap,no??) and also the editor could be expanded.Many part of code is done. They are code to convert betwen vox and voxel3d models,and the author of wormseditor has the code to load and render poxels. why dont a mix of code/ideas??
users would have more tools to developer maps,items,... and with the free render (as voxlap and polyvox) also could create a nice demo/game.
I was asked to reply and give my take/opinion on the NDS situation. So here it is :
getting a decent 3D voxel engine working for NDS is hard, but possible. Although the map size can't be too big (thanks to memory problems). Also don't expect high framerates. I can't really give more info on the NDS stuff, since I'm an official developer under NDA. However, I will say this; it's easier to do with the homebrew SDK. Because you can break and bend some rules that apply to official developers.
Poxels aren't going to work on the NDS at all.
Thanks for the feedback - so you think voxels might be possible but poxels are too hard. So presumably you are advocating a raycasting approach to rendering? This could make sense - it may be easier to port Ken's VoxLap to the DS than my PolyVox tech.
cualquiercosa327 said at
thanks hugo for your comments. in homebrew we could use the expansion card ,which let us an extra of 16 or 32 megas. It is used on ported of quake1 and 2.
Could help, this should be enough for a 128x128x128 volume. Possibly more. But I'm more concerned about the rendering than the storage (I think!).
cualquiercosa327 said at
Also could be possible mix software render voxel and "hardware render model" as polyvox,the only question is optimizate it for arm9 and arm7 cpus.
I'm not sure it would gain much - I'd be more tempted to do it all with polygons or all with raycasting, rather than trying to mix them.
cualquiercosa327 said at
I would coment again this: As for your last question, Worms 'Poxels' and my 'PolyVox' are sufficiently different that you cannot just load one with the other. It would be possible to write a converter to convert worms maps into my format, but you would lose a lot along the way (animation, and textures are handled very differently)."
the worms3d poxel objett has not animation (almost i have seeing ,and also the worms3d map editor doesnt let us animate it.) and or the textures,it would also be transformed no??
Maybe two options:
1) a conversor of poxel to your engine and (and its textures)
2) maybe add/modificate new code to your engine to be able read and use poxel models but rendering with your engine, if the worms3d editor would help with some code it would not very difficult.(he is able to render it in his editor,although it is no so fast as game engine render,but maybe it could be improved with your code,no? ) making your render usiing its maps
A picture is worth a thousand words, so I will try to illustrate the main way in which Poxels and PolyVox differ. PolyVox uses a uniform grid of voxels. The voxels are all very small and they are all exactly the same size. A room might look something like this:
On the other hand, poxels are much larger and so give less detail. However, the individual voxels can be reshaped and resized so they are quite easy to work with. For example a tree might be built from just a few poxels/voxels like this:
You would be able to convert from poxels to PolyVox in the same way that you can convert from any mesh to PolyVox. You 'overlay' a 3D grid on the scene and check whether each point is inside or outside of any material. Going the other way (from PolyVox to Poxels) would be very hard.
So basically, a converter would be possible. But I believe it would actually be better to convert meshes from Blender or 3DS Max than to convert Poxels from the worms editor, as these are more powerful programs.
I should point out that the castle in my screenshots was converted from Blender.
cualquiercosa327 at
hello,excuse me for the delay.
yes,maybe is more easier raycasting than match cubes (the ds gpu is not very powerfull :( )
thanks,the answer about poxel/voxel is very interesting.
the author of worms editor is trying to convert models to 3ds (they are a tool for exporting the data (worms,... to 3ds)) but he is having problems:
" Maybe I will make xom export to 3DS. (if I will have time for it, it not hard)
It Very Hard Sad I have many problems for convert Poxel > 3DS model: 1. Poxel.Rot -> Model.Rotate (make Quaternion or Euler angles) 2. Poxel.Size -> Model.Scale (Resize all Vertex) 3. Poxel.Texture -> Model.Material (Make > 128000 Materials for Map )
I am tring to load v3a model on the ds,(the format is simply,it keps only the color ,and i am trying drawing with cubes. My first try is load all data "at hand" (yes,it is a bad solution) but i have some problems with v3a,it is easy,but i have problems because they are word.(i also tried use some ken's v3b2vox.c but it give me "segment violation ) )
Awesoken at
If you give me a link to a bad V3A file, I can probably fix the segment violation in V3B2VOX.
cualquiercosa327 at
thanks,the v2a file is ok,and your binary also.I have problems with the sources,i use part of your sources for getnum and getdata,but when i use it ,it compiles but give me errors.
here is part of my code to load the file:
http://rafb.net/p/JK5CrO77.html
(are a part copy twice,an error mine when post on the site)
and here a simple model i tried to load.
http://rafb.net/p/GANKBF61.html
my main idea is load the data in :
typedef struct { long red; long blue; long green; long alpha; } colors;
color matrix [x][y][x];
where i easily can access any position and color and after paint. //maybe they are easily ways.i though in lists,but i think this is easily
I also would like coment two things:
1) Is about slab6,it would be posible port it to ds? i think using touchscreen would be a nice way to paint. And addon as dsmotion could have making painting more interesting,moving cam with motion of console. the ds gpu is not enought for polyvox aproach,but i know they are almost a engine able to paint voxel of 256x256x256,i have no many more info because the game is propietary and the author can not give so many info,hope seing it in action :p
I have a very simple but interesting proyect for the windows version (when i finish it i will post it)
2) I have two voxel models,one is finish ( i did with voxel3d),and the other i have to add colour (i am trying with your slab6),i read on some info you always wanna more models,if you wanna i can send you.
Awesoken at
Both links result in "Not Found".
slab6 .. port it to ds?
Sure, but I think you'll have to reduce the voxel resolution to get acceptable frame rate and fit in its memory.
cualquiercosa327 at
hello. here are my files. the mezcla.c has comments in spanish,but only remember me where crash (where i use your functions) and i how i should compile it in linux because pow function.
in goomba.rar are the goomba.v3b (the simplier,the file i was trying to load) and the goombaFull (the finished version)
Quote slab6 .. port it to ds? Sure, but I think you'll have to reduce the voxel resolution to get acceptable frame rate and fit in its memory.
Thanks.It was only curiosity,i am not so good programer for it.
0xC0DE at
cualquiercosa327 said at
hello. here are my files. the mezcla.c has comments in spanish,but only remember me where crash (where i use your functions) and i how i should compile it in linux because pow function.
in goomba.rar are the goomba.v3b (the simplier,the file i was trying to load) and the goombaFull (the finished version)
Quote slab6 .. port it to ds? Sure, but I think you'll have to reduce the voxel resolution to get acceptable frame rate and fit in its memory.
Thanks.It was only curiosity,i am not so good programer for it.
WHY are you still trying this ? I told you over a 100 times you can't render that goomba. Because the max number of triangles you can pass to the GPU is 2048. A cube (which you want to use to render) has 12 triangles. 2048/12 = 170 cubes in total. The goomba model consists out of a 16x16x16 block. Even if you use very little voxels, let's say 1 full slice of 16x16(=256) you will get over the limit.
cualquiercosa327 at
hi hugo,i have explain bad.I tried to load on ds,you told me i couldnt because gpu limit. Ok,but i feel the curiosity of render the file on my linux pc,create a simple program to render with opengl.
(read this :"...sould compile it in linux because pow function....")
i had problems with the filedata ,as you know,(and i think it is a simple data format) and for it i wanna finish my try of load this model (i dont care if in pc or ds) ,i think this way i can learn something.
I also have read some parts of slab6 ,the function for rendering/drawing cubes,maybe it would be interesting tryed this after,when i finish my first try of drawing it with opengl(on pc gpu)
Awesoken at
After the fopen(), you must allocate newbuf (to match the file size), and fread() the entire contents of the file to it. It seems you missed that.
cualquiercosa327 at
thanks,i will try it this tomorrow
cualquiercosa327 at
hello,yes it was the error,it compiles and execute,but give me sizex,sizey,sizez =0 :( and it is suppoused give 10