Andrew Shpagin

3D-Coat 3.7 updates thread

1,787 posts in this topic

What is actual difference? Is it possible in real situation that diffuse and emissive colors are diffetent on the same place?

In general what you are exporting is colored emissive but principally it is monochromatic.

In general I may do it in different way - export not color + emissive in alpha but color from emissive layers + emissive in alpha.

In my work with games, emissive has always been a monochromatic channel that is applied multiplied against the albedo channel. That being said, perhaps people doing nonrealtime rendering work have different needs. I believe in Softimage, emissive is treated as RGB and can contribute to scene lighting so I suppose it might make sense to provide that as an option.

My first impression was that I was surprised there isn't a new glowy sphere up in the menu next to the black specular sphere for the new emissive channel. I kind of expected it to behave the same way as specular does today (and if you added RGB emissive in the future, make it behave like - but independently from - Color). For example, I thought this build would probably have a new option in the "add new material" dialog where you currently pick the depth, color and specular texture to pick the emissive texture. I'm also unsure how or if the emissive channel can be used with the various layer modes (lighten, color dodge, etc) to create the emissive texture - right now it seems like I'll probably be limited to raw color painting? Not sure. I'm not a 3DC expert either so maybe I'm missing something there.

My first test in the Paint room didn't work so well unfortunately - I set a layer as emissive, painted some white on it, and tried to turn the lights off. The lights only go down to 10% apparently, which is a problem for looking at the full spectrum of emissive behavior. Also, the emissive channel didn't seem to actually act emissive. I know you mentioned shaders need work, so maybe that's what is going on here. The attached file shows my test with the lights as low as they go with white paint in a layer set to emissive.

Regarding "export not color + emissive in alpha but color from emissive layers + emissive in alpha. " - I just did a quick test and saw the options in the export. I think the current option of "Export emissive" replacing the transparency is probably not such a great idea and I think emissive should always be in it's own export file. People who need to pack things into channels can use custom pipeline tools for that rather than changing the standard expectation of the color image alpha channel being used to represent transparency; otherwise we'll have to start tracking which exports use what channel configurations and will generally be a source of confusion. If the emissive data is authored as monochromatic, export a monochromatic as the specular is today. If you decide to support RGB emissive (which is how it kind of appears in 3DC right now..?), then the export would be an RGB image. (If you decide someday to add RGB to specular you could do the same thing for that too). I suggest making "Export emissive RGB" control creation of an RGB file "model_emissive_rgb.png" with emissive colors (which would currently be color channel * emissive scalar), and use "Export emissive intensity" to control generation of an A8 image file "model_emissive.png" that has the emissive scalar value. These two could be independent. Or you could make a combo box for "Don't export emissive", "Export emissive RGB", "Export emissive intensity".

Just my 2 cents, thanks a bunch for getting this into 3DC.

PS. saw a typo: Export emissive tooltip, "Eport emissive" should read "Export emissive".

post-1166-0-14826200-1333279720_thumb.jp

Share this post


Link to post
Share on other sites

Please explain a bit - what is "paint projection". How to reproduce problem?

Sorry, all I meant was when you paint on the voxel model (surface mode) using the paintbrush in the paintroom that you get the error you see in the picture. I just used the word projection for the applying of the paint.

I had no time to post a bug report but when I get back in town late next week, I will send you the 3DCoat file and make a bug report...

Share this post


Link to post
Share on other sites

Yes I have experienced this also. Likewise, I use the airbrush all the time with no problem.

Share this post


Link to post
Share on other sites

I also think emissive should have its own sphere up next to specular and its own dedicated texture.

I also do not think it makes sense to seperate specular color into a blending mode. Why not enable us to paint specularity with colors activated? When you do not want color you simply paint black and white,

and if you do you choose a color. Workflow wise this is much more intuitive and user friendly.

Share this post


Link to post
Share on other sites

Right now the emissive stuff is neat to play with, but I'm not sure how to practically make it suit my needs. I was of the assumption that that I could import a greyscale map and the white would make an area emissive (so the underlying color would be emissive) while black would be completely non-emissive. Do that now just makes my model black/white. How do I vary the intensity of the light?

Glad it's in as I can find a use for it somewhere for certain, but for production purposes I can't really do anything with it just yet.

Share this post


Link to post
Share on other sites

Andrew: Ghost mode could be useful for booleans.

1. Object_A_fully visible - Object_B_Ghosted (B extracted from A )

2. TANSFORM: when I move Object_B or Object_A I can see the result of boolean on Object_A_surface through Object_B_Ghosted

Share this post


Link to post
Share on other sites

Right now the emissive stuff is neat to play with, but I'm not sure how to practically make it suit my needs. I was of the assumption that that I could import a greyscale map and the white would make an area emissive (so the underlying color would be emissive) while black would be completely non-emissive. Do that now just makes my model black/white. How do I vary the intensity of the light?

Glad it's in as I can find a use for it somewhere for certain, but for production purposes I can't really do anything with it just yet.

Now I really need feedback regarding emissive to understand how is to do it better.

My limitation is - I can't add additional color channel - slowdown + video memory consumption.

I may do additional blend mode - "Mono emissive" that will use Color_Intensity*Alpha as emissive degree. It will solve b/w import problem.

I need some example how it looks on picture (to make better shader) - but it is hard to do glow due to performance and internal architecture problems.

Share this post


Link to post
Share on other sites

Andrew: Ghost mode could be useful for booleans.

1. Object_A_fully visible - Object_B_Ghosted (B extracted from A )

2. TANSFORM: when I move Object_B or Object_A I can see the result of boolean on Object_A_surface through Object_B_Ghosted

Should boolean affect Ghost? Now Ghost assecpt action of all tools, it is just not pickable.

I need to understand how is better.

Share this post


Link to post
Share on other sites

Now I really need feedback regarding emissive to understand how is to do it better.

My limitation is - I can't add additional color channel - slowdown + video memory consumption.

I may do additional blend mode - "Mono emissive" that will use Color_Intensity*Alpha as emissive degree. It will solve b/w import problem.

I need some example how it looks on picture (to make better shader) - but it is hard to do glow due to performance and internal architecture problems.

In an ideal situation, 3DC would allow the user to decide how the two channels (currently the color RGBA and specular A8) would contribute to the final shader output. Adding a more flexible channel system to 3DC is in my admittedly non-expert opinion the #1 most important thing that could be added to improve the capabilities of 3DC. I think the functionality can be improved to support multiple channel types without adding more color channels by changing the way the current color channel data is processed.

Because of how the layers menu shows toggles for "use as emissive", "Normal map", etc., this suggests each layer can can control how it contributes to the final shader textures. Maybe all we really need is a more intuitive way to control what the color RGBA channel is being used for, and what the specular A8 channel is being used for. Essentially, think of those existing channels as simple RGBA and Mono channels, and let the user decide how those channels are used in the output. No new channel data would be needed, just a change in the way the channel data is accumulated into textures used by the shader for display. Consider this:

HKIGn.png

If the layers had buttons for controlling how it contributes to the shader, this would be much more intuitive. The buttons could be mutually exclusive based on where the data was coming from. For instance, a if mono emissive were being used on a layer, it would disable the specular/reflect/gloss if those channels were set to Mono mode. In other words, clicking on emissive would put an X on the specular, reflection and gloss and the layer would no longer affect specular, reflection or gloss - only one at a time. Each of the types (albedo,specular, emissive, reflection, gloss - ASERG) could be set by the user via menu to use either the RGBA channel or the Mono channel and would affect the mutual exclusion logic accordingly.

The one special case is transparency, which I feel should always be the A channel of the RGBA data to control overall contribution of the layer for a given texel regardless of the configuration of the channels.

Going out on a limb here to speculate how rendering on screen might work, the 3DC would internally have an RGBA texture for each of the channels (ASERG) that is eventually sent to the GPU for rendering. As it scans the layers to update the textures, it would use the button settings on each layer to determine which one of the ASERG texture buffers to accumulate color into, applying the layer mode (standard blend/color burn/etc) to the color data in the process. If a layer were set to mono, it would use the mono intensity for the RGB compnent values. The alpha component would always be set to the layer opacity. The HLSL shader would be provided one texture for each ASERG and render the final result accordingly. Users could even point the scene to a custom shader to tweak it if they wanted.

