Jump to content


Notice about Feature Requests & Bug Reports

The bug reporting and feature request forums (except for the Urgent Help section) are going away soon! Please use Mantis to report any bugs and feature requests. the link to Mantis is:
3d-coat.com/mantis/

Read more about it HERE.

Photo

Painting color over voxels


  • Please log in to reply
60 replies to this topic

#41 Andrew Shpagin

Andrew Shpagin

    3DC creator & admin

  • 3D-Coat Developer
  • PipPipPipPipPipPip
  • 6,608 posts

  • Gender:Male

Posted 23 November 2008 - 06:34 PM

Yeah, i'm just reading it now..its like Zbrush polypaint but it also stores color value for edges and faces, I hope Andrew implement this into 3.0. <_<

Yes, direct painting will be in 3.0.

There are several; approaches of painting:

1) Per vertex painting -ZBrish,3D-Coat
2) Projection painting - Body Paint, ZB, PS CS4. But Painting resolution is dependent on object size in screen space. It is not good.
3) Direct painting - every pixel in UV has some position in space. You are painting directly over UV placed in space. It gives the best quality. But problems - it is easy to project texture on object but difficult to smooth, smudge, clone. Mayebe Mudbox has direct painting but in very basic stage (texture projection, it is most easy task). But 3DC will offer full set of tools for direct painting - texture projection, clone, transform, smudge.

#42 NinjaTaco

NinjaTaco

    Novice

  • Member
  • PipPip
  • 115 posts

Posted 24 November 2008 - 04:56 PM

Yes, direct painting will be in 3.0.

There are several; approaches of painting:

1) Per vertex painting -ZBrish,3D-Coat
2) Projection painting - Body Paint, ZB, PS CS4. But Painting resolution is dependent on object size in screen space. It is not good.
3) Direct painting - every pixel in UV has some position in space. You are painting directly over UV placed in space. It gives the best quality. But problems - it is easy to project texture on object but difficult to smooth, smudge, clone. Mayebe Mudbox has direct painting but in very basic stage (texture projection, it is most easy task). But 3DC will offer full set of tools for direct painting - texture projection, clone, transform, smudge.



I'm really impressed with the progress you have been making. You have an amazing work ethic. You have the set the bar really high. I appreciate your hard work, it is inspiring. You are surely blessed.

#43 ChadCapeland

ChadCapeland

    Newbie

  • Member
  • 17 posts

Posted 18 December 2008 - 11:57 PM

2) Paint over voxels in volume. Not easy to implement because:
- exery voxel takes 2 bytes now (16 bit precission). Color is 3 or even 4 bytes more. Much more memory consumption, less speed because I need to preserve color (3 additional channels) during all operration. + layers... uff

So if you have any idea, please share it there.


Sorry for jumping in late on this...

You don't HAVE to have 3 additional channels, nor do they have to be 16 bit. You could have the user specify how many channels and at what depth they are needed. Adding an 8 bit scalar to the existing voxel structure would add only 50% more memory usage. Even if you locked the depths down, adding a single scalar at 16 bit would only double the memory size. The speed hit would be less, since you aren't reconstructing the isosurface using the other channel. Also, the operation is identical on the second scalar, so it's just moving another channel of data through the same instructions, which should be very efficient.

Regarding memory, CUDA hardware currently runs up to 4GB in size in the Tesla range, and the GeForce line will soon be at 1.7GB. As applications for CUDA grow, I'm sure NVidia would love to sell you hardware with even more memory, so I don't think it is an impossible problem.

- Chad

#44 GED

GED

    Novice

  • Member
  • PipPip
  • 378 posts
  • Location:UK

Posted 19 December 2008 - 12:04 PM

this is very interesting. I would like to hear from artists what they would want to use this for? what kinds of projects would benefit from painting voxels? would you bake the voxel painting to a lower poly mesh?

personally I intend to build a retopologised mesh over my voxel model and then bake normal and AO from it. Then my mesh will probably be less than 10 000 polys and possibly have 3 2048x2048 maps. At this stage I would like to use 3D coat to paint my model with the diffuse colour or specular or fix seams. Maybe most computers memory could handle 3 additional channels at 16bit if you are just painting a 10000 poly mesh with 3 maps? just wondering.

#45 buqa

buqa

    Neophyte

  • Member
  • Pip
  • 40 posts
  • Gender:Male
  • Location:Brno - Czech Rep

Posted 19 December 2008 - 01:27 PM

what kinds of projects would benefit from painting voxels? would you bake the voxel painting to a lower poly mesh?

Technicaly, every project would benefit from voxel painting. It is next step in "artistic free" computer modeling. With voxel modeling, there is no need to bother with good topology, polygon stretching, polyloops, quads etc. But when you want to paint texture, all these old annoying problems are here again.
Of course, its not problem for game creation pipeline, bacause there still has to be a step where you transform your model into (few) polygons (even Larrabee can't render voxels, it still renders triangles) and it is not important whether it will be before painting texture or after that.
But now, evereyone in pipeline (maybe except of concept artist) has to understand the topology etc. In voxel pipeline you have to have only one person (or few) in company who can create good meshes and others can be just artists.

But as I said, I think that hardware nowadays isn't prepare for full voxel painting. Yes, some of us have dual-quad WS with 16GB of RAM a two or more Quadros (or Tesla at its best) and these people can take real advantage of fluent a ultra-detailed voxel painting.
But how many users of 3DC have HW like this? How many would have similar HW in 2009? And is it realy advantage for all the others?

So if I could vote in a poll, I would vote for voxel modeling and direct texture painting (thats what Im waiting for before buying 3dc) in 3dc 3.0 somewhere in Q1 or Q2 2009 and full voxel painting in some upcoming release in 2010 or 2011 when majority of 3dc users will have HW for that.

#46 ChadCapeland

ChadCapeland

    Newbie

  • Member
  • 17 posts

Posted 19 December 2008 - 10:36 PM

this is very interesting. I would like to hear from artists what they would want to use this for? what kinds of projects would benefit from painting voxels? would you bake the voxel painting to a lower poly mesh?


Two things come to mind right away.

1) You could use real 3D maps. Either explicit OR procedural data could be stored in the voxels and deformed with the voxels. So you could have a 3D skin texture that gets deformed correctly as you sculpt. It wouldn't have to be RGB data, either.

2) You could extrapolate 3D maps from 2D maps. The imported mesh could transfer it's textures, either from UV maps or from per TV colors to a voxel array. That way you could modify an already textured model and preserve the original colors and UV's.

The reason you feel like you are sculpting in wax, clay, bronze, etc is a limitation, not a design intent. If you could model a human face and feel like you were working with a real live ACTOR and not a plaster MAQUETTE, wouldn't that be better?

- Chad

#47 2byts

2byts

    Newbie

  • Member
  • 16 posts

Posted 21 December 2008 - 01:43 AM

What does sound of use as Frankie pointed out, is using it for masking and such. Very wicked tools that would not require a lot of RAM to implement.


But for actual texturing, its of little use -namely because the artist will want to use a 2d paint program in juxtaposition, and also, whatever solution you choose, if the artifacting and filtering degrades the texturing process - it is of little value.

That is one thing that really shines with projection painting in Mudbox....there is very little quality loss.

#48 ChadCapeland

ChadCapeland

    Newbie

  • Member
  • 17 posts

Posted 24 December 2008 - 06:57 PM

What does sound of use as Frankie pointed out, is using it for masking and such. Very wicked tools that would not require a lot of RAM to implement.


The way Claytools does masking, it's basically an on-or-off thing for masking. If you could implement segmentation of the voxels based on a scalar value, then you could assign properties to the voxels.

So you could have a segment of "skin" and a segment of "bone". The bone voxels would be very stiff, while the skin ones would be stretchy and flexible. So you could push the skin into the bone, but the bone wouldn't move. Or you could push the top of the bone with enough force, and it would move the ENTIRE bone, not just the point where you touched it. With an 8 bit scalar, you could define 256 unique "materials" for your object.

And when you converted the voxels to an isosurface mesh, the texture vertices could have the nearest segmentation scalar assigned to them in a segmentation channel so you would get automatic masking, so you would have a mask for "hair", "skin", "eyeball", "shirt", "scar tissue", "teeth", etc. Would make painting textures much easier then.

Also, you could choose to extract a mesh of JUST the "shirt" channel or whatever, so you could get multiple meshes out of your main voxel object.

- Chad

#49 Frankie

Frankie

    Novice

  • Member
  • PipPip
  • 169 posts

Posted 30 December 2008 - 11:07 AM

The way Claytools does masking, it's basically an on-or-off thing for masking. If you could implement segmentation of the voxels based on a scalar value, then you could assign properties to the voxels.


Actually, Claytools uses a 8 bit scalar for masking, and that allows for smooth grandient masking and transforming.

Data painting as you suggest might just be yet another step further. Much like Maya's blind data editor, where you can paint any type of data (boolean, scalar, vector, even strings) at vertex/face level. This would be usefull in combination with a scripting language associated with the brushes (custom brushes), or at the shader level (for special rendering based on those data, skinning, procedural stuff or whatever). Those should also be transferable (baked) to maps or verts (of low poly mesh).

However I agree with previous posts that we need UV painting first for V3. Then I hope Andrew will have a go on voxel masking/painting and maybe at some point generalised data painting.

Franck.

#50 3DArtist

3DArtist

    Apprentice

  • Member
  • PipPipPip
  • 773 posts
  • Gender:Male
  • Location:USA

Posted 15 December 2009 - 07:10 PM

Out of curiosity, since there is now a voxel-surface workflow, does this open the door (a little bit maybe) for some kind of vertex painting?
The vertex color can be multiplied with the current shader for the output that can be baked.
Also, VC could be used for freezing states too.

Intel Core i7-3770K
16GB RAM
GeForce GTX 570 2.5GB
Windows 7 Pro 64bit

web: gregcopin.com


#51 splodge

splodge

    Apprentice

  • Member
  • PipPipPip
  • 506 posts

Posted 15 December 2009 - 10:16 PM

I've no desire to paint on voxels. By the time I've reached an 8x resolution and start sculpting in the details then I'm quite eager to get away from a high res model because of the poor frame rate. So it's really nice to be able to convert to a low poly model with all details baked in and start pixel painting at 100+ fps...

The pixel painting is one 3D Coat's (and Mudbox's) main advantages over ZBrush.

#52 3DArtist

3DArtist

    Apprentice

  • Member
  • PipPipPip
  • 773 posts
  • Gender:Male
  • Location:USA

Posted 15 December 2009 - 11:55 PM

I see your point and totally agree.

Personally I see it being useful at the stage where major changes to the sculpt probably will not be made and a little color could help the finalizing stage of the sculpt before baking it. And when it is baked, you already have a base color to start painting on.
And this may not be usable\practical for hi-poly objects.

I don't see this as replacing or diminishing pixel painting at all, just a color base to help start the process.

Anyway, just some thoughts.

Intel Core i7-3770K
16GB RAM
GeForce GTX 570 2.5GB
Windows 7 Pro 64bit

web: gregcopin.com


#53 Cube

Cube

    Neophyte

  • Member
  • Pip
  • 54 posts

Posted 28 February 2010 - 12:31 PM

Sorry to reply to an old thread but this topic is something i am very interested in. Firstly let me say i am not a professional, i am new to modeling but even with my limited experience i already think voxels are truly amazing! If you would definately plan to add this feature i would buy the program today (i already am 99% sold, but i still have some time left on trial to decide).

In my opinion, coloring of voxels should be done directly on the voxel volume, the extra memory footprint does not concern me and i agree with others who have said that memory only gets larger and cheaper each year. Also i would like to see a new render mode in the Voxel Room which shows the actual volume you are sculpting/painting - IE small cubes for each voxel, even if this is significantly slower than using a polygon 'skin' i think it would be extremely useful (especially for painting).

I have read in several articles that John Carmack (iD Software) is already planning to use voxel volumes for environment and static models in the next game engine iD Tech 6, so i think voxels will actually find a direct application in realtime rendering sooner than we might think. 3D-Coat is already so far ahead in terms of voxel modeling and this feature will only increase the advantage.

Here is an interview with John Carmack talking about voxels: http://www.pcper.com...cle.php?aid=532

And here is a video of early an tech demonstration from an iD employee:

This voxel painting feature is my #1 request - please make it happen!

PS. I hope i don't sound rude or arrogant, i don't mean it this way, i'm just really excited about this possibility!

#54 spacepainter

spacepainter

    Apprentice

  • Member
  • PipPipPip
  • 645 posts
  • Gender:Male

Posted 28 February 2010 - 04:05 PM

I agree that there is no reason to feel limited by reasons of previous linear workflows. painting and sculpting intuitively at the same time as it were is a dream.
Artis Natura Magistra

#55 3DArtist

3DArtist

    Apprentice

  • Member
  • PipPipPip
  • 773 posts
  • Gender:Male
  • Location:USA

Posted 28 February 2010 - 05:27 PM

Maybe this will be a part of the new multi-res sculpting.

Intel Core i7-3770K
16GB RAM
GeForce GTX 570 2.5GB
Windows 7 Pro 64bit

web: gregcopin.com


#56 philnolan3d

philnolan3d

    Master

  • Moderator
  • PipPipPipPipPipPip
  • 6,433 posts

  • Gender:Male
  • Location:Philadelphia, PA, USA
  • Interests:3D, martial arts, anime, gaming, contact juggling

