3D-Coat development process

I am Andrew Shpagin, the developer of 3D-Coat. This is my personal blog devoted to the development of 3D-Coat. This blog is created to give fast and non-official information about 3D-Coat. I will post there daily news, what I am doing now, what features are under development this moment. It could be really interesting for everyone who is interested in 3D-Coat.

Thursday, January 31, 2008

The kingdom of arrows

I have add the new curve profile - arrow. Also you can mark some points like sharp. How it looks? It is better to see then to read.
Coming soon in 2.05!

Tuesday, January 29, 2008

Masks and layers masking

I thank to everyone who takes part in testing betas, it helps me much to develop 3DB quickly. So, the new version 2.05 BETA21 is done. The list of improvements:

1)Masks are implemented - I think it is very convenient improvement. If someone have good masks that could be used without license limitations, please send it to me.
2) Layers masking (linking) is implemented. You can undestand what is it by pictures below
3) Additional parameters "U/V offset" in custom material.
The link is below:

Sunday, January 27, 2008

Adaptive subdivision

Recently I have done 2.05 beta 1. The main feature of the version is auto-subdivision of geometry on comples parts of surface to acieve better displecement. To understad it better I will tell first how 3D-Brush renders the model. The main idea of 3d-brush is that high poly geometry (2-8 millions of polygones) is used to get normalmap, but actually for render less polygonal geometry is used. So there are actual mesh and carcass mesh (20-80 K of polygons). Now you can control the resolution of carcass mesh and of high hpoly mesh. I have made many optimisation and now catrass mesh can be up to 1 million of polygons. But usually you don't need so much polygons for carcass because now 3DB performs additional subdivision on curved faces. But it even makes something better then usual subdivision. You know that during subdivision you should add one point to tyhe center of the face and one point to every edge. In usual sceme every point will be add in the middle of the face/edge. But in my sceme points on face and edges will be inserted in the most displaced positions. It allows to get much better displaced geometry. I can illustrate it ising screenshots:

1) Usual stroke over plane. You can see disortions on the sharp edge.

2) The same stroke with adaptive geometry:

3) The same without wireframe:

Friday, January 4, 2008

Texture baking tutorial

I want to tell several words why baking tool is so important. Baking tool is especially important if you want to get a texture for low-poly mesh as a result. Let us take for example sphere and draw the strip over it like it is shown below:
Then we should go to sculpt tool and distort it slightly using drag tool:

Then we should enter into low-poly mode. What will you see?

It is because you have distorted geometry, but texture is not distorted, so mesh looks improperly in low-poly mode. In thins case baking tool can help you. You should project new high-poly distorted mesh onto low-poly mesh. In this way you will get distorted textures. Please compare the result of usual export of normalmap texture with result of baking tool:

Simple export result:

Baking tool result:
The differene is obvious - you have got the correct normal map using baking tool. The options for taking that normalmap are below:

[x] Use current low-poly mesh...
[ ] Use original positions ...
[ ] Smooth mesh

The options should be other if you need displacement:

[x] Use current low poly mesh
[ ] Use original positions...
[x] Smooth mesh
[x] Preserve positions ...

But the result will be better if you don't need displacement and need only normalmap. It is because of getting displacement is not trivial operation and mesh should be smoothed before. It is required because the displacement is difference between mesh and smoothed surface. I think that simple example shows you why baking tool is so important.

Thursday, January 3, 2008

Happy new year!

At least I have made the texture baking tool. Now you can project current mesh on another mesh and get textures of color, specular, normalmaps and displacement forr that mesh. It works fast, the baking takes almost the same time like simple texture saving. It uses multiple processors if you have it. Why do you need texture baking?

1) To get correct displacement maps even in case when you have dragged surface in sculpt tool.
2) Sometimes you need to change topology or uv-set of mesh. For example you need to simplify mesh and get textures for simplified mesh. In this case you can use texture baking.
How to use it? The screenshot of that tool is below:

To get displacement map you should set "Smooth" option because displacement is calculated like difference between object in scene and smoothed input mesh. If you want to project on current mesh you should check option "Use current low poly mesh...". In this case it is better to check options "Use original positions..." and "Smooth mesh" if you want to get displacement and uncheck them if you want only normalmap.

I have uploaded the new version there: