After Urfin, group decided to perform neverending story. I am happy about the decision. But I am somewhat floored by the complexity of the clips (especially environments). Mainly flight scenes with
Falkor.
Its my own interpretation of Falkor, the luck dragon. And visualisation of the Nothing.
I like to try a different approach of texturing for the ivory tower.
Koumis shared idea of using shader nodes like paint layers.
I like to try to create different separate materials. Each material contains a group with two outputs. A BSDF output and a Displace output. Textures for the base materials are mainly procedural.
In texturing workflow I like to combine these base material groups, blend them with monochrome texture maps.
At the end, PBR textures are baked from the node tree.
Thats the theory. I did not try this before, would be interesting to see whether it works like expected.
My base materials for the ivory tower (without the cliffs) …
Rendering of experimental image shows, layering BSDF’s is too slow.
Render Baking takes ages and give curious result. Thats the result of a diffuse bake. Looks interesting, but It does not rensemble original object surface. (Image above.)
To sum it up:
a texturing workflow would not work by layering BSDF’s, but by layering colors and floats. With only a single BSDF on whole shader node tree.
Three shaders.
PackPbr, UnpackPbr and BlendPbr.
(Defined in OslPerturbShaders)
PackPbr puts Pbr input params into “PbrBundle” OSL structure. UnpackPbr splits this structure back to its components. And BlendPbr blends input PbrBundles to a new PbrBundle.
The idea is to use these in shading node workflow for texturing. A Materials is described with a PbrBundle structure. Blending and composing materials (with its textures) is simply blending PbrBundle’s.
Some time ago, Cycles supported OSL structures. Now, it turns out that Cycles shader nodes erase OSL structures entirely. Node tree only keep its components, which are useless for my purpose.
deadlock
It is impossible to realize struct based workflow idea without proper support for OSL structures…
is there a way to re-activate OSL structures for Cycles’s shader nodes ?
Looking at the first “ivory tower” versus the latest one(s), I think that this is a strong testament to the importance of camera placement – or, in theater, “where do we put the audience?” Perhaps we will never top the set (now seen only in drawings) which accompanied a staging of Mozart’s Marriage of Figaro, but the drama of this forced perspective – and the juxtaposition of hard textures (second image, versus the first) against the smoothness of the tower – is (IMHO) “compellingly, dramatically, strong.” Which is precisely what you want. The first two (WIP) images, by comparison, (IMHO) fall absolutely flat.
And – as for the dog? … well, he looks like a dog not a dragon to me – do we really need to show him? Of course it’s your show. I don’t know, and mind you I don’t presume to say.
On the ivory tower, I exercised shader node based texturing. This way, texturing is more fun for me. Need to finish it. Today, if possible. So I can move on.
There is a dog around? I dont see any. But, its ok you dont like my Falkor interpretation.
Some thoughts on Hairs in Blender.
Not sure if someone cares. Writing it just for the case.
Blender 2.80 introduced metric units. This helped me a lot on Blender hair rendering.
It is a hint how to set up hair thickness. Hairs diameter could vary, I chosed a range from 60 microns up to 120 microns.
A micron is a millionth meter, or a thousandth millimeter.
Since 2.80 gives us metric units, such values could be used directly inside blender.
The ideal would be
“Radius Scale” <- 1 micron
or
“Radius Scale” <- 10**(-6)m
Scaling “Radius Scale” might limit quality, but it improves rendering performance.
Balancing hair quality and render performance.
First step … decide for hair thickness (in microns). E.g. something between 60 microns and 120 microns works.
Set “Radius Root” and “Tip” to hair thickness you chosed. (E.g. Something between 60 or 120)
Starting “Radius Scale” with a high value (100 micron). Then its about to examine, how many hair are needed to get an opaque surface. After we do have enough hair, we lower “Radius Scale” so Opacity of hair mass diminishes. We add hair, to compensate and achieve same opacity level again.
Again, we lower “Radius Scale”, Opacity diminishes. And we add new hair, to get same opacity level again. We continue, like this, until we got a good balance of hair quality and render speed.
seems to be the max value for my model.
Fine hair are difficult to see on the screen. While editing, I keep Radius Scale at 10 microns.
One common problem I run into during hair modelling … to get an even distribution of the hair. There is a simple solution, but its hidden. “Particle // Remove Doubles” could be used on larger values, it creates an even distribution.
Another problem is, that – during my works on the hair – some hair go inside the mesh. Leaving naked spots, when rendered. I tried to fix with “Puff”. Sometimes it worked, sometimes I had to comb trailing hair radially to get them out of the mesh.
Everything in my thread orients to real-world dimensions. From the size of the ivory tower down to the radius of falkors hairs.
Now I tried to get a horizont line done in Blender. Regularly, landscapes are treated like displaced planes. This way wont work for horizonts. And clouds would always be above horizont line.
In reality, clouds wrap behind horizont. Thats because earth is a sphere.
So, if we treat landscape and clouds as parts placed on spheres (with same center point), we get a proper horizont wrapping of the clouds. Wiki says, radius of Earth might be around 6000 km.
In test scene, clouds are just duplies placed on a point cloud.
Spherify operator used on dupli instancer mesh and ground mesh, with cursor at (0,0,-6000). After editing, spherified plane scaled by 1000.
For more complicated landscapes, we don’t want to hand-warp everything, Cast Modifier could do the job. surface curve of our world (earth).
camera clip range for viewport and scene cam has to be adjusted.
is a cube. Stretched, with top face scaled down, subdivided. Now it gets displaced (shader based displacement). Volume rendering creates a coral like structure.