Posted 28 February 2010 - 07:10 PM

Using voxels for environments and static meshes is what Andrew did before making 3D Coat (or 3D Brush), so that's really nothing new. As for the multi-res I don't think so seeing as Andrew said it was coming to the Surface mode, meaning it's polygon based. Of course I could be totally wrong.
Phil Nolan
Generalist
www.philnolan3d.com - Twitter - Google+
Desktop: Win8.1 Pro x64, Core i7 3.4 GHz, GeForce GT 640, 16GB RAM
Laptop: Vista Home Prem x86, Core 2 Duo, 1.5 GHz, GeForce 8600M GS, 2GB RAM

#57 Cube

Cube

    Neophyte

  • Member
  • Pip
  • 54 posts

Posted 28 February 2010 - 07:38 PM

Using voxels for environments and static meshes is what Andrew did before making 3D Coat (or 3D Brush), so that's really nothing new.


Oh yes i know many companies have used voxels back in the early 90's even - i'm not suggesting Carmack invented their use in games. But what he is talking about are voxel objects of close to the same density (maybe even higher?) possible in 3D-Coat being rendered real time in a game engine for first person shooters etc.. That has certainly never been done before. He already implemented fully virtualized textures in ID tech 5, you can have 8k textures for all your character faces if you wanted and 128000x128000 textures for terrain with no performance hit or texture management concerns. Next step is voxels, and i can't wait to see what happens. Tim Sweeney from Epic Games is also talking about voxels and other volumetric options for the next gen consoles.

Who knows maybe this stuff won't pan out in time for the next gen consoles, but if it does 3D-Coat could be in for a massive amount of new business if they have comprehensive voxel modeling tools all ready to go and well optimized.

Some early info on ID tech 6:

"id Tech 6 will use a more advanced technique that builds upon the MegaTexture idea and virtualizes both the geometry and the textures to obtain unique geometry down to the equivalent of the texel: the Sparse Voxel Octree (SVO). It works by raycasting the geometry represented by voxels (instead of triangles) stored in an octree. The goal being to be able to stream parts of the octree into video memory, going further down along the tree for nearby objects to give them more details, and to use higher level, larger voxels for further objects, which give an automatic level of detail (LOD) system for both geometry and textures at the same time. The geometric detail that can be obtained using this method is nearly infinite, which removes the need for faking 3-dimensional details with techniques such as normal mapping. Despite that most Voxel rendering tests use very large amounts of memory (up to several Gb), Jon Olick of id Software claimed it's able to compress such SVO to 1.15 bits per voxel of position data."

#58 ifxs

ifxs

    Novice

  • Member
  • PipPip
  • 387 posts

Posted 01 March 2010 - 05:57 PM

did someone say multires for voxels ? :-) please oh please let the multires addition come SOON to 3DC!
I cant believe how fun sculpting is again for me now that I use 3DC for each project that accommodates it(thankfully). Thanks Andrew, cant wait to see whats next

P.S. direct painting on voxels would be useful, but not very high on my wish list for 3DC, just my workflow/opinoin.
8x cores XEON
16+gig RAM
OSX / Linux / (and reluctantly sometimes Windows)

#59 Frankie

Frankie

    Novice

  • Member
  • PipPip
  • 169 posts

Posted 04 March 2010 - 05:33 PM

'Multires' in the case of iD tech 6 is an offline process more like mip mapping in 3d for the purpose of lod. Doing multires voxel sculpting is still an unsolved problem at this point afaik.

BTW can we have an export voxel object as a 3d texture (.dds) feature please. I'd like to use 3dcoat to produce some static clouds in voxel and raycast a 3d texture in cg.

Franck.

#60 Cube

Cube

    Neophyte

  • Member
  • Pip
  • 54 posts

Posted 04 March 2010 - 06:07 PM

'Multires' in the case of iD tech 6 is an offline process more like mip mapping in 3d for the purpose of lod. Doing multires voxel sculpting is still an unsolved problem at this point afaik.

Yep as i understand it SVO is some kind of 'nested' compression format for voxel volumes. They can't be deformed (like for destructable environments in games) so i assume they can't be sculpted either atm. We would just be taking models created in 3D-Coat (or another voxel modeling app) and converting them to SVO for use in the game engine.

This is a very interesting engine i found also: http://atomontage.com/?id=home

It uses some kind of multi-res voxel volume for the terrain that's not using SVO, and it supports real-time destruction/deformation of the voxels. I'm not sure if it takes a cluster of voxles, averages their color and shape information and then fuses/removes them as you step down the LOD, or whether the LOD is all precomputed.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users