POV-Ray : Newsgroups : povray.binaries.images : Normal documentation images. Quilted. : Re: Normal documentation images. Quilted. Server Time
26 Apr 2024 02:18:13 EDT (-0400)
  Re: Normal documentation images. Quilted.  
From: William F Pokorny
Date: 12 Oct 2020 07:08:16
Message: <5f843920$1@news.povray.org>
On 10/11/20 4:03 PM, Kenneth wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
>>
>> In the upper right is today's (v3.7/v3.8) true normal { quilted ... }
>> result. It shows one of the longstanding issues with the quilted normal
>> perturbation implementation. Specifically, if the shape's surface
>> "lands" on any of the texture's axial "floors" during texture
>> evaluation, you get a noisy result.
>>
>> The usual fix for that sort of problem is to apply a small positive or
>> negative epsilon - somewhere - in the system being calculated so such
>> landings are unlikely in practice.
> 
> Thanks for looking into this. I have always suspected that the quilted pattern
> (at least as a 'normal') has some unexpected quirks.
> 
> Back in April 2018, I actually posted an animation test about this, with some
> notes; perhaps it would prove helpful...
> 
>
http://news.povray.org/povray.binaries.animations/thread/%3Cweb.5ae6126fe8495210a47873e10%40news.povray.org%3E/
> 
> I too found that I needed to add a slight positioning 'fudge factor' to the
> pattern in my SDL code (like your internal epsilon tweaking) to avoid the
> 'noise' that you described. I also think that the pattern has some kind of
> 'discontinuity'-- in other words, that it does not seem to be uniform in its
> behavior throughout its unit(?)-cube spatial volume. The effect is hard to
> describe; maybe my animation will make it clear. I had assumed that the pattern
> 'spread out' or expanded from a central point-- so that it would perturb all six
> faces of a cube in an equal way; but the visual result looks...odd.
> 
> 

Hi. Thank you for the pointer. I missed your original post - or it got 
lost in my old noggin...

Aside: The video played, but was blank for me, until the last few frames 
on my raspbian last night. It's OK on this machine this morning. Who 
knows :-).

No doubt you found some of quilted's complications. I "think" I 
understand most of what's happening and why. We'll see.

I believe any updated code should 'perturb' with the original surface 
normal in mind. I see a path to do this with flat surface stuff like 
cubes, but I don't know how to do it for curved surfaces in normal.cpp.

The facets pattern has a curved surface method. I'll have to see if I 
can digest what was done there.

A simpler approach would be to warp normals constructed flat to common 
shapes. However, there's that block of un-finished normal warp / unwarp 
related code. I see it, but I don't really understand what works and 
doesn't with normals tangled in warps.

Truth is, I don't use normals that often. My todo list is effectively 
infinite. No promises as to when I can make things better with povr 
quilted normals. I'm about 95% sure I'll remove the value version of 
quilted from povr and replace it with 'seedfi' pattern(s?).

Bill P.


Post a reply to this message

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