![](/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 must admit I've been playing with monsters lately, and it's been lots
of fun! Please note the scaled spheres under the eye balls and how they
are not rotated correctly to lay on the surface of the large sphere. I
haven't been able to figure out how to do this properly yet. Any
pointers or suggestions would be greatly appreciated!
Post a reply to this message
Attachments:
Download 'eyesphere.jpg' (218 KB)
Preview of image 'eyesphere.jpg'
![eyesphere.jpg](/povray.binaries.images/attachment/%3C44a74506%40news.povray.org%3E/eyesphere.jpg?ttop=443866&toff=4350&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Artemia Salina wrote:
> Please note the scaled spheres under the eye balls and how they
> are not rotated correctly to lay on the surface of the large sphere. I
> haven't been able to figure out how to do this properly yet.
I should've mentioned that I placed the small spheres and eye balls on
the large shpere using the trace function. As I say I'm having a hard
time calculating the correct rotation angles to have the small spheres
lay flat on the large sphere (if they were cylinders they would radiate
outward from <0,0,0>)
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) |
Hi,
rotate your objects by
rotate <degrees (atan2 (Norm.z,Norm.y)),0,-degrees (atan2 (Norm.x,Norm.y))>
..
IIRC you need #include "functions.inc" too.
Norbert Kern
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) |
On Sun, 02 Jul 2006 01:56:04 -0400, Norbert Kern wrote:
> Hi,
> rotate your objects by
> rotate <degrees (atan2 (Norm.z,Norm.y)),0,-degrees (atan2 (Norm.x,Norm.y))>
> ..
> IIRC you need #include "functions.inc" too.
Thank you Norbert, I'll try that.
--
Today's Alliterative Monomania Headlines:
Ecliptic Easterling Earthworm Elegantly Enharbors Ecaudate Earthbank
Wallachian Wagnerian Whist Whizzingly Washes Welsbach Weismannism
Wide-angle Wallachian Waler Waitingly Whipsaws Wagnerian Wait-a-while
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) |
Freaky little lady you!
Well done, but I wonder if you could add some muscles or venes to the
surface of the main sphere. An idea for that: using blobs or using
sphere_sweeps. And getting some more items onto the surface of the main
body, such as here and there along thin arm, some walking tentacles below,
some cruely singing mouths, and so. Maybe some nostrils or other items. Some
semi-transparent organic sackets filled with some yellow liquid at the
outside, uhh!
Put some irregularity to the eyes - some bigger, some smaller. And prevent
that they are arranged in such a sorted way - use irregularity again.
Best greetings,
Sven
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) |
On Sun, 02 Jul 2006 13:23:35 +0200, Sven Littkowski wrote:
> Freaky little lady you!
I'm a guy :-)
(Don't feel bad, I get that all the time)
> Well done, but I wonder if you could add some muscles or venes to the
> surface of the main sphere.
Yes, this scene is far from being done. I mainly posted it to show the
problem I'm having rotating the pieces to sit on the sphere properly.
I'd eventually like to have optical cords dangling off of the backs of the
eyes that would attach to the main sphere like tree roots.
> An idea for that: using blobs or using sphere_sweeps. And getting some
> more items onto the surface of the main body, such as here and there
> along thin arm, some walking tentacles below, some cruely singing
> mouths, and so. Maybe some nostrils or other items.
You're reading my mind! :-)
> Some semi-transparent organic sackets filled with some yellow liquid at the
> outside, uhh!
I hadn't thought of that but it sounds gross! (which is GOOD!)
I tried Norbert's suggestion last night (see his article in this thread)
and it didn't work. I played with swapping the sign for the x and z axes
but still no luck.
You suggest using blobs or other odd shapes for the main body and doing so
will make it much more difficult to orient the smaller parts to it. I
thought perhaps that since the trace() function was already shooting rays
at the base object there would be some algorithmic way to use information
returned from trace() to orient the smaller objects on the base object.
I'd like to find an example scene that does that.
--
Today's Alliterative Monomania Headlines:
Knarred Knotted Koel Kneadingly Knits Kiby Kirk
Radio-active Retrousse Router Representatively Radiographs Retrousse Rancheria
Up-over Unpardonable Upsilon Unerringly Underruns Upright Urethane
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) |
Artemia Salina <y2k### [at] sheayright com> wrote:
> I tried Norbert's suggestion last night (see his article in this thread)
> and it didn't work. I played with swapping the sign for the x and z axes
> but still no luck.
It should work, believe me!
Here a bit more code, which shows what I mean -
#declare Norm = <0,0,0>;
#declare loc = trace (M1, start, <0,0,0>, Norm);
#if (vlength(Norm) != 0)
object {
eye
rotate <degrees (atan2 (Norm.z,Norm.y)),0,-degrees (atan2
(Norm.x,Norm.y))>
translate loc
}
#end
If the difficulties persist, please post the relevant code part.
Norbert Kern
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) |
On Sun, 02 Jul 2006 16:50:23 -0400, Norbert Kern wrote:
> Artemia Salina <y2k### [at] sheayright com> wrote:
>
>> I tried Norbert's suggestion last night (see his article in this thread)
>> and it didn't work. I played with swapping the sign for the x and z axes
>> but still no luck.
>
> It should work, believe me!
> Here a bit more code, which shows what I mean -
>
> #declare Norm = <0,0,0>;
> #declare loc = trace (M1, start, <0,0,0>, Norm);
Oh, I think I see what's going on. Instead of <0,0,0> for the direction
vector I'm using <0,0,-1>! I don't know how or why I did that. I'll retry
with your suggestion, Norbert.
Thanks again for the assistance!
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) |
My fault, <0,0,0> doesn't work!
I don't know, how you come to your start coordinates for trace (start), but
if the base sphere is centered at <0,0,0>, the direction has to be -start.
Norbert Kern
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) |
On Sun, 02 Jul 2006 17:32:01 -0400, Norbert Kern wrote:
> My fault, <0,0,0> doesn't work!
> I don't know, how you come to your start coordinates for trace (start), but
> if the base sphere is centered at <0,0,0>, the direction has to be -start.
>
> Norbert Kern
Here's a the code that I'm using (with most texturing removed for clarity). The
RRand() just provides some irregularity to the final positioning of the eyes
and makes the eyeballs look in different directions (rotating them in their
sockets).
So Start would be
<-90, -90 (plus some randomness), 0>
And it would end the scanning at
<90 (plus some randomness), 90 (plus some randomness), 0>
++++++++++++
#declare BSB = sphere{0, 11 scale <1, 0.85, 1>};
#declare Norm = <0,0,0>;
#declare CntX = -90;
#declare CntY = -90;
#declare ZZ = <0,0,-1>;
#declare N1 = seed(12345);
#while(CntY < 90)
#while(CntX < 90)
#declare POSB = trace(BSB, <CntX, CntY + RRand(-0.95, 0.95, N1), 0>,
ZZ, Norm);
#if (!VZero(Norm))
merge{
object {Eye(Green*0.5, .70)
// Make eyes look in different directions
rotate <POSB.y*RRand(4, 20, N1), -POSB.x*RRand(4, 20,
N1), 0>
pigment{rgbt 1}
}
sphere{<0,0,0.55>, 0.75
texture{pigment{rgb <1, .9, .9>}}
// Flatten the spheres a bit
scale <1.3, 1.3, 0.95>
// This rotation was what I was using and it was
close:
// rotate <POSB.y*8, -POSB.x*8, 0>
rotate <degrees (atan2 (Norm.z,Norm.y)),0,-degrees
(atan2(Norm.x,Norm.y))>
}
translate POSB
}
#end
#declare CntX = CntX + 3 + RRand(-0.55, 0.55, N1);
#end
#declare CntX = -90;
#declare CntY = CntY + 2;
#end
--
Today's Alliterative Monomania Headlines:
Laputan Laryngeal Law-fall Liquidly Litters Lachrymary Law-fall
Degloried Deflective Decession Disfavorably Disincorporates Dihedral Decahedron
Redivivus Rapid-fire Refait Retroactively Roentgenizes Retrousse Redif
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) |