Jump to content
3DCoat Forums

Adaptive surface voxels


Mix Mash
 Share

Recommended Posts

  • Member

Hi,

Could you possibly make two new options for voxels for when you import objects to merge.

The first option would allow you to create a voxel model based on the outer polygon surface rather than a bounding box volume. This way, tight seams can be captured in the translation to voxels.

The second option allows you to have "adaptive" coverage for your voxels and not a consistent volume so that there are more voxels in areas where there are more details. Last night I imported an object in 3d coat and the main part of the object came out nicely bit the fine detail was lost especially the ears and face of the character connected to the rest of the sculpture.

These options would make voxels more accurate and more appealing.

I would also love to make 'booleans' utilising voxels in 3d coat. Basically, you would import your object/s into 3d coat, the program would delete any 'hidden' polygons (IE unnecessary polygons), the intersecting polygons would be converted into voxels and then finally converted back into polygons again which should now be joined with the rest of the mesh. Oh and any extra 'hidden' polygons after the voxel conversion would be deleted, too.

I know it's alot to ask but I believe that it would make the program much better on the construction front.

Cheers,

Paul

(mix_mash)

Link to comment
Share on other sites

  • Advanced Member

Hi,

Could you possibly make two new options for voxels for when you import objects to merge.

The first option would allow you to create a voxel model based on the outer polygon surface rather than a bounding box volume. This way, tight seams can be captured in the translation to voxels.

The second option allows you to have "adaptive" coverage for your voxels and not a consistent volume so that there are more voxels in areas where there are more details. Last night I imported an object in 3d coat and the main part of the object came out nicely bit the fine detail was lost especially the ears and face of the character connected to the rest of the sculpture.

These options would make voxels more accurate and more appealing.

I would also love to make 'booleans' utilising voxels in 3d coat. Basically, you would import your object/s into 3d coat, the program would delete any 'hidden' polygons (IE unnecessary polygons), the intersecting polygons would be converted into voxels and then finally converted back into polygons again which should now be joined with the rest of the mesh. Oh and any extra 'hidden' polygons after the voxel conversion would be deleted, too.

I know it's alot to ask but I believe that it would make the program much better on the construction front.

Cheers,

Paul

(mix_mash)

You can subtract any imported object, simply hold down ctrl when "aplying" and the polygons will cut instead of add to the voxels.

also there's a function in the merge dialog called "Respect negative volumes" which is a pretty awesome feature. If you have some object, like a screw head or soemthing, you can have polygon objects that cut a margin around. so you could have the screw head cut away a part of the model, and then add in the screw so that there is a seam around the screw...

you simply have to name the object with "_negative" somewhere in the name, in the original 3D program (even 3D-Coat) before exporting to OBJ. the sub-object with that _negative in the name will cut away material.

"Cut through volumes" will cut the _negative through ALL child objects of the current object. watch out though - right now you have to "to global space" all the objects, or the cut will be offset/unexpected.

basically it looks like you probably can do what you are wanting, but need to explore the merge params dialog some more.

Link to comment
Share on other sites

  • Member

You can subtract any imported object, simply hold down ctrl when "aplying" and the polygons will cut instead of add to the voxels.

also there's a function in the merge dialog called "Respect negative volumes" which is a pretty awesome feature. If you have some object, like a screw head or soemthing, you can have polygon objects that cut a margin around. so you could have the screw head cut away a part of the model, and then add in the screw so that there is a seam around the screw...

you simply have to name the object with "_negative" somewhere in the name, in the original 3D program (even 3D-Coat) before exporting to OBJ. the sub-object with that _negative in the name will cut away material.

"Cut through volumes" will cut the _negative through ALL child objects of the current object. watch out though - right now you have to "to global space" all the objects, or the cut will be offset/unexpected.

basically it looks like you probably can do what you are wanting, but need to explore the merge params dialog some more.

Yes, but because voxels are distributed uniformly (or based on a uniform equation) there can be a loss of details. You may notice that any 'seams' that are in the original mesh come out duller instead of sharper when turned into a voxel object. By mixing an adaptive voxel approach with a preservation of original mesh parts, you would preserve the details. Plus, If I wanted to keep a majority of mesh polygons as they were for whatever reason I choose then it would be achievable.

I don't know if you have tried using a mesh of different densities (IE big details plus small details) and turned it into a voxel object but I can tell you that it does not cater to the smaller details. I would have to enlarge the mesh object to a ridiculous size that my ram (3 gig) could not handle just to get the finer details to look decent.

Paul

Link to comment
Share on other sites

  • Contributor

Yes, but because voxels are distributed uniformly (or based on a uniform equation) there can be a loss of details. You may notice that any 'seams' that are in the original mesh come out duller instead of sharper when turned into a voxel object. By mixing an adaptive voxel approach with a preservation of original mesh parts, you would preserve the details. Plus, If I wanted to keep a majority of mesh polygons as they were for whatever reason I choose then it would be achievable.

