Jump to content
3DCoat Forums

3d Coat on Linux Rocks!!! ......


Marc Wakefield
 Share

Recommended Posts

  • Advanced Member

It is way too late/early in the morning and I should be in bed but I just had to let all of you windows XP 32 users know about a beautiful 3D Coating experience I just had! :yahoo:

I installed Linux Ubuntu 64 through Windows using Wubi (which was really easy btw and allows me to boot into both os) and downloaded 3D Coat to take it for a spin.

I freaking loved it!

I was able to get 80 million + tri's in voxel mode (one more level of subdivision than I can usually get away with) while still being able to produce fantastically fluid strokes and achieve detail I have never been able to on Windows XP.

I was able to use my full 4 gb of ram (which Windows XP can't see) and this enabled me to edit a few of my windows 3b files and take em up a notch!

The whole experience just felt a lot smoother and more like pen on paper or clay on fingers if you get my drift and I recommend anyone with Windows XP 32 or another 32 bit os give it a whirl.

Interestingly, the voxel to surface to voxel was still a bit slow to convert when I tested it but the extra speed and power in voxel mode sort of made up for it.

The controls are pretty much all the same except for the alt key being different. Ubuntu also has lovely floppy windows that wobble when you drag them!

Can I use my serial on both Operating systems? I really think Linux is a keeper!

They are both on the same laptop so I could only use one at a time anyway.

Link to comment
Share on other sites

  • Advanced Member

most of my production voxel sculpts are over 20million EASILY! without that type of poly count in the vox room, you might as well just go use ZB/MB/Sculptris(which is free and imports OBJ's!) IMO.

And really, I end up pushing it well past 25+30 million for the detail I would need from my sculpt. If the paint room was a bit more optimized, I could use microvert painting/displacement for much of this work, HOWEVER that breaks up the voxel workflow, and makes me just want to go back to ZB anyhow if I want to do proper high-detail on a sculpt, and I know I'm not alone on this for any users of ZB/MB likely know what I'm talking about.

Although, multires for the vox room is likely to change this(i hope). Cant wait till Andrew releases it.

For now I'm diving into Sculptris, as Alpha 3 was just released with tablet pressure support, and its free(for now). I can export a quadrangulated voxel mesh as an OBJ from the vox room into sculptris and go wild with only the necessary polys being added to my mesh...FINALLY!!!

Link to comment
Share on other sites

  • Member

i've never actually seen a video or screenshot of these really high numbers people keep talking about

I managed to get 30m today experimenting with the surface tools, but it was completely impractical. I am getting 1-2fps at this resolution even using a medium brush diameter, maybe an Nvidia card with CUDA could make some difference until OpenCL is supported.

post-2502-12673300807898_thumb.png

Link to comment
Share on other sites

  • Advanced Member

Yeah, I can easily handle 25 or 30, but Marc said 80+. Big difference.

Yep, I think we all have a different idea of what we consider acceptable performance. So unless we can post numbers (frame rates etc) then it's pointless getting excited about somebodies "Wow! This is awesome!" 8)

Link to comment
Share on other sites

  • Member

Yeah sorry i know Marc said 80, i was just responding to Kay because i wasn't sure whether they were commenting on the 20+ numbers or the super high resolutions.

I think you make a good point splodge, here is my system spec:

Intel Core2Duo E6750 2.66ghz

4GB DDR2 RAM

ATI Radeon HD 4850 512MB

Windows 7 64Bit Home Premium

3D-Coat DX64

~30m is impractical. FPS = 1-2 for medium sized brush strokes, ~5fps when rotating the model.

~20m is better. FPS = 5-10 for a medium brush size, 10-15fps when rotating.

~16m is optimal. FPS = 20+ for medium brush, 30+ when rotating.

Link to comment
Share on other sites

  • Member

Those are still pretty high numbers. I really can't get past around 3 million without it slowing down too much to really work with.

My specs are:

intel quad 2.4

Win 7 home 64-bit

4GB DDR2

GTX 8800

Phil seems to only have 2 gigs of RAM on me, but can push 20mil, that's weird. Any optimizations I can do?

Link to comment
Share on other sites

  • Advanced Member

hmmm...I haven't tried anything really big with voxels in awhile, but for me, subdividing the default

middle-sized sphere 3 times (bringing it up to around a million) and using x-symmetry with the 'move'

tool will bring 3DC to it knees in terms of time to process. We're talking about 4-6 minutes to process

the 'move' before 3DC gives me control back to do other operations. A definite workflow killer. :(

My machine isn't super-beefy, but I wouldn't expect this kind of wait for a 1mil triangle object manipulation.

*edit* forgot to add, this is with the latest release 3.2.04CUDA 64-bit DX

*edit 2* Doh...bad math for me...the object that takes awhile to process is actually 11 million :pardon:

still....4-6 minutes seems a long wait, but speaks to doing all of your form edits at a lower level.

*edit 3* Yikes...16 minutes to switch back from surface mode to

voxels, and another 51 minutes for it to do it's final merge. I can't

see that as being justifiable in any sort of production environment. :(

post-475-12673946724269_thumb.jpg

Link to comment
Share on other sites

Phil seems to only have 2 gigs of RAM on me, but can push 20mil, that's weird. Any optimizations I can do?

You're looking at my laptop specs. Normally when I post I'm talking about my desktop (right above in my sig) which has 6GB of ram. An extra 2GB of ram and you've got almost the same setup as me.

Link to comment
Share on other sites

  • Member

You're looking at my laptop specs. Normally when I post I'm talking about my desktop (right above in my sig) which has 6GB of ram. An extra 2GB of ram and you've got almost the same setup as me.

So you think the RAM is my bottleneck? I figure I could get at least 10 million and it still work if guys on here with similar setups can push 20. Who knows, could be my card too. I'm building a new system in a few months so I'll probably just have to wait for the performance gains then.

Link to comment
Share on other sites

  • Member

Not sure, are you using Cuda?

yeah using the CUDA 64 version. I can still work pretty good at around 15 mill in surface mode with smaller brushes, but I still have to wait for the merging to happen every time I hit enter. I usually do detailing elsewhere or in the paintroom so pushing 80 million triangles isn't that big of a deal. Makes me anxious to build a new machine though, just to see how far I can push it. =)

Link to comment
Share on other sites

  • Advanced Member

From reading in this thread, its comforting to see that my experience is not an isolated case of having 3DC grind to a halt(frame rate wise) when using upwards of 20million polys, and likely jsut freeze at some point. Therein lies the problem, as I need a minimum of 30-35 million to get just SOME of the details into MANY of my sculpts that I really need, the microvert painting is just toooooo slowww at the res I need with the number of 4x/8x textures needed to achieve the detail I need, to use it for many of my final sculpts(even with PTEX), P.S. PTEX Rocks and may soon cure this WHEN OTHER APPS SUPPORT IT, for now it's not the biggest of helps if I ever need to take a sculpt OUTSIDE of 3DC. I have 8x core 2.6 XEON, 20gigs of Ram and a 512mb Radeon OSX/Win7/Unbuntu. I use 3DC almost every day and enjoy ever minute of working in 3DC!! its hands down my favorite 3D sculpting app!... now for the stuff some might find objectionable:

Long story short, Its not the GPU that is the issue(for me) for this particular case, its the SINGLE THREADED MERGING and the drawing of many-millions of unnecessary polys in voxel mode. There are many ways to solve this issue, localized decimation on the represented geometry)visible holding W Key), this is very plausible as you already notice how using surface mode only alters the voxels in a given vicinity. OR better yet, localized quadrangulation with subsufacing/subdividing in the area that the user is sculpting in; there are MANY algorithms out there that will allow you to maintain the geometry outside of the sculpting vicinity while doing localized subD on the area the user is sculpting or has sculpted. And so on , and so on....

IMO this(voxels) is the main reason why ever artist I know(maybe not you) that uses 3DC bought the program, voxels and voxels ONLY. The other additions are GREAT, in fact better than many leading apps in nearly all areas(i really enjoy the UV and retopo rooms!), but IMO voxels are the heart of 3DC at this point. Its become a different app than that from which it started IMO. Yes, a better sculpting room please, Yes, better speed in the paint room please, and a million other agreements I have with those on this board... But IMO it all comes down to being able to finish a sculpt from start to finish in 3DC, and for many of us that reluctantly still use other packages when neeeded (ZB/MB/etc), 3DC just cant complete a project in the same time due to the merging taking many minutes/HOURS some times when merging, or just switching between surface and volume mode for a 25Million+ vox tree layer. And that is what I and MANY others need, a properly threaded vox room, for the processes that nearly everyone who is seeking any kind of detail is running into. And of course, an optimized drawing method for voxels that takes up less ram on the GPU and calls for fewer cycles on the GPU, as 3DC is VERY unoptimized in this area IMO. There is no need for 2million polys to be drawn on the gpu for a simple primitive like a cube/cylinder/etc, while still displaying proper representation of the "underlying" voxel shape, maybe I'm way off here but from what I see from ZB/MB/SCulptris, I dont think so..By holding the W key you are seeing MANY MORE polys being drawn for MUCH less detail that ZB/MB/Sculptris would need to achieve the same detail... yes voxels are different (8x8 matrix i think) setups with a poly "skin" on them, but that is the point, ITS A POLYGON SKIN NOT VOXELS that is being drawn by the GPU, with far less detail using millions more polys that the other apps I mentioned need to display such detail. As far as voxels go Andrew is a genius IMO!! But as for how they're drawn on the GPU, IMO there appears to be lots of room for improvement.

My apologies to you if some of my posts regarding this subject matter carry with them a "broken record tone", but wow, i cant believe other people dont see that on a multicore system 3DC uses fewer cores for more of its processes than most ALL of my other 3D apps. Additions to the app are nice(and necessary), but making the core workflow act as it SHOULD and not crawl like waiting for a render on a 10 year old amiga, is a MUST for a smooth sculpting process from beginning to end, this is where for me ZB/MB/SCulptris triumph, and I really dont prefer ever using those apps for ANY of my sculpting work, I want to keep all my sculpting work in 3DC from start to finish. I mean no offense to anyone, artists, developers, etc; just sharing my experiences with 3DC, and the HOURS of productivity time lost due to waiting for the merge bar to process on a single core (out of my 8x core system), and the time I sit waiting for an integral process in the workflow, like I did 10+ years ago in a 3D app.

Link to comment
Share on other sites

  • Member

I didn't realise merging was not yet optimized for multiple cores, very happy to know that there is room for a massive speed boost in the future!

I agree completely about the voxel room, this for me is the #1 reason i am likely going to buy the program. I also agree the problem with the very fine detailing comes from the polygonal skin. I imagine if every voxel were actually displayed as a cube or spherical primitive, the capabilities for fine detailing would increase massively without the smoothing caused by the mesh laying over the true shape. Maybe there is a chance of using DX11 tesselation to improve the resolution of the current skin, and at the same time reduce the complexity when viewed from a distance? Certainly would be awesome.

I really do hope there is the possibility of different rendering options in the Voxel room. A higly optimized polygonal skin mode similar to what we have now, and a 'true' voxel volume mode. This along with per-voxel painting would be the ultimate solution i think. My brain is melting at the very thought of it :)

I am currently running the ZBrush and 3D-Coat trials simultaniously, but so far 3d-Coat is by far the better program for me. ZBrush is still excellent of course, you only have to look at the work that has been produced with it, but voxels are just so much easier to work with and the concept is completely intuitive.

Link to comment
Share on other sites

  • Advanced Member

From reading in this thread, its comforting to see that my experience is not an isolated case of having 3DC grind to a halt(frame rate wise) when using upwards of 20million polys, and likely jsut freeze at some point. Therein lies the problem, as I need a minimum of 30-35 million to get just SOME of the details into MANY of my sculpts that I really need, the microvert painting is just toooooo slowww at the res I need with the number of 4x/8x textures needed to achieve the detail I need, to use it for many of my final sculpts(even with PTEX), P.S. PTEX Rocks and may soon cure this WHEN OTHER APPS SUPPORT IT, for now it's not the biggest of helps if I ever need to take a sculpt OUTSIDE of 3DC. I have 8x core 2.6 XEON, 20gigs of Ram and a 512mb Radeon OSX/Win7/Unbuntu. I use 3DC almost every day and enjoy ever minute of working in 3DC!! its hands down my favorite 3D sculpting app!... now for the stuff some might find objectionable:

Long story short, Its not the GPU that is the issue(for me) for this particular case, its the SINGLE THREADED MERGING and the drawing of many-millions of unnecessary polys in voxel mode. There are many ways to solve this issue, localized decimation on the represented geometry)visible holding W Key), this is very plausible as you already notice how using surface mode only alters the voxels in a given vicinity. OR better yet, localized quadrangulation with subsufacing/subdividing in the area that the user is sculpting in; there are MANY algorithms out there that will allow you to maintain the geometry outside of the sculpting vicinity while doing localized subD on the area the user is sculpting or has sculpted. And so on , and so on....

