POV-Ray : Newsgroups : povray.unofficial.patches : Odd lighting of object pattern isosurface Server Time
1 Sep 2024 14:29:16 EDT (-0400)
  Odd lighting of object pattern isosurface (Message 1 to 5 of 5)  
From: Tor Olav Kristensen
Subject: Odd lighting of object pattern isosurface
Date: 20 May 2001 13:34:00
Message: <3B07FFCB.1C36B607@hotmail.com>
When rendering the source code below,
only half of the text object gets 
illuminated from the (single) light
source used.

When the light source is placed to
the "left" of this camera, the "right"
half of the object is lit.

(And when the light source is placed
to the "right" of this camera then the
"left" side of the object is lit.)

Ambient light will light all of it.

Have I misunderstood something ?
Or is this a bug ?


-- 
Best regards,

Tor Olav

mailto:tor### [at] hotmailcom
http://hjem.sol.no/t-o-k/tokpicts.html
http://www.crosswinds.net/~tok


// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 =

#version unofficial MegaPov 0.7;

#include "colors.inc"

global_settings { ambient_light color Black }

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 =

#declare TextObject =
text {
  ttf "Arial.ttf"
  "POV-Ray" 0.2, 0
}

//#declare TextObject = sphere { <0, 0, 0>,  1 }

#declare pMax = max_extent(TextObject);
#declare pMin = min_extent(TextObject);

#declare PigmentFunction =
function { 
  pigment {
    object {
      TextObject
      rgb 1, rgb 0
    }
    turbulence 0.15
  }
}

#declare D = 0.2;

#declare IsoText =
isosurface {
  function { PigmentFunction - 0.5 }
  contained_by { box { pMin - <D, D, D>, pMax + <D, D, D> } }
  max_gradient 40
//  accuracy 1e-6
  method 2
}

object {
  IsoText
  translate -(pMin + pMax)/2
  pigment { color White }
}

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 =

background { color Blue/2 }

light_source { <-1,  2, -3>*100 color White }
//light_source { < 1,  2, -3>*100 color White }

camera {
  location <0, 0, -4>
  look_at <0, 0, 0>
}

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 =


Post a reply to this message

From: Christoph Hormann
Subject: Re: Odd lighting of object pattern isosurface
Date: 20 May 2001 14:23:24
Message: <3B080BE2.81F1DD5B@gmx.de>
Tor Olav Kristensen wrote:
> 
> When rendering the source code below,
> only half of the text object gets
> illuminated from the (single) light
> source used.
> 
> When the light source is placed to
> the "left" of this camera, the "right"
> half of the object is lit.
> 
> (And when the light source is placed
> to the "right" of this camera then the
> "left" side of the object is lit.)
> 
> Ambient light will light all of it.
> 
> Have I misunderstood something ?
> Or is this a bug ?
> 

I did not try to render your code, but you should not use the object
pattern in isosurface function, because it contains infinite gradient. 

Infinite gradient in isosurface functions usually leads to unexpected
results.   

Christoph

-- 
Christoph Hormann <chr### [at] gmxde>
IsoWood include, radiosity tutorial, TransSkin and other 
things on: http://www.schunter.etc.tu-bs.de/~chris/


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Odd lighting of object pattern isosurface
Date: 22 May 2001 17:47:31
Message: <3B0ADE4A.888D74F1@hotmail.com>
Christoph Hormann wrote:
> 
> Tor Olav Kristensen wrote:
> >
> > When rendering the source code below,
> > only half of the text object gets
> > illuminated from the (single) light
> > source used.
> >
> > When the light source is placed to
> > the "left" of this camera, the "right"
> > half of the object is lit.
> >
> > (And when the light source is placed
> > to the "right" of this camera then the
> > "left" side of the object is lit.)
> >
> > Ambient light will light all of it.
> >
> > Have I misunderstood something ?
> > Or is this a bug ?
> >
> 
> I did not try to render your code, but you should not use the object
> pattern in isosurface function, because it contains infinite gradient.

I see  - But that's a pity !
It would be a great possibility to "isofy"
all kind of "ordinary" POV-shapes.


> Infinite gradient in isosurface functions usually leads to unexpected
> results.

I think though (IIRC), that I earlier 
have successfully made iso-images with 
infinite gradients objects.


-- 
Best regards,

Tor Olav

mailto:tor### [at] hotmailcom
http://hjem.sol.no/t-o-k/tokpicts.html
http://www.crosswinds.net/~tok


Post a reply to this message

From: Christoph Hormann
Subject: Re: Odd lighting of object pattern isosurface
Date: 22 May 2001 18:05:34
Message: <3B0AE2FA.91F0B724@gmx.de>
Tor Olav Kristensen wrote:
> 
> I see  - But that's a pity !
> It would be a great possibility to "isofy"
> all kind of "ordinary" POV-shapes.
> 

You can try the proximity pattern, but that's slow of course.  

> 
> I think though (IIRC), that I earlier
> have successfully made iso-images with
> infinite gradients objects.
> 

I think method 1 sometimes works this way, but in general you should
expect strange results.  Even if the shape appears correct, shadows for
example can still be wrong.  

Christoph

-- 
Christoph Hormann <chr### [at] gmxde>
IsoWood include, radiosity tutorial, TransSkin and other 
things on: http://www.schunter.etc.tu-bs.de/~chris/


Post a reply to this message

From: Warp
Subject: Re: Odd lighting of object pattern isosurface
Date: 23 May 2001 07:08:41
Message: <3b0b9a37@news.povray.org>
Tor Olav Kristensen <tor### [at] hotmailcom> wrote:
: I see  - But that's a pity !
: It would be a great possibility to "isofy"
: all kind of "ordinary" POV-shapes.

  It's an old idea and it would be very useful (eg. true non-uniform
transformations), but it can't work.
  Perhaps if a good proximity pattern is developed...

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

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