Jump to content
3DCoat Forums

Export questions and ideas


Andrew Shpagin
 Share

Recommended Posts

Voxel Export & Retopologization

Am I right in assuming that the proper, (current), workflow for merging a voxel sculpture into the regular module of 3D-Coat, for detailing and texturing, should be as follows:

After merging, create a retopolgized mesh.

Merge that mesh into the scene

Create new UV mappings for this retopologized mesh

Uwrap

Start painting and detailing

Is this the right set of steps, given the current, (October 6, 2008) state of development?

Thanks,

Psmith

Link to comment
Share on other sites

  • 2 months later...
  • Member

Export to Renderman Brickmap

I don`t know if you are familiar with this format, but its a similar data structure to that one you use.

Basically Brickmaps are octrees with an automatic LOD. You can convert any shape into this octree including material, texture, normal and PRman can render this format directly.

Cool thing is, you can even deform them at render time with displacement shaders. A nice usage would be the tree from your examples, gently moving in the wind.

The API for reading and writing those Brickmaps is included in PRman SDK.

In fact, in our company, we are considering using Brickmaps as texture replacements, so that there is no need to unwrap any more.

If your tool can do this, it will have a huge impact on today's modeling/sculpting - texturing workflow.

Cheers, searching for the Pivot of my Soul, PP !!!

Link to comment
Share on other sites

  • Advanced Member

At worst the brick map method should be looked into, and if not hard to implement, added- as the use of larger studios and those using renderman compliant render engines would be a HUGE publicity gain for 3DC IMHO.

Besides...it would give me another excuse to get 3Delight!

Link to comment
Share on other sites

  • Advanced Member

On a totally off the top of my head, pie in the sky idea...

What if the user could enact a mode called "base sculpt" where, as they formed the Macro parts of the new model 3DC remembered the direction they "brushed" and used that as the U or V coordinates.

So say you're making a cow. Start in Macro mode, make the "main" parts in a basic sense- Head, torso area, legs, tail, ears, and horns. Anything that will later be detailed.

Then enter detailed mode- there you'd add say the eyes, a fur like texture, hoofs, etc. 3DC is no longer taking into account your strokes for the base mesh- these are details that will only show up used as displacement, normal maps etc. in the future.

You finish your cow model. When you go to re-toplologize the model half of your work is already done- as while you were working in base model mode 3DC was able to create base parts based on your base strokes. Now all you need to do is stitch them together and add more detail to the base mesh where needed.

Base parts can also be assigned a default UV unwrapping as well- either in U or V, with a user assigned point(s) in world space from which rays are cast to choose the nearest U or V edge to act as the UV seam. On our cow, maybe one point at the ground level between each set of legs would be best. Select V as the direction, based on the base mesh stroke directions, and we have a fairly good start to UVs. (Just REALLY dreaming here- not sure if it's wouldn't just be faster to do it the tried and true way either)

Next- you can divide the new base mesh a few times, and using a shrink wrap brush, move the base mesh points in or out towards the slightly more detailed areas (like the hoofs and inside of ears etc.).

You should be left with a fairly good model for export with a nice mesh flow that needs little if any correction.

Maybe there's a small glimmer of a good idea in there somewhere...

Link to comment
Share on other sites

  • Member
Export is not trivial thing in VS because raw mesh is not always useful. So if you have ideas please write there.

Anyone with a volumetric rendering software like a voxel raymarcher or raytracer could render the voxels directly, provided they have access to your voxel data format. They can convert the data themselves if the spec is documented. Likewise, they could import their data into 3D Coat for editing.

- Chad

Link to comment
Share on other sites

  • Member

If you were to store not just the density value in the voxel, but stored the density as well as an X, Y, Z vector in each voxel, and you initialized the X, Y, and Z values by the INITIAL location of the voxel, could you not record the local per-voxel vectors of the sculpting tools? So a pinch or a smear would add the vector value to the voxels so that they recorded the changes to the voxel array?

It wouldn't be perfect, especially if it is only 16 bit, but it might be enough for some modest modifications of a mesh or voxel dataset. The advantage of course is that when you are done, you export not the mesh, but the 3D vector field representing the transformation. This could then be applied to deform the original mesh. No need to re-topologize!

The other advantage is that it can be applied to ANY mesh, so you could deform all of the morph targets, or you could do a volumetric sculpt on one mesh, and when someone says "Oh wait, I made a few changes to the model I sent you, here's a new version" you can just apply the transformations to the new mesh.

This would also work for voxel data, including paint. So you record XYZ (ternary) but can apply that to dozens of channels, like opacity, diffuse color, specular color, shinyiness, bump, self illumination, diffuse level, etc. You could save a lot of memory by only sculpting the XYZ and reusing that on multiple, higher frequency, more complex maps.

- Chad

Link to comment
Share on other sites

  • 3 years later...

Export to Renderman Brickmap

I don`t know if you are familiar with this format, but its a similar data structure to that one you use.

Basically Brickmaps are octrees with an automatic LOD. You can convert any shape into this octree including material, texture, normal and PRman can render this format directly.

Cool thing is, you can even deform them at render time with displacement shaders. A nice usage would be the tree from your examples, gently moving in the wind.

The API for reading and writing those Brickmaps is included in PRman SDK.

In fact, in our company, we are considering using Brickmaps as texture replacements, so that there is no need to unwrap any more.

If your tool can do this, it will have a huge impact on today's modeling/sculpting - texturing workflow.

+1

Nice readings:

Brick Map Fundamentals

http://worldofpolygons.com/Help/Renderman/Fundamentals/Brickmap_Fundamentals.html

Baking 3D Textures: Point Clouds and Brick Maps

http://facultypages.scad.edu/~mkesson/AppNotes/baking3d.html

The Brick Map File API

http://penguin.ewu.edu/RenderMan/RMS_2.0/bkmapApi.html

----------------------------

Brick maps are multi-resolution, 3d textures.

They are used to store channels of surface-varying data (color, occlusion, subsurface scattering, etc) in a sparse voxel structure that looks like a collection of bricks.

Brick maps have a number of increasingly-refined levels of detail.

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...