There is only Sculptris that is currently doing that adaptive mesh thing and Sculptris is very slow despite only displaying a few hundred thousand polygons. I suspect this is due to the way Sculptris has to constantly update the mesh in real time. So using Sculptris has an example of how you'd like to see 3D Coat work is probably a bad idea.

And with ZBrush and Mudbox it's generally accepted that you're going to subdivide a model several times before sculpting in the details. So a high poly model isn't unique to 3D Coat. If anything a 3D Coat model can actually be more optimal because the density is distributed evenly. Whereas in ZBrush and Mudbox the density of a 15 million poly model can often be very uneven. Meaning after subdivision you can be left with millions of polygons in the fingers of a character while there's only a few thousand polys on the characters' chest. And because there isn't enough polys on the chest of the character then you're forced to subdivide the model even further until you're left with a 64 million poly monstrosity that even ZBrush is struggling to deal with.

I think it's probably best that we just accept that voxels are intended for doing high poly detailed stuff.

If you want to add low poly objects to your scene without them being conveted into voxels then how about suggesting that Andrew adds the option to allow users to specify whether merged objects/primitives can be left in their low poly surface form instead of being converted into voxels?

Link to comment
Share on other sites

  • Advanced Member

Morning....

Well, I feel a little bit silly now.....

In the cold light of Monday the 80 million + triangles I had actually turned out to be.....

