![](/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) |
In article <3b463501@news.povray.org>, Warp says...
> The image is made entirely with (hand-coded) POV-Ray code and one render,
> and no external files. All the objects in the image are real 3D primitives
> and all textures are regular POV-Ray procedural textures (eg. no image maps
> nor anything).
>
You have used an orthogonal camera?
--
Regards, Sander
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 <MPG### [at] NEWS POVRAY ORG>, Sander says...
> In article <3b463501@news.povray.org>, Warp says...
> > The image is made entirely with (hand-coded) POV-Ray code and one render,
> > and no external files. All the objects in the image are real 3D primitives
> > and all textures are regular POV-Ray procedural textures (eg. no image maps
> > nor anything).
> >
> You have used an orthogonal camera?
>
If I draw a triangle called A aroud the "impossible triangle" and I
rotate a copy of this triangle, called B, 120 degrees, B nearly
perfectly overlaps A. This can only be so if you use an orthogonal
camera, right?
--
Regards, Sander
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 <3b463501@news.povray.org>, Warp says...
> The image is made entirely with (hand-coded) POV-Ray code and one render,
> and no external files. All the objects in the image are real 3D primitives
> and all textures are regular POV-Ray procedural textures (eg. no image maps
> nor anything).
>
If you call the four "vertical" cubes for the sake of argument from top
to bottom a, b, c, and d, then c throws a shadow onto d, but a does not
onto b and b does not onto c. This is unreal, so here must lie the
sulution. I still don't see it, however. Clever!
--
Regards, Sander
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) |
Sander <san### [at] stols com> wrote:
: If I draw a triangle called A aroud the "impossible triangle" and I
: rotate a copy of this triangle, called B, 120 degrees, B nearly
: perfectly overlaps A. This can only be so if you use an orthogonal
: camera, right?
You are getting closer.
--
#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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Sander <san### [at] stols com> wrote:
: If you call the four "vertical" cubes for the sake of argument from top
: to bottom a, b, c, and d, then c throws a shadow onto d, but a does not
: onto b and b does not onto c. This is unreal, so here must lie the
: sulution. I still don't see it, however. Clever!
I just applied no_shadow to some of the cubes to avoid annoying shadows.
--
#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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Warp" <war### [at] tag povray org> wrote in message
news:3b46fdb6@news.povray.org...
> Sander <san### [at] stols com> wrote:
> : If I draw a triangle called A aroud the "impossible triangle" and I
> : rotate a copy of this triangle, called B, 120 degrees, B nearly
> : perfectly overlaps A. This can only be so if you use an orthogonal
> : camera, right?
>
> You are getting closer.
From what I remember of this triangle, it's the angle that it's viewed
at that produces the illusion. I suspect that if you change the camera angle
on this image, you would have an entirely different view of it, ie,
something like two upright bars at opposing 45 degree(?) angles, at the end
of a horizontal bar at the base?
Close Warp? It's doing my head in! ;)
Great image though.
~Steve~
>
> --
> #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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
The most obvious trick in the image is, of course, the triangle itself
(one of the cubes is clipped by a plane so that the cube right behind it
shows up; also some of the cubes have a no_shadow applied to them in order
to avoid annoying and even revealing shadows).
The other trick is, however, more difficult to see, and it's the apparent
perspective of the image.
The camera is orthographic, so the perspective is fake.
The pattern on the floor is not a gradient pattern, as it may seem, but
actually a radial pattern. The other cubes in the image are rotated so that
the look like they were "distorted" by the perspective althought they aren't.
The cube on the right is actually the intersection of two superellipsoids.
--
#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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Clever!
I was trying to work out how you'd corrected the perspective on the triangle, so
all cubes appeared the same, but it never occured to me that you'd done the
exact opposite!
BTW, what's the texture on the cubes? It's pretty interesting.
--
Tek
http://www.evilsuperbrain.com
Warp <war### [at] tag povray org> wrote in message news:3b471b43@news.povray.org...
>
> The most obvious trick in the image is, of course, the triangle itself
> (one of the cubes is clipped by a plane so that the cube right behind it
> shows up; also some of the cubes have a no_shadow applied to them in order
> to avoid annoying and even revealing shadows).
>
> The other trick is, however, more difficult to see, and it's the apparent
> perspective of the image.
> The camera is orthographic, so the perspective is fake.
> The pattern on the floor is not a gradient pattern, as it may seem, but
> actually a radial pattern. The other cubes in the image are rotated so that
> the look like they were "distorted" by the perspective althought they aren't.
> The cube on the right is actually the intersection of two superellipsoids.
>
>
> --
> #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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Tek <tek### [at] evilsuperbrain com> wrote:
: BTW, what's the texture on the cubes? It's pretty interesting.
It's just a granite pigment with the same granite normal with a "sine wave"
slope map..
--
#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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
>
> The impossible triangle with cubes was first invented by the
> Swedish artist Oscar Reutersvard back in 1934.
>
> This image has two tricks. The first one is obvious (the triangle). But
> there's another trick which may not be obvious. Can you guess what it is?
The triangle is orthographic and the rest is not?
--
David Fontaine <dav### [at] faricy net> ICQ 55354965
My raytracing gallery: http://davidf.faricy.net/
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) |