POV-Ray : Newsgroups : povray.bugreports : Bump mapping bug with cylindrical mapping : Bump mapping bug with cylindrical mapping Server Time
26 Apr 2024 22:15:56 EDT (-0400)
  Bump mapping bug with cylindrical mapping  
From: Eriban
Date: 24 May 2014 17:45:00
Message: <web.5381112b322b4989a5153eaa0@news.povray.org>
Hi,

I have bumped into a bug while using the cylindrical bump map feature. For
inward-facing surfaces the bumps are incorrect.

The scene below reproduces the problem. It defines two scenes:
* When clock = 0 the basic problem is shown. Here the vertical bands are
incorrect, which is very apparent due to the discontinuity at the top.
* When clock != 0 a work-around is attempted, which unfortunately fails. Now the
vertical bands are correct, but the inner horizontal bands are incorrect.

I will post the source normal images, as well as the resulting output images in
the images group.

Note, in this example it is of course possible to work-around the issue by
applying CSG. However, that is not so straightforward for the actual scene I
have in mind, as the normal isn't quite as simple. :-(

I found one very similar message in the forum:
http://news.povray.org/povray.general/thread/%3Cweb.4e3c2efc6f470711571dbe980@news.povray.org%3E/.
Here a torus bump map was used instead of cylinder bump map, but the issue is
the same. Unfortunately, there was no sign that this bug has been addressed
since then.

I am experiencing this problem in the following versions:
* The (unoffical) Mac version of POV-Ray 3.7.0
* The Mac version of POV-Ray 3.6.2

Cheers,
Erwin


#include "colors.inc"

camera {
 location <1, 1, -1> * 4
 angle 30
 right x
 up y * 3/4
 look_at < 0, 0, 0>
}

light_source {
 <-1, 5, -4>
 color White
}

#local Torus =
 torus {
  1, 0.3
 }
#local Cylinder =
 cylinder {
  <0, -0.4, 0>,
  <0,  0.4, 0>, 1
 }

#if (clock = 0)
 // Torus with same normal everywhere
 // -> Inner horizontal bands OK
 // -> Inner vertical bands wrong
 object {
  object { Torus }
  texture {
   pigment { color Blue }
   normal {
    bump_map {
     png "TestNormal0.png"
     map_type 2
    }
    translate y * -0.5
    bump_size 2
   }
  }
 }
#else
 // Torus with inverted normal on inside
 // -> Inner horizontal bands wrong
 // -> Inner vertical bands OK
 difference {
  object { Torus }
  object { Cylinder }
  texture {
   pigment { color Red }
   normal {
    bump_map {
     png "TestNormal0.png"
     map_type 2
    }
    translate y * -0.5
    bump_size 2
   }
  }
 }

 intersection {
  object { Torus }
  object { Cylinder }
  texture {
   pigment { color Yellow }
   normal {
    bump_map {
     // Inverse of TestNormal0.png, i.e. Black & White reversed
     png "TestNormal1.png"
     map_type 2
    }
    translate y * -0.5
    bump_size 2
   }
  }
 }
#end

/* EOF */


Post a reply to this message

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