In early January Cousin Ricky posted on the normal mechanism's scalar
value pattern's normal calculation bias.
http://news.povray.org/povray.binaries.images/thread/%3C5ff4b8da%241%40news.povray.org%3E/
Web Message: 5ff4a6cc$1@news.povray.org
---
There were posts in several newsgroups last fall regarding issues -
including some positionally bias related - with the quilted normal pattern.
http://news.povray.org/povray.binaries.images/thread/%3C5f830726%40news.povray.org%3E/
Web Message: 5f830726@news.povray.org
---
With this post I want to document a bias issue with the existing
wrinkles normal block pattern. In the attached image at left a sphere
with some phong shading. In the middle wrinkles with a bump_size of 0.5.
The two phong centers should more or less match(a), but do not. On the
right a hacked version of wrinkles removing the abs() of the DNoise
returned vector component values. The phong position and shading has
spread some, but it's not offset(b).
(a) - Unbiased now too is the overall sphere's shading due the perturbed
normals.
(b) - The pigment_pattern { wrinkles } looks different, has at identical
scale and bump_size no noticeable bias - though the scalar value type
bias is there, and it looks correct for phong position and general shading.
The normal { wrinkles } perturbation's calc creates vector offsets which
only add to the existing normal vector values. Further, the amount of
the add/offset depends upon the bump_size value and whether
no_bump_scale is set or not.
When considered along with transformations it makes textures/materials
using normal { wrinkles } very difficult to control / set-up for general
use.
---
Thinking aloud: The misbehavior with wrinkles does suggest an
interesting idea. One I see as related to those using large bump_size
values to affect a materials interaction with lighting.
Might we implement a normals pattern which allows users to lean/bend
normals toward a light source as a new normal block pattern?
Suppose it would be done with a vector specifying a point in space(1)
with the bump_size then indicating how hard to bend normals toward that
point(2).
(1) - The point would have to undergo the same inverse transformations
as rays to be specified in global space I guess.
(2) Hmm, would this need to be done along with (after) other normal
perturbation patterns are applied. Maybe so...
Bill P.
Post a reply to this message
Attachments:
Download 'nrmlwrnklissue.jpg' (21 KB)
Preview of image 'nrmlwrnklissue.jpg'
|