um, 8 million + triangles. Doh!

Please see the image for the evidence. I did get it up to 14 and a half mil after I took this screen shot though by pushing it with loads of Sphere primitives and it was still highly usable when I scribbled all over em.

I am really sorry about this folks but it was way too late on a Friday evening and I was really excited + tired which is a bad combination I guess. It's a good job I am not an accountant or a bank clerk.

Anyway, 3D Coat on Linux still rocks. It is still way quicker and way more responsive and it still lets me do way more than the 32 bit non-CUDA Windows version but maybe I should look at upgrading my Ram (or my whole laptop) to take advantage of it's true potential....

It is still a free and highly viable alternative for people with similar systems to me though and I am still going to use it from now on.

I did notice it becoming progressively slower with the more time I spent sculpting though but the trick is to save often and close the program and reopen it at regular intervals.

One thing missing from the Linux version is a Ram counter so I couldn't see how much was being used for each operation such as moving, smoothing and brush strokes, etc.

Just so you know, I have a Dell XPS M1710 with an Nvidia 7900 GS and 4 gig of Ram.

post-421-12674400732064_thumb.jpg

Link to comment
Share on other sites

  • Contributor

If you want to add low poly objects to your scene without them being conveted into voxels then how about suggesting that Andrew adds the option to allow users to specify whether merged objects/primitives can be left in their low poly surface form instead of being converted into voxels?

