Archive: The choice is yours...


3rd October 2002 19:29 UTC

The choice is yours...
I've been starting on a new pack, well, not a fully new pack, basically the first pack without those sh!tty crap-presets and just nice and dynamic presets like 'optical ring' but i can't decide what intro to use...
I have attached two, a straight left/right one and a more twisting one.

I will probably change it a bit (the text anyway) but that's nothing to do with the basics...


3rd October 2002 23:16 UTC

no offense, but neither. Both have the text taking forever to change, and it looks bad with multiple words on the screen imo. Maybe you could have sorta the same effect with a scroll or something. Either that or less words...


4th October 2002 00:47 UTC

Okay, both of those were a bit skanky in my opinion. I've seen quite a few of your presets and I know that you can do much better than this.

Just take your time and don't rush to get your pack out, I'm sure you can come up with something good. (hopefully involving some clever superscope work and maybe even some custom coded movements and dms)

Keep on making those presets.


4th October 2002 08:48 UTC

ok, you convinced me and i think you are right.

Although i will not do any 3D programming (i think it is not right to start 3d programming if you don't know everything about 2d) but i will create something better...

And did't intend to rush to finish it anyway, i just felt like making the intro, i need to make more presets for the pack or else it won't be much... So you will have to wait for that pack anyway. I guess it will take about half a month at least, but no promisses are given.

THNX


4th October 2002 14:21 UTC

If I were you I'd try some 3d anyway, simply because if you know the basics of 2d and how to make 3d then they are both essentially the same so learning something that applies to one can often be transfered to the other.


6th October 2002 15:23 UTC

Okay, Jheriko, i started messing around with the 3d-effect but i ran into some problems. The DDM doesn't seem to give any problems anymore - see attached infinity symbol. But i still can't get that SSC working properly... I also added the best attempt with it, but it stays flat, no matter what i change. Some advise please.
everybody is welcome to respond.


6th October 2002 15:59 UTC

Well, In your spiral, you're not using a z value at all. You're only working with x and y.

When you make 3D stuff, the hard part is setting up the points, because you can't keep the z value for each point from one frame to the next. The easiest way is to develop an algorithm for your shape and stick that right at the beginning of the per frame section.

Here's some stuff that may help.


6th October 2002 17:11 UTC

Okay. Making a true 3d superscope isn't that hard when you know the maths behind it and what to do to put it into code. Your infinity symbol was pretty good but didn't use a real 3d projection but rather some trig tricks to make it look that way.

The basic tool for making a 3d superscope is the 3d perspective projection.

x=x1/(dst+sc*z1);
y=y1/(dst+sc*z1);

where x1,y1,z1 are the 3d co-ordinates, dst is the distance into the screen that you want z1=0 to be at and sc is the scale factor of z1 which changes how drastic the perspective is. If you make sc smaller you get closer to an orthogonal projection with no perspective, if you make it larger you get more and more perspective. I usually use something like dst=2 or 3 and sc=0.5 or 1, since these ranges tend to work best for my superscopes.

The next thing that you need to do to add some more complexity to the 3d scopes is to rotate them around the axes. Mathematically we rotate the points around each axes by multiplying the original position vector by rotation matrices to give a final vector position. Rather than confusing you with the maths behind it I'll just go through the code.

To be more efficient (since the rotation is going to be the same for each point) we place cx=cos(rx);sx=sin(rx);cy=cos(ry);sy=sin(ry);cz=cos(rz);sz=sin(rz); into the frame box, where rx,ry and rz are the angles of rotation around the x,y and z axis.

We then to the rotations (before the perspective calculation) in three steps rotating around the x, y, and the z axes. The order isn't vitally important but it is the norm to rotate arond z first and x last.

we rotate around z with

x2=x1*cz-y1*sz;
y2=x1*sz+y1*cz;

since we are rotating around z the z value doesn't change

then y with

x3=x2*cy+z1*sy;
z2=-x2*sy+z1*cy;

then x with

y3=y2*cx-z2*sx;
z3=y2*sx+z2*cx;

you then plug x3,y3 and z3 into the perspective transormation in place of x1,y1 and z1.

If you open jaheckelsafar's box or anyshape and look at the code he has done something very similar except that he has only rotated around two axes. Presumably he has done this because it is faster and because you can orient a shape in any direction by rotating around just two out of the three axes anyway.

Using all of that code that i described above you can just insert x1,y1 and z1 at the top as though they were the usual x and y.

So you could do something like z1=2*i-1;y1=i;x=v*0.2; and it would work.

I've attached a simple example of this for you to pick apart or just steal wholesale.


7th October 2002 05:22 UTC

Actually, I did it because I figured why bother rotating around 3 axes when I can get the effect I want with 2? Besides, it makes more sense to me.


7th October 2002 14:27 UTC

Using two rotations is natural for cameras and people. In games like quake, the camera only rotates around the vertical axis (turning around) and the horizontal axis (looking up/down). The depth axis causes the camera to roll around (tilting your head sideways), which is usually not needed.

However, usually things look a lot better and more dynamic with 3 rotations.