I am looking forward to seeing how you decide to go with all this, thanks for reading!

post-1166-0-56823000-1333488076_thumb.pn

Share this post


Link to post
Share on other sites

This setup outlined by Eric would be great. It seem like things are getting complicated by using layer modes to set some channel types, and having others applied directly to layers.

A perhaps more flexible approach is to enable custom channels on shaders, so the choice of channel types is based on production requirements, not hardcoded. This is the approach that Mari uses, but would require a different shader setup.

Either way, this program is truly amazing ...and also a big thanks to Sergii for getting it running on Federa 14.

Share this post


Link to post
Share on other sites

Hi Andrew,

Just downloaded and installed 3.7.08B and I notice that the PicMat_RedWax shader is a lot different and the resolution of my sculpt seems less-than. I reverted back to 3.7.01B (the version that I was using yesterday and started the sculpt in) as these changed aspects really throw me off in mid-stream while in production.

No time to get used to a whole new RedWax look dealing with production day-to-day, and I preferred the the previous RedWax look as well.

peace | deg

Share this post


Link to post
Share on other sites

In an ideal situation...

Snipped

I am looking forward to seeing how you decide to go with all this, thanks for reading!

Absolutely awesome. That is how I imagined it as well. This would be the most flexible, logical solution IMHO.

Share this post


Link to post
Share on other sites

I agree, Erics solution is great. I hope it can be implemented this way.

Right now it's a bit confusing having these options between the layer blend modes.

Getting them out of the layer blend modes adds more options, especially blending them like color channels.

Additionally what I'd love to have is layer groups like in photoshop. So we could blend several layers inside the group and then set the whole group to be for example color, specular or emissive.

Share this post


Link to post
Share on other sites

i like what eric suggests as well - very intuitive, but whats the albedo channel all about ? i did a search in the manual but found nothing . . .

Share this post


Link to post
Share on other sites

Albedo = Color

Share this post


Link to post
Share on other sites

i like what eric suggests as well - very intuitive, but whats the albedo channel all about ? i did a search in the manual but found nothing . . .

Basic Diffuse channel

Share this post


Link to post
Share on other sites

In an ideal situation, ...

A bit more clarification:

Every layer can't have all channels accessible.

Now layer have

RGBA + Specular (4 mono channels at all)

and layers summary have

RGBA + Specular + RGB (for specularity) + Emissive - (8 mono channels at all)

In so way I may use layers to produce colored specular and emissive.

What I see is missing in current implementation is to add additional blend mode "Highlight emissive"

Other way is to keep blend modes as it was but add additional option how to treat layer - as color + specular, as emissive or as colored specular. But it is more complex (in terms of UI and understanding of user) and not sure that it is really better than previous case.

Share this post


Link to post
Share on other sites

A bit more clarification:

Every layer can't have all channels accessible.

Now layer have

RGBA + Specular (4 mono channels at all)

I am probably missing something here, but it seems like what I wrote would be compatible with what you have explained. No additional per layer channels are envisioned. I do see now there is only a single RGBA value for the layer, which changes things a little bit, making it simpler.

I was trying to describe a way for the user to control where the existing RGBA data for each layer would be accumulated, accumulating the RGBA components of each layer to one of the final output textures. The layer would only be able to assign one destination for the RGBA.

I am probably missing something, but it seems like what I am describing is just how the user would select the destination textures using mutually exclusive buttons on the layer's row in the panel rather than menu items. The implementation seems very similar to what you said here:

Other way is to keep blend modes as it was but add additional option how to treat layer - as color + specular, as emissive or as colored specular. But it is more complex (in terms of UI and understanding of user) and not sure that it is really better than previous case.

That's pretty much what my UI sample is intended to demonstrate - how to treat the layer in a user friendly manner. The UI seems like it would be very straightfoward - just click on the icons visible on the currently selected layer row for which one of the layers summary that the RGBA should go to. Since there would be no new per-layer data, other than flags controlling which target buffer it should send data to, this would make it possible to have the additional output buffers (reflection, etc) with the only increase in memory being the final output texture and perhaps a secondary buffer used during accumulation. The shader used to present these textures could do whatever they wanted with the data they are provided.