Im sure direct import to Surface Mode is on his to-do list ,along with painting of shaders and multires in surface mode.

I think in the future people will be able to seamlessly work with hybrid voxtrees of both polygonal surfaces and voxel volumes.

Even if we see implementation of stuff like primitives,Ptex and constant bugfixes...Im sure all those stuff he talked about are given a lot of thinking time.

It is just "invisible" to us. :wizard: He probably even work on those things in his sleep. :D

Link to comment
Share on other sites

  • Advanced Member

Marc: 8 million makes MUCH more sense for 3DC.... 80million was quite astounding IMO. I dont think i could get a quarter frame a second with 80, if that(with what I would consider a pretty spiffy system). I was about to consider an immediate install of Kunbutu over my old ubuntu if 80 was the real number you were getting with those system specs.

on another note:

RE: SPLODGE:

There is only Sculptris that is currently doing that adaptive mesh thing and Sculptris is very slow despite only displaying a few hundred thousand polygons.

I'm not sure if what I was trying to say is coming across clearly, HOLD the W-key down in voxel mode to see a SEVERELY unoptimized poly mesh that represents your voxel sculpt in voxel mode. You arent seeing voxels in voxel mode in 3DC, you are looking at millions of very unoptimized polys all taking up memory on your GPGPU and (gp)gpu/cpu cycles... so YES a sculptris-like method of using the underlying voxel-data/matrix to generate normal-angle-difference-values(to define areas of greater and lesser poly-detail) COULD in fact be used to create a VERY optimized POLYGONAL skin on your voxel sculpt.

I suspect this is due to the way Sculptris has to constantly update the mesh in real time. So using Sculptris has an example of how you'd like to see 3D Coat work is probably a bad idea.

