|
|
On Fri, 24 Nov 2000 20:37:44 -0500, Chris Huff wrote:
>> As for the memory hit, only one hair is in memory at a time, so
>> there is no large memory hit.
I don't think you can have only one hair in memory at a time with
povray. At the very least you must have all hairs which might intersect
the current ray.
>If done one at a time, you trade time for memory, since you have to
>recalculate the hairs for every pixel(storing enough hairs is obviously
>not feasible, even with sharing mesh data...).
I don't think that this is "clearly not feasible". A human has about
100,000 hairs on his head. I don't know about furry animals, but 1
million hairs seems about right to me. If we represent a hair as a
spline with a thickness, a pointer to the texture (many hairs will share
the same texture) and a bounding box, that's 24*n+8+4+48 bytes per hair,
if the spline has n control points. Assuming 5 CP's to be enough for
curvy hair, that's 180 bytes/hair or 180 MB for 1 million hairs.
A lot - but not unfeasible if you want to render a single animal (or
even a small number of them).
>It might be possible to partly compensate with some kind of bounding
>scheme, so only hairs that might be visible are tested, but it will
>still be a significant cost.
Yes, the bounding scheme is very important. Clearly you don't want to
test against 1 million hairs for every ray.
>A media-like rendering algorithm still seems to be the best option,
Maybe. But if a media-like rendering algorithm builds on the same idea,
I fail to see how it can possibly be much faster or less memory-hungry.
hp
--
_ | Peter J. Holzer | Es war nicht Gegenstand der Abstimmung zu
| | | hjp### [at] wsracat | Zahlen neu festzulegen.
__/ | http://www.hjp.at/ | -- Johannes Schwenke <jby### [at] ginkode>
Post a reply to this message
|
|