Here's an update of the sample that works with the single RGBA channel. Only one button would be able to be selected at a time, and it would control if it would be Color+Specular (the original 3DC behavior), ColorSpec RGB + Gloss A, Emissive RGB + Luminance A (used for glow effect shaders), and Reflection RGB + Refraction scalar. Its much simpler now that I understand there is only a single RGBA color to work with, and it seems to fit the standard set of texture data assets might want to use. Note: The X shown over the normal would also be shown over all but one of the icons.

6YZME.png

I really appreciate being able to make these suggestions, even if they turn out to not make sense to do for whatever reason.

Thanks for reading!

post-1166-0-52868800-1333698271_thumb.pn

Share this post


Link to post
Share on other sites

Hi Andrew, I've just had a look at the colored spec blend mode and find it mostly great. One problem though is that when using cube mapping(the environment shade option in the view menu)

the reflections get tinted a completely different color to what is expected. Metal effects such as gold,brass and copper are especially reliant on colored spec and cube mapping used in conjunction with each other.

Otherwise, I actually really like the way the blend mode system works, as it makes it very easy to check subtleties by switching back and forth between colored spec and standard blend modes.

Share this post


Link to post
Share on other sites

I have a dumb question. Maybe I'm missing something.

With v3.707a, I would load my reference model to retopo and it'd be a nicely shade white (or whatever). I easily do my retopo just fine. With the v3.708 series, my reference model would load in semi-transparent and not at all solid looking. Now, with v3.709, my reference model imports as almost solid white. Was some new feature added after v3.707a that I've missed?

I'm on Win7 x64 and using an ATI RadeonHD 5770 1GB. I've tried swapping out video drivers so know that's not the problem for me this time. I don't want to report a bug if none exists. I'm just curious if I'm doing something wrong. Sorry if I'm posting this in the wrong thread.

On a different note, I can see that there's poly count info in the status bar of the retopo room. Is there any way to move it up to some sort of Maya-like HUD? Or did I miss that too? :D If not, that'd be convenient thing to have, better than having it in the status bar.

Again, sorry if these questions have obvious answers or are being posted in the wrong thread

Share this post


Link to post
Share on other sites

Andrew

New Ghost mode could allow us to see the Boolean result here:

as we move the second ghosted object, always see the Boolean-result, because its transparent:

ghost1y.jpg

No Ghost mode:

I have to move the second object or turn off its visibility to see if the boolean result is looking good or not:

ghost2ad.jpg

Share this post


Link to post
Share on other sites

Mercy I think what your describing would be better off as an extension to the boolean operations not ghosting. Call it an intersection preview if you like, and it would only really work if you specify whether your going to make a subtration? So it serves better purpose with a more direct link to boolean operation.

Transparency (Ghosting) in ZBrush allows fine control of subtools at borders of intersection, and even manipulation through the obscuring volumes, This can be Extremely useful.

Share this post


Link to post
Share on other sites

Hello! I know this is rather trivial, but can we have some better shaders for voxel sculpting at some point? Right now the majority of them are unusuable and the ones that are usuable are still not as good as the ones in sculptris but especially Zbrush. It's not just a matter of being prettier, but the way the light interacts with the model can be inconvienient.

Thanks

Share this post


Link to post
Share on other sites

@kay_Eva

You have better shaders in 3dc. Try to modify and save some textured based ones. You can also bake them, bumps are translating to normal maps!

About zbrush, well, it's superior on this. However, have you figured out how to export some baking from these? Not that easy, neither great, sometimes.

especially when cavity is involved.

Share this post


Link to post
Share on other sites

I hate to turn this into a feature request thread, but I've wanted for a long time the ability to save my light setup that I could load it in a different scene. Not sure if this is already possible, but I haven't been able to figure out how to do it.

Also, I mentioned this to Raul a while back, but I don't know if the message got relayed Andrew, but I think it would be great to have a realtime boolean layer, where we could toggle between cut away or intersection mode. That way you could move the voxel layer to hide or reveal what you want and be able to evaluate what it will look like realtime.

I think these layers, could be used for masking purposes, by freezing the regions that are hidden.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.