Have you seen the load that 3DC CONSTANTLY has going on at least one CPU core while doing NOTHING to a detailed vox sculpt file open in 3DC, it can be QUITE HIGH, higher in fact than ANY other 3d app I use. 3DC "idles" WAYYY higher on the CPU than EVERY APP I use(3d or otherwise). And if you dont think 3DC is CONSTANTLY redrawing on the screen, like Sculptris, just try flipping a surface poly in vox mode and watch how 3DC reveals just how VERY often the screen/object is redrawn on the GPU CONSTANTLY(by seeing the flicker effect I'm sure many are familiar with when flipping a poly in surface mode), even while the user does NOTHING to the model. So why not use those cpu/gpu cycles to do something useful like intelligently decimate the mesh in the BG, or "intelligently" locally sub-divide a display mesh in the vox room based on the normal-angle-difference data of the initial poly skin of the voxels.

And with ZBrush and Mudbox it's generally accepted that you're going to subdivide a model several times before sculpting in the details. So a high poly model isn't unique to 3D Coat. If anything a 3D Coat model can actually be more optimal because the density is distributed evenly.

This constant density, even to areas that should not have millions of polys worth of definition is not at all optimal IMO. This is not at all the case for creating polygonal meshes to send the the GPU's that we all have, you want it to be optimized for redraw. If there doesnt need to be an extra 20 million polys to define(for example) an un-sculpted FLAT surface, then dont send them to the GPU, optimize it using one or more of the MANY algorithms out there to do so. The fewer polygons the gpu has to draw, the more the GPU can focus on what needs to be done to achieve a higher frame-rate. In 3DC there can be a million polys (holding the w-key down) just to define a PERFECTLY FLAT surface on a cube primitive, if 3DC gathered the surrounding normal-angle data, that same completely flat surface of a cube primitive could be reduced to a few thousand polys AT MAXIMUM for display. Again, you are not seeing voxels in voxel mode in 3DC, you are seeing a VERY HIGH poly count mesh that is taking up tons of unnecessary GPU/CPU memory and cycles. I wont go down the litany of other ways 3DC could use OPENLY available algorithms to reduce the poly count of the displayed mesh without affecting its appearance AT ALL. You can already tell when using surface mode in the vox room that only the area you sculpt on is updated when hitting ENTER or switching to volume mode, so the underlying structure to gather which areas of a sculpt have been altered by the user are already there. That data could definitely be used generate a poly mesh optimized for the changes the user just performed on the underlying voxels. For example, as listed above, add more detail/SubDivision to areas with higher normal angle differences form the unoptimized poly skin generate, then redraw with the optimized version. lightening the load on the GPU and the overall polycount of the mesh if that optimzed mesh region were to replace the highly un-optimzed underlying skin/mesh.

Whereas in ZBrush and Mudbox the density of a 15 million poly model can often be very uneven. Meaning after subdivision you can be left with millions of polygons in the fingers of a character while there's only a few thousand polys on the characters' chest. And because there isn't enough polys on the chest of the character then you're forced to subdivide the model even further until you're left with a 64 million poly monstrosity that even ZBrush is struggling to deal with.

If you create a half-decent underlying very-low-res mesh in ZB or another app using edgeloops in the right places and subdividing where you will need extra polys later(in the obvious places), I find it hard to see how you would get such high poly counts in areas you dont want them. In fact, with Z Brush you can re-project high detail onto the lower poly levels if you ever need to redefine the low poly areas, so this is kind of a null point IMO. AND in Z Brush you can have ZB re-create the underlying mesh levels if you want as well, so again, not sure what you are talking about here. Are you saying that you would want the same number of polys to define a low detail area of a mesh in comparison to a high-detail area? I would almost ALWAYS ask for more polys to define a face or a hand than that of an area on a belt buckle or the bottom of a boot, or a flat piece of armor, etc, etc, etc.... As is the case in 3DC, the flat area at the bottom of the boot in one of my characters in 3DC can total a hundred thousand polys, because there are about 4/5 of the polys that are unneeded to define that FLAT SHAPE being drawn/sent to the gpu.

I think it's probably best that we just accept that voxels are intended for doing high poly detailed stuff.

Again, not sure what you mean here, other companies, such as ID using the

have indeed shown how VERY OPTIMIZED a voxel object can be drawn in FAR FAR FEWER cycles, and take up only a small fraction of the memory needed on the GPU to do so. If it were a choice to make 3DC more optimized in this area, it could indeed be done if Andrew wanted to. Voxels can be used in very high detail work, IF the application uses a "more modern" method to draw them with the GPU. In 3DC I would disagree that you would be able to use it CURRENTLY for the type of high detail poly work you would use ZB for at this time, so I'm not sure what type of high-detail work you are talking about, unless of course you're talking about multiple 8k UV's using microvertex painting, which is different than staying in the vox room, my main point. If high-detail geometry was the requirement for a job/project, would you seriously choose 3DC over ZB? If so, please share any insight you have as to why its the better choice for you, or others perhaps.
Link to comment
Share on other sites

  • Advanced Member

ifxs, there is nothing wrong with dreaming about real time optimized meshes in sculpting programs. But what I'm objecting to is how you seem to be singling out 3D Coat as having inefficient meshes when in fact the mesh generated from voxels is very efficient for detailed sculpting. Most folks that use sculpting programs are using them to create highly detailed characters. So by the time you've added in all the skin pores, wrinkles and veins then there isn't really any room left for optimization anyway.

And if you think 3D Coat is inefficient now then you're going to be in for a shock when Andrew adds multi-res/subdivisions support, because that's when we're going to be creating 32 million poly (even higher!) models.

Also, optimizing a mesh in real time isn't as optimal as you may assume as it means constantly transferring the model from system memory over to the GPU. This isn't optimal for the GPU because the transfer is a slow process. Whereas sending a several million polygon model over to the GPU and just leaving it there is going to result in better performance overall. This explains why Sculptris runs so slow. Can you imagine trying to work with a highly detailed character in Sculptris that was composed of just 8 million polygons?.

What you suggest might sound quite easy in theory but in practice it may not be workable. It's pointless saying that there's papers out there that demonstrate the idea is workable, but until somebody actually shows it's possible than I think it may be best not to give Andrew a hard time over it. We know he's an awesome coder but he isn't Gandalf, and it's not fair to pressure him into doing something that just might not be practical. It's like going to a scientist and asking him to create a time machine because Einstein said that it's theoretically possible. :)