I don't know if you have tried using a mesh of different densities (IE big details plus small details) and turned it into a voxel object but I can tell you that it does not cater to the smaller details. I would have to enlarge the mesh object to a ridiculous size that my ram (3 gig) could not handle just to get the finer details to look decent.

Paul

Have you tried bringing your import into a volume with pre-increased resoluton?

Link to comment
Share on other sites

  • Advanced Member

Yes, but because voxels are distributed uniformly (or based on a uniform equation) there can be a loss of details. You may notice that any 'seams' that are in the original mesh come out duller instead of sharper when turned into a voxel object. By mixing an adaptive voxel approach with a preservation of original mesh parts, you would preserve the details. Plus, If I wanted to keep a majority of mesh polygons as they were for whatever reason I choose then it would be achievable.

I don't know if you have tried using a mesh of different densities (IE big details plus small details) and turned it into a voxel object but I can tell you that it does not cater to the smaller details. I would have to enlarge the mesh object to a ridiculous size that my ram (3 gig) could not handle just to get the finer details to look decent.

Paul

It is a limitation of voxel sculpting most likely.

One option you could try (as well as what was mentioned above), if you are trying to detail out an area and need the higher resolution for just that area...

1) Separate out using cut&clone

or hide + separate hidden,

2) Increase resolution on the voxel object needing more detail (e.g. face cut out from the head)

this method will give you the detail in the area you need,

and keep the lower res in the area you don't need.

3) Then retopo and keep both voxel objects visible, should be no problem.

I believe you can achieve some or a lot of what you're after with a good understanding of the voxel tool and it's limitations.

If Adaptive voxels come to pass - which I doubt would be any time soon, since it would be the equivalent of having a photoshop file with multiple dpi in different areas of the image - which does happen NOW, but only on separate layers with smart objects, that are a bit of a PITA, so... we'll see.

;)

good luck, and hopefully this method could help you achieve your creative goals!

PS) yes, there will be some gaps if you simply cut & clone, I think you'll need some overlap, but still - I think this is the only way if you're dead set on sculpting voxels, to have multiple resolutions within the same object...

Or perhaps someone else could suggest a better method?

Link to comment
Share on other sites

  • Member

/....../

1) Separate out using cut&clone

or hide + separate hidden,

2) Increase resolution on the voxel object needing more detail (e.g. face cut out from the head)

this method will give you the detail in the area you need,

and keep the lower res in the area you don't need.

/...../

PS) yes, there will be some gaps if you simply cut & clone, I think you'll need some overlap, but still - I think this is the only way if you're dead set on sculpting voxels, to have multiple resolutions within the same object...

Or perhaps someone else could suggest a better method?

that's a manageable solution but I find it comes with some severe workflow feedback issues. Main thing is that you need to keep switching layers if you wish to change anything afterwards, which is quite painful if you need multiple levels of detail in relatively small area. Another obvious one is the glaring and distracting seam that comes with it. It can be mitigated a little with the copy tool but it's quite annoying to deal with.

I do have a suggestion though.

there's a tool in Zbrush that allows painting over separate meshes and blend them together. It works by modulating strength by distance (if memory serves me right) so surfaces end up blending together. Though the concept is great the implementation is so horrid that no one even knows about it.

How I would vision this to work in 3dc is by linking voxel objects together, quite like you link layers in photoshop. When in this mode, brush strokes would affect multiple objects at the same time, applying similar modulation so their surfaces stick together. It probably wouldn't work in voxel mode that well, but I suspect it would be great in surface mode.

Adaptive voxel/mesh density would probably be much more elegant, but I think this kind of hack would be order or magnitude easier to implement.

Link to comment
Share on other sites

  • Advanced Member

that's a manageable solution but I find it comes with some severe workflow feedback issues. Main thing is that you need to keep switching layers if you wish to change anything afterwards, which is quite painful if you need multiple levels of detail in relatively small area. Another obvious one is the glaring and distracting seam that comes with it. It can be mitigated a little with the copy tool but it's quite annoying to deal with.

I do have a suggestion though.

there's a tool in Zbrush that allows painting over separate meshes and blend them together. It works by modulating strength by distance (if memory serves me right) so surfaces end up blending together. Though the concept is great the implementation is so horrid that no one even knows about it.

How I would vision this to work in 3dc is by linking voxel objects together, quite like you link layers in photoshop. When in this mode, brush strokes would affect multiple objects at the same time, applying similar modulation so their surfaces stick together. It probably wouldn't work in voxel mode that well, but I suspect it would be great in surface mode.

Adaptive voxel/mesh density would probably be much more elegant, but I think this kind of hack would be order or magnitude easier to implement.

yup - adaptive voxel mesh density might, in theory be more elegant... as long as it speeds things up! :)

as I understand it, tesselating a voxel grid through the 0.5 iso surface is REALLY REALLY fast and efficient... an adaptive grid, I think, might make it cumbersome.... but maybe not?

Are there any papers out there discussing this adaptive voxels?

In fact it'd be great to have for 2D painting as well... dynamic resolution images. for 2D images, using Quadtree structure, for 3D we have Octree.... could be neat.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...