POV-Ray : Newsgroups : povray.binaries.images : Documenting wrinkles normal pattern bias. v3.7/v3.8. : Documenting wrinkles normal pattern bias. v3.7/v3.8. Server Time
6 Oct 2022 22:17:35 EDT (-0400)
  Documenting wrinkles normal pattern bias. v3.7/v3.8.  
From: William F Pokorny
Date: 5 May 2021 05:31:14
Message: <609265e2@news.povray.org>
In early January Cousin Ricky posted on the normal mechanism's scalar 
value pattern's normal calculation bias.


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.


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 

(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 


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 

(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

Download 'nrmlwrnklissue.jpg' (21 KB)

Preview of image 'nrmlwrnklissue.jpg'


Copyright 2003-2021 Persistence of Vision Raytracer Pty. Ltd.