Link to comment
Share on other sites

  • Member

I sent Andrew an e-mail yesterday regarding the option for a pure voxel rendering option in the voxel room and he very kindly replied, he said there was no immediate plans but he was curious why i thought it would be a good idea. From my thinking a pure voxel rendering option could actually allow for a 'crisper' sculpt - obviously it won't be peferct for every situation and it would look much rougher when you zoom right in (using cube primatives anyhow, of course you could represent each voxel as a sphere or somthing, maybe some user customisation options there would be great). I find the polygonal skin mode we have now is excellent for organic work and medium-fine detailing, but it does have a slight tendency to smooth out very fine details of only a few voxels width/diameter. The option to switch between polygonal skin and pure voxel render for a given project would very useful i think, and if i could be made to run faster than the polygonal skin mode that would be a double win. Of course Andrew is the expert here, and he knows better than me how much developement time would be needed for something like this, but i think it's an interesting idea at least.

He also confirmed that voxel painting will be implemented at least on the surface level. I know it was discussed here some time ago but i just wanted to see if the idea was still alive and kicking - very excited about this as i don't plan on baking much of my voxel work to polygonal meshes. (i know i'm in the minority there, but it's still a nice tool to have).

Link to comment
Share on other sites

  • Advanced Member

stuff

Voxel rendering does sound interesting. I'd be curious to see what the frame rate would be like.

The smoothing of fine details you mentioned may be the result of the video card's phong shading. I'm surprised Andrew hasn't added the option to allow us to enable flat shading in voxel mode. The option is there in the View menu but is only usable when in Paint mode. Phong shading isn't really needed when you get above several million polys. This is why ZBrush models always look so sharp - because people don't use any form of shading for their high poly models.

Another solution for achieving sharp details in 3D Coat is to only add details when you've finished doing the major voxel modeling. This way you can switch into Surface mode and use the pinch brush to bring an area of polygons together before drawing in any details. Or sometimes it's possible to draw in the detail first (a wrinkle for example) and then pinch in all the polygons around it to really sharpen it up.

Link to comment
Share on other sites

  • Advanced Member

Splodge: Why would you want "even" distribution of polys across an entire character, when many of those extra polys are in regions of the mesh that dont need them to define their shape? Those polys could be better allocated to high-detail regions of a mesh; for example having many more polys to define the face of a character than that of the shirt/armor or ANY areas of a mesh that call for far fewer polys. I say mesh because 3DC is DRAWING A MESH in the voxel room, not voxels. IMO I'm not sure you know what I am trying to describe, perhaps I'm not doing a worthy job of describing myself here.

I'm also happy to say that most of what I am saying could bee null when multi-res comes out for 3DC, I'm really psychedto see that update(thanks Andrew!!!)

the mesh generated from voxels is very efficient for detailed sculpting. Most folks that use sculpting programs are using them to create highly detailed characters. So by the time you've added in all the skin pores, wrinkles and veins then there isn't really any room left for optimization anyway.

are you serious, maybe none of my words/thoughts are coming across properly. 3DC voxel skin(seen holding W key) is not efficient/optimzed IMO. In fact there are a number of users on this forum that have pointed that out, and have had to do tricks to locally increase-res(subdivide) a voxels sculpt(using split/cut/hide/etc) just to give MORE DETAIL TO A SPECIFIC part of a sculpt, usually the head/face/hands/etc. Maybe you dont run into this issue that MANY of us do. Quite often, we need more polys in some areas and not a ton of extras polys all distributed regularly around a mesh. let me clearly state that I indulge in high poly counts for regions of the mesh that call for it as often as I can ;-), its just what gets the job done sometimes, and its nice to have that detail localized, wether its on the underlying mesh(optimally), or at least on the mesh being sent to the GPU for better memory and gpu usage.

5U85jOBWDpFCAD54FnUd.jpg

would you really want as many polys for the face as you would the top/back of the head in that particular sculpt? (its a sculptris gallery image). For practical reasons, I would definitely not want the same number of polys on the smooth back of the head as i would on the face there. There just dont need to be as many polys for the low detail areas as there do for the high detail areas.

And if you think 3D Coat is inefficient now then you're going to be in for a shock when Andrew adds multi-res/subdivisions support, because that's when we're going to be creating 32 million poly (even higher!) models.

I dont think I will if Andrew chooses to use an algorithm that is optimized to subdivide a multires mesh to a greater degree in regions on the mesh that have a higher incidence of normal angle differences(areas with higher detail, finely sculpted regions), Do you know about what I'm saying there, that is the basis to many localized poly tessellation/Local-subD algorithms. IMO the problem doesn't lie in the initial calculation of the Voxel skin, with its absurdly high poly counts(for good reason given Andrews chosen methods), the problem is when that unoptimized poly mesh is sent to the GPU with millions of unnecessary polys that dont need to be there for the GPU to do its job, with regard to this specific matter anyway.

Also, optimizing a mesh in real time isn't as optimal as you may assume as it means constantly transferring the model from system memory over to the GPU. This isn't optimal for the GPU because the transfer is a slow process.

Is that what you think believe most apps do when they optimize a mesh? If you're talking about a GPGPU, then maybe, but not a GPU! There are so many ways to avoid doing just what you described there that I cant begin to go over them all. First off, using a raycast, 3DC could get the specific region the user is sculpting over, then load just a given region of polys from the unoptimzed voxel skin onto the GPU surrounding the current mouse/raycast reference pointer data, then when the user releases the mouse/tablet, the optimzation is locally applied to the region that was loaded into the GPU memory and replaced with the optimzed version for less memory and cycles to draw the mesh. I've seen small "homebrew"-style 3d apps that can do this

Whereas sending a several million polygon model over to the GPU and just leaving it there is going to result in better performance overall. This explains why Sculptris runs so slow. Can you imagine trying to work with a highly detailed character in Sculptris that was composed of just 8 million polygons?.

Seriously?!?, 8 million polys in an app that is only adding the polys to area that calls for such details would actually result in a decently detailed mesh, and if Sculptris pushes the 20 million mark by just adding in polys where needed, we're talking about ZB competition IMO. Perhaps I didn't make myself clear when I said that 3DC displays 2 million polys just for a basic cube primitive(upsized a bit) that hasn't even been sculpted on.... And furthermore, why would it be faster to constantly have to refresh the entire UNOPTIMIZED mesh on the GPU as opposed to just swapping out the regions of the mesh that the user has directly changed? This is not even going into how OpenCL & CUDA totally change that paradigm to be far more optimized with regard to redraw and data transfer to and from the card being negated completely in some cases.

What you suggest might sound quite easy in theory but in practice it may not be workable. It's pointless saying that there's papers out there that demonstrate the idea is workable, but until somebody actually shows it's possible than I think it may be best not to give Andrew a hard time over it. We know he's an awesome coder but he isn't Gandalf, and it's not fair to pressure him into doing something that just might not be practical. It's like going to a scientist and asking him to create a time machine because Einstein said that it's theoretically possible. :)

THESE ARENT THEORIES, IT IS MORE THAN POSSIBLE, OTHER APPS ARE DOING IT NOW

one of my favorite straight forward links on the subject here

http://developer.nvidia.com/object/gamefest-2008-subdiv.html

http://www.3d-test.com/interviews/ati_amd_4.htm

http://castano.ludicon.com/blog/2009/01/10/10-fun-things-to-do-with-tessellation/

OpenGL extension for tessellation of a mesh

I bring this up only because 3DC is not drawing "voxels" its pushing polys!!! and a ton of them where they dont need to be IMO. I love using 3DC, and want to have a more fluid experience when working at the res I NEED TO WORK AT for nearly every non-realtime(iPhone/DX/etc) project I do.

Other apps are already doing such a process in their chosen ways, sculptris with it's dynamic mesh tessellation is allowing for specified detail regions on a sculpt dynamically(and the ability to "paint" on a poly reduction!), and ZB is totally fine with localized subdivision, so does Vue8, and so on and so on

AFAIK, Sculptris is being developed by one person, much like a large portion of 3DC, this is not about Gandalf, or whomever. This is about making your app a more solid app. I am a BIG FAN of Andrew's work, as I'm sure all of us are, but there is room for improvement IMO, that is all I'm saying. I'm not coding the app myself, I'm just a user sharing my thoughts, with hopes for a more-optimized toolset. I enjoy every PRODUCTIVE minute spent with 3DC, and would choose it over every other sculpting app on the market, I'm just sharing some thoughts that at least some of the competition is way past thinking about.

07_tessellation_04.jpg

Adaptive vs. Uniform Tessellation, which one do you think is nicer to your GPU?(and CPU for that matter in many cases)

P.S.:

The smoothing of fine details you mentioned may be the result of the video card's phong shading. I'm surprised Andrew hasn't added the option to allow us to enable flat shading in voxel mode. The option is there in the View menu but is only usable when in Paint mode. Phong shading isn't really needed when you get above several million polys. This is why ZBrush models always look so sharp - because people don't use any form of shading for their high poly models.

Good call &Excellent point, I would love that feature in 3DC! The option to have Flat shading for high detail voxels would feel much better in many cases IMO.

Link to comment
Share on other sites

  • Advanced Member

Splodge: Why would you want "even" distribution of polys across an entire character, when many of those extra polys are in regions of the mesh that dont need them to define their shape?

Because an even distribution is better than an uneven distribution where there are too many polygons in some areas and not enough polys in other areas. But of course an optimized/decimated mesh in real time would be even better if possible. But let's not stress Andrew over it when it's clear that all other sculpting programs are equally "wasteful" with their unoptimized meshes. Go look at the ZBrush and Mudbox galleries and you'll be lucky to find good examples that use less than 16 million polys. This is the nature of today's sculpting programs.

Tessellation is not the same as decimation. If anything they're totally opposite. Tessellation adds geometry, it doesn't take it away.

Good call &Excellent point, I would love that feature in 3DC! The option to have Flat shading for high detail voxels would feel much better in many cases IMO.

Well perhaps there's an incentive to not add real time decimation after all? :p:

But really, I'm done now. Wanting real time optimized meshes isn't a bad thing. It's just the way you're going about it. 3D Coat isn't as inefficient as you're making it out to be. When it comes to sculpting programs it's just business as usual. Very high poly models is very normal in the sculpting business.

The End.

=@

Link to comment
Share on other sites

  • 3 weeks later...
  • Applink Developer

NVIDIA announced version release 3.0 of the CUDA Toolkit:

Improved developer tools for Linux, including the new CUDA Memory Checker that reports misalignment and out of bounds errors

I just red that. Sounds interesting. Linux version is fast right now, but it would be superfast after this.

OpenCl would be the best choise but I think that this could be a little bit easier to do because there is win version already.

Link to comment
Share on other sites

  • Reputable Contributor

NVIDIA announced version release 3.0 of the CUDA Toolkit:

Improved developer tools for Linux, including the new CUDA Memory Checker that reports misalignment and out of bounds errors

I just red that. Sounds interesting. Linux version is fast right now, but it would be superfast after this.

OpenCl would be the best choise but I think that this could be a little bit easier to do because there is win version already.

I wonder if 3DC is ready for us to install CUDA 3.0. I tried a while back, when 3.0 was still in beta stage and had issues, to which I had to uninstall and load the old version again.
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...