![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I have three pigments applied to a sky_sphere in conventional fashion. Now,
I'd like to replace the sky_sphere with a sphere (suitably scaled), and
apply the three pigments to that. I've done this, converting the three
pigments to textures with
#declare Layer1P = pigment { ... }
#declare Layer2P = pigment { ... }
#declare Layer3P = pigment { ... }
#declare Layer1T = texture {
pigment { Layer1P }
finish { ambient 1 diffuse 0 }
}
#declare Layer2T = texture {
pigment { Layer2P }
finish { ambient 1 diffuse 0 }
}
#declare Layer3T = texture {
pigment { Layer3P }
finish { ambient 1 diffuse 0 }
}
and then applying Layer1T...Layer3T to the sphere using
sphere {
<0, 0, 0>,
1
hollow
texture { Layer1T }
texture { Layer2T }
texture { Layer3T }
scale 100000
}
The problem is that this does not produce a background that looks like the
sky_sphere with its three pigments (Layer1P...Layer3P). I can see all three
layers in both cases, but the image contrast in the sky_sphere version is
far better than for the layered texture sphere version - the sphere version
looks very "flat" by comparison. Some layers use filter, transmit or both
in the pigment. How can I make the sphere version look like the sky_sphere
version?
Thanks,
Tom
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <web.3d6202799e8fd800541c87100@news.povray.org>,
"Tom York" <tom### [at] compsoc man ac uk> wrote:
> The problem is that this does not produce a background that looks like the
> sky_sphere with its three pigments (Layer1P...Layer3P). I can see all three
> layers in both cases, but the image contrast in the sky_sphere version is
> far better than for the layered texture sphere version - the sphere version
> looks very "flat" by comparison. Some layers use filter, transmit or both
> in the pigment. How can I make the sphere version look like the sky_sphere
> version?
Hmm, I didn't even know sky_spheres supported layered pigments until I
looked at the source...
You are taking a bit of a roundabout way of creating the textured
sphere, but that shouldn't affect the results. Are all three pigment
layers partially transparent? Maybe you have a background color that is
visible through the sphere texture.
Most likely it is some difference between the sky_sphere layering of
pigments and the shape layering of textures, a bug or just a design
decision. You might be able to get better results by playing around with
the filter and transmit values.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tag povray org
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Shooting form the hip here but,
The Sky sphere is calculated for any ray the doesn't intersect anything
else. and while Im not sure of this I think it is a camera effect (i.e. the
sky will be the same regardless of camera location)
A "real" Sphere has a surface which calculus will tell appears flat at a
suitably large scale. in otherwords what you have done is to make the sky
a very high flat plain. try shrinking the sky and see if it doesn't look
better.
JFMILLER
"Tom York" <tom### [at] compsoc man ac uk> wrote in message
news:web.3d6202799e8fd800541c87100@news.povray.org...
> I have three pigments applied to a sky_sphere in conventional fashion.
Now,
> I'd like to replace the sky_sphere with a sphere (suitably scaled), and
> apply the three pigments to that. I've done this, converting the three
> pigments to textures with
>
> #declare Layer1P = pigment { ... }
> #declare Layer2P = pigment { ... }
> #declare Layer3P = pigment { ... }
>
> #declare Layer1T = texture {
> pigment { Layer1P }
> finish { ambient 1 diffuse 0 }
> }
>
> #declare Layer2T = texture {
> pigment { Layer2P }
> finish { ambient 1 diffuse 0 }
> }
>
> #declare Layer3T = texture {
> pigment { Layer3P }
> finish { ambient 1 diffuse 0 }
> }
>
> and then applying Layer1T...Layer3T to the sphere using
>
> sphere {
> <0, 0, 0>,
> 1
>
> hollow
>
> texture { Layer1T }
> texture { Layer2T }
> texture { Layer3T }
>
> scale 100000
> }
>
> The problem is that this does not produce a background that looks like the
> sky_sphere with its three pigments (Layer1P...Layer3P). I can see all
three
> layers in both cases, but the image contrast in the sky_sphere version is
> far better than for the layered texture sphere version - the sphere
version
> looks very "flat" by comparison. Some layers use filter, transmit or both
> in the pigment. How can I make the sphere version look like the sky_sphere
> version?
>
> Thanks,
>
> Tom
>
>
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3d62aed4@news.povray.org>,
"jfmiller" <jfm### [at] hotmail com> wrote:
> The Sky sphere is calculated for any ray the doesn't intersect anything
> else. and while Im not sure of this I think it is a camera effect (i.e. the
> sky will be the same regardless of camera location)
It is the same regardless of ray origin. It only uses the direction of
the ray. The color is taken from the point on a unit sphere where the
ray would point if its origin were < 0, 0, 0>, in other words the
direction is the evaluation point.
> A "real" Sphere has a surface which calculus will tell appears flat at a
> suitably large scale. in otherwords what you have done is to make the sky
> a very high flat plain. try shrinking the sky and see if it doesn't look
> better.
It appears flatter when you are on the surface of the sphere. We are
inside the sphere, very near the center. The bigger the sphere is, the
closer it will be to an "infinite sphere" with the ray origin at the
center, just like the sky_sphere background effect.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tag povray org
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I tested this using your syntax and two pigment/texture layers. I get
identical results for both the skysphere and the scaled sphere.
Could you post the exact pigments you are using?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike wrote:
>I tested this using your syntax and two pigment/texture layers. I get
>identical results for both the skysphere and the scaled sphere.
>
>Could you post the exact pigments you are using?
>
See
http://www.compsoc.man.ac.uk/~tomy/temp/skysphere.html
where there is a link to the problem code and four images (JPEGS totalling
~80KB) illustrating the problem.
The two images on the left of that page appear nearly identical; they use
layered textures (pigments) on the sphere (sky_sphere) that do not contain
any filtered transparency.
The two images on the right are identical to the first two except that they
use filtered transparency in the layered textures/pigments. There is an
obvious contrast difference.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I found the answer: The problem isn't with the sphere, it is with the
sky_sphere.
The sky_sphere does not handle filtered transparency. It acts as if you
specified rgbt even if you use rgbf. If you specify both (rgbft) then the
sky_sphere adds the two values together and treats the sum as rgbt.
So your textures were working correctly on the sphere, they were NOT
working correctly on the sky_sphere!
Examples of how sky_sphere apparently reads colors:
rgbt<0, 0, 0, 1> = rgbt<0, 0, 0, 1>
rgbf<0, 0, 0, 1> = rgbt<0, 0, 0, 1>
rgbft<0, 0, 0, 0.4, 0.6> = rgbt<0, 0, 0, 1>
rgbft<0, 0, 0, 0.1, 0.5> = rgbt<0, 0, 0, 0.6>
!!!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike wrote:
>I found the answer: The problem isn't with the sphere, it is with the
>sky_sphere.
>
>The sky_sphere does not handle filtered transparency. It acts as if you
>specified rgbt even if you use rgbf. If you specify both (rgbft) then the
>sky_sphere adds the two values together and treats the sum as rgbt.
> So your textures were working correctly on the sphere, they were NOT
>working correctly on the sky_sphere!
I tried converting the textures applied to the sky_sphere by adding the
filter/transmit channel values for the pigments I was using. I fail to
duplicate the results, possibly because one of the pigment entries has 1 in
both filter and transmit; adding them together as a transmit value seems to
make the pigment brighter.
This behaviour does seem a little bizarre; reviewing the POVRay 3.5
documentation, I found no mention of this problem. Could it be connected
with the changes that were made to correct the behaviour of filter and
transmit in layered textures? Maybe the fixes were applied to ordinary
layered textures but not to the layered pigments of sky_sphere?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <web.3d663ce5f0f0662ecd15d6aa0@news.povray.org>,
"Tom York" <tom### [at] compsoc man ac uk> wrote:
> This behaviour does seem a little bizarre; reviewing the POVRay 3.5
> documentation, I found no mention of this problem. Could it be connected
> with the changes that were made to correct the behaviour of filter and
> transmit in layered textures? Maybe the fixes were applied to ordinary
> layered textures but not to the layered pigments of sky_sphere?
I think this is what happened, the sky_sphere code is completely
separate from the layered texture code, and I don't think the
possibility of layering sky_sphere pigments is well known...at least, I
didn't know about it. It probably just got overlooked.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tag povray org
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |