![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
So, the furry fellow has been to a hairstylist with rather crazy attitude...
Anyways, what I'm showing in this image: each hair can be textured
individually, or the entire bunch of hairs can share the same texture. The
hair-meshes are properly uv-mapped so that gradients along the length of the
hair are possible. It is actually used quite subtly in this image: the hairs
are dark at the base.
The hairs "styling" was achieved by modifying the normal-vector of the
sample, this can be done with a simple macro that gets a few parameters to
tune this effect. The macro also takes care of picking a length. Similiar to
the method re-using hairs I don't generate *all* lengths required, but only
a set amount of lengths and clip to the closest one. The results are
satisfying,
and if more detail is needed, you can always crank up the steps! :-)
The textures were generated using a macro that gets called when placing the
hair. Again, it gets various parameters and then generates a texture from
that. Both macros, the styling and the texturing one, can be declared by the
User to give him/her complete control over style and color.
The underlying fellow mesh is a hand-posed subdivision-surface-mesh from
Silo. It doesn't allow bones yet and has no animation support, so don't
expect this guy to appear in an animation anytime soon... ;-)
Things that need to be done before release of the macros: File-Output to
save parsing time. I'm thinking about two types:
1. All possible hairs are generated and saved to disk.
2. The hairs are generated only when they are needed, the final array thus
may have "holes", but all hairs required for this image are done.
Anyways, that's just a recap of the current situation. Note that the
hair-strand itself is limited to straight bends, no curles or such, but the
hair-creation-macro can be exchanged quite easily so that other hair-macros
can be used.
Regards,
Tim
--
"Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
Attachments:
Download 'furry5b.jpg' (31 KB)
Preview of image 'furry5b.jpg'
![furry5b.jpg](/povray.binaries.images/attachment/%3C41fd281b%40news.povray.org%3E/furry5b.jpg?ttop=441697&toff=5650&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Tim Nikias" <JUSTTHELOWERCASE:timISNOTnikias(at)gmx.netWARE> wrote in
message news:41fd281b@news.povray.org...
> So, the furry fellow has been to a hairstylist with rather crazy
attitude...
>
Very nice - am enjoying watching the progression.
How difficult to apply deformations to the hair assemblage such as produced
by the wearing of a hat; head band; ribbon; etc. ?
Pan
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> How difficult to apply deformations to the hair assemblage such as
produced
> by the wearing of a hat; head band; ribbon; etc. ?
Eh... Depends on your skill level and the object's properties. Is it a
function? A mesh? If you find a way to derive a new orientation for a hair
from the hair's position & normal and the object in question, then you
should be able to do that very efficiently with the macro.
If you can apply more general rules, things get more simple. If you can say
"above y=5 just spread the hair outwards", you can check for this in the
macro and properly adjust the normal.
Note that the hair features no collision detection (that wouldn't be
possible to simulate in feasible time), so you might run into problems with
objects that are meant to obscure the hair...
As for ribbons: no such thing. You'd have to rely on more traditional
methods, e.g. placing no hairs where a pony-tail begins, and instead, place
hair-like tubes towards the knot-point, place a ribbon, and from there
outward place a few dozen hairs. The entire concept of covering an object
with hair isn't very flexible in POV-Ray, especially when considering memory
and time constraints (sure, I could write an include which simulates
thousands of hairs, but then again, who'd want to wait a few days for a
*test-render*?). So it's just static, conic meshes glued onto the surface.
Regards,
Tim
--
"Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Tim Nikias wrote:
>
Tim, the legs are great. He just needs more of an arch, I think, when
his foot bends.
-Shay
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Tim, the legs are great. He just needs more of an arch, I think, when
> his foot bends.
Yeah, that was just a quick bend on the mesh. For "proper" stills I'm
cleaning it up. Thanks for the pointer!
--
"Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
It looks like a walking Koosh ball.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |