My second attempt to create an AVS. Apart from linear algebra I don't know zip about visualizations. Linear algebra seems to be usefull. Check the AVS out and let me know what you think!
/Spetz Naz
PS. It is not a zip file, remove ".zip" and load the file in winamp. DS.
Awsome AVS!
65 posts
OK, please dont do that fake file extension thing, its just a big pain in the ass
www.winzip.com <-just use that
aside from that, it looks nice (i really like the spring) gj
i really dont know much more than linear geometer (i am in algebra II right now) but i think you dont need much more help 👍 keep up the good work
www.winzip.com <-just use that
aside from that, it looks nice (i really like the spring) gj
i really dont know much more than linear geometer (i am in algebra II right now) but i think you dont need much more help 👍 keep up the good work
Hey man, nice second atempt. A lot better than mine.
Originally posted by KarnovThanx a lot, it feels nice that some old math can be used to create interesting thingies. By the way, if you take a look at the Super Scope for the spring, the most vital part of it is the 3D rotational matrix (same goes for the rotating graph, there you have 2d rotational matrix). The spring itself can be exchanged for any other 3d object, the matrix stays invariant. Just create another 3d object and give it a spin using the matrix (x, y assignmenst). By the way the matrix is a product of two matrices, 3d rotational matrix and a 2d projection matrix, however the only thing 2d matrix does is to omitt the z coordinate in the final plot.
aside from that, it looks nice (i really like the spring)
keep up the good work
Originally posted by Karnov
OK, please dont do that fake file extension thing, its just a big pain in the ass
www.winzip.com <-just use that
G man, I haTe winzip, winrar is faster, better, more flexible and so on. Winzip is like realplayer, to popular with out being the best. Is it possible to submitt *.rars?
/Spetz Naz
------
All your bases are belong to us...
Attach file:nope, RAR is not acceptable
Maximum size: 102400 bytes
Valid file extensions: gif jpg png txt zip bmp jpeg wsz wal m maki
just becuase you have a personal quandry with a program (as crappy as it may be) doesnt mean you shouldnt use it 🙂
What, you expect us to go into the chore of changing our view settings just so we can delete the fake extention you used on something you wanted us to watch, just because you don't like WinZIP? And ZIP format IS the best format around because it IS more popular. Just like PCs. Macs are more stable and overall better computers, but they're not the best ones to buy because they don't have as much software for them. Other compression formats may make the file smaller, but either a) take longer to make or b) are not supported by sites like, say, WINAMP. Besides that, it takes you all of one minute to make the ZIP file (maybe 5 if you're looking for a compressor), and probably longer to make the fake extention. So WHY NOT?!
AVS-wise, the DDM is a rip (Tag-Bitter Paper), the beat-response is temporary and static, and your code is horribly unoptimized. Your spiral doesn't change it's rotation and it's a forward (orthogonal) projection, which is not the preferred method of 3D rendering. Otherwise, a fairly good preset, but it REALLY needs to be more dynamic.
AVS-wise, the DDM is a rip (Tag-Bitter Paper), the beat-response is temporary and static, and your code is horribly unoptimized. Your spiral doesn't change it's rotation and it's a forward (orthogonal) projection, which is not the preferred method of 3D rendering. Otherwise, a fairly good preset, but it REALLY needs to be more dynamic.
i concur.
{note period]
{note period]
When I see the words 'Awesome AVS' I expect my eyes to start bleeding upon watching it, this didn't happen. I felt gutted, robbed, dissapointed and denied.
The preset is alright but a spiral isn't technically impressing and you should use a perspective projection for your 3d code, it makes it look more far more 3 dimensional. Something like:
http://www.deviantart.com/deviation/603764
http://www.deviantart.com/deviation/722676
http://www.deviantart.com/deviation/386803
http://www.deviantart.com/deviation/330228
http://www.deviantart.com/deviation/545801
http://www.deviantart.com/deviation/460418
http://www.deviantart.com/deviation/674054
http://www.deviantart.com/deviation/720677
http://www.deviantart.com/deviation/660561
http://www.deviantart.com/deviation/680790
The preset is alright but a spiral isn't technically impressing and you should use a perspective projection for your 3d code, it makes it look more far more 3 dimensional. Something like:
If you want to see some really awesome avs (and rip them apart to learn, but don't steal code) here are some eye-bleeders, and there are plenty more out there too.
x=x1/(1+z1*0.5);
x=y1/(1+z1*0.5);
http://www.deviantart.com/deviation/603764
http://www.deviantart.com/deviation/722676
http://www.deviantart.com/deviation/386803
http://www.deviantart.com/deviation/330228
http://www.deviantart.com/deviation/545801
http://www.deviantart.com/deviation/460418
http://www.deviantart.com/deviation/674054
http://www.deviantart.com/deviation/720677
http://www.deviantart.com/deviation/660561
http://www.deviantart.com/deviation/680790
Originally posted by Aterostuart, spetz nas has a point, winrar is better, it compresses so much better than winzip (i've checked that myself), but spetz naz, if using winrar, you can make zips with it (at least in winrar3), so...yeah, deal with it
And ZIP format IS the best format around because it IS more popular.
what are we arguing about?
hey, people, this is a useless conversation.
What does it matter if someone adds a WinRar file?
Who cares if WinZip is better or not?
The most presets will never be larger than perhaps 20Kb, it doesn't matter how far it's compressed.
gee...
hey, people, this is a useless conversation.
What does it matter if someone adds a WinRar file?
Who cares if WinZip is better or not?
The most presets will never be larger than perhaps 20Kb, it doesn't matter how far it's compressed.
gee...
Relax...
Ok ok guys... don't kille me for that extension thing, I will use the zip format (yack..)!
The word "awsome" was used with a bit of irony. Should I have written: "Unoptimized, fake extension, noob AVS!"? 🙂
DDM... 🙂 Grab the new version...
BTW, what is the 3d perspective fuzz? The 3D matrix reflects the nature of projection in RL, doesn't it? That was my goal, lets stay REAL 🙂 (But I agree, it can be cool with a "fish-eye" effect, where the projection of the spring is magnified when the spring is near the xy plane. If some one wants to modify my preset with "fish-eye" optics and post it here, go ahead)
Regarding optimazation, ok, you HAVE a point, but i HAVE something better... a p4@2.4 GhZ 🙂 Ok.. ok, I know, some people use their 486dx2-66Mhz... I have cleaned upp a little 🙂
/Spetz
Ok ok guys... don't kille me for that extension thing, I will use the zip format (yack..)!
The word "awsome" was used with a bit of irony. Should I have written: "Unoptimized, fake extension, noob AVS!"? 🙂
DDM... 🙂 Grab the new version...
BTW, what is the 3d perspective fuzz? The 3D matrix reflects the nature of projection in RL, doesn't it? That was my goal, lets stay REAL 🙂 (But I agree, it can be cool with a "fish-eye" effect, where the projection of the spring is magnified when the spring is near the xy plane. If some one wants to modify my preset with "fish-eye" optics and post it here, go ahead)
Regarding optimazation, ok, you HAVE a point, but i HAVE something better... a p4@2.4 GhZ 🙂 Ok.. ok, I know, some people use their 486dx2-66Mhz... I have cleaned upp a little 🙂
/Spetz
Originally posted by AteroI don't agree
AVS-wise, the DDM is a rip (Tag-Bitter Paper),
That's just the standard line you get when you add a new DDM,
just like the spiral you get when adding a new SSC
The 'whole perspective fuzz' is that in real life things look smaller the further away from you they are. The projection method you used is an orthogonal projection which keeps everything looking the same size regardless as to how far away it is. Like the XY view in Radiant or 3DS Max, or like they use in a lot of CAD programs, orthogonal projection is a tool for 3D editing and not for 3D graphics. The matrix you are using only does rotation.
Here is your spring modified to use perspective projections.
Here is your spring modified to use perspective projections.
Originally posted by jherikoMy eyes bleed! (UnConeD-Reflectocube.avs, etc...)
http://www.deviantart.com/deviation/603764
http://www.deviantart.com/deviation/722676
http://www.deviantart.com/deviation/386803
http://www.deviantart.com/deviation/330228
http://www.deviantart.com/deviation/545801
http://www.deviantart.com/deviation/460418
http://www.deviantart.com/deviation/674054
http://www.deviantart.com/deviation/720677
http://www.deviantart.com/deviation/660561
http://www.deviantart.com/deviation/680790
So damn great!
WOW!
UnConed - Ph.D. in AVS? 😉
/Spetz
I think he deserves an honourary one, and EL-VIS too in my mind.
Originally posted by jherikoHi,
The 'whole perspective fuzz' is that in real life things look smaller the further away from you they are. The projection method you used is an orthogonal projection which keeps everything looking the same size regardless as to how far away it is. Like the XY view in Radiant or 3DS Max, or like they use in a lot of CAD programs, orthogonal projection is a tool for 3D editing and not for 3D graphics. The matrix you are using only does rotation.
Here is your spring modified to use perspective projections.
this is my point, is the expression physically consistent?
x=x1/(1+z1);
y=y1/(1+z1);
Or should you use:
x=x1/(1+z1/c);
y=y1/(1+z1/c);
where c is some positiv number, e.g. 2.
Is there a "universally" correct c for a projection?
/Spetz
The rendering yours uses, orthagonal, is where the viewing area, viewed top-down, is like this:
The fish eye effect is more complex to create, although it's the most accurate and infallible.
A better looking method, is linear projection, it creates a viewing 'frustrum' like this:
_____
| |
|___| x=x;y=y;
Where the tangent of half the viewing angle is used in the formula for FOV. This is NOT a fish eye effect. This effect does cause distortion at the edges of the view.
______
\ /
\__/ x=x/(z+fov);y=y/(z+fov);
The fish eye effect is more complex to create, although it's the most accurate and infallible.
I've said it before and I'll say it again, what we really need is
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
😁
Maybe someone could rip the method from the OpenGL source.
I think I might take a look for it in a bit.
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
😁
Maybe someone could rip the method from the OpenGL source.
I think I might take a look for it in a bit.
Jheriko, all that does is alter the texcoord grid calculation for mapping textures onto polygons. When set the fastest, there is no perspective correction, so the textures are mapped linearly, ie. good for 2d, as soon as it goes 3d, it looks like a PSX game. On nicest, essentially, it's per pixel transformed to z.
Linear:
z=1 z=0
| | | | |
Correct:
z=1 z=0
|| | | |
Interesting!
Ok, I surrender 🙂
I am using:
x=xr/(1+zr/c);
y=yr/(1+zr/c);
with c=1 and it looks OK. But there should be a way to get it more physically correct. By not using zr but for example a polynomial of zr (or what ever) that approximates the true distance dependence between zr and xr/yr, or the distance dependence it self if it can be expressed by a formula that is somewhat efficient to calculate.
Originally posted by Zevensoft
[/code]
A better looking method, is linear projection, it creates a viewing 'frustrum' like this:
______
\ /
\__/ x=x/(z+fov);y=y/(z+fov);
Ok, I surrender 🙂
I am using:
x=xr/(1+zr/c);
y=yr/(1+zr/c);
with c=1 and it looks OK. But there should be a way to get it more physically correct. By not using zr but for example a polynomial of zr (or what ever) that approximates the true distance dependence between zr and xr/yr, or the distance dependence it self if it can be expressed by a formula that is somewhat efficient to calculate.
Thnx...
Thank you all for your comments,
I have learned couple of things from this forum (especially when it comes not to throw over winzip), thx to you all 🙂. I have found it hard to find DDM's for the preset. Can any one tip what classes of function one should look at and what type of transitions they make? Unfortunatly I guess they are not always combine with each other, but any way, is there any strategy besides "trial and error"?
/Spetz
Thank you all for your comments,
I have learned couple of things from this forum (especially when it comes not to throw over winzip), thx to you all 🙂. I have found it hard to find DDM's for the preset. Can any one tip what classes of function one should look at and what type of transitions they make? Unfortunatly I guess they are not always combine with each other, but any way, is there any strategy besides "trial and error"?
/Spetz
There are a few links in UnConed's stick AVS FAQ. You might want to take a look.
DM WAS a rip, the normal line is different.
Spatz: Who are you doing AVS for, you, or the public? If it's for you then don't come here with them. Otherwise OPTIMIZE THEM. Major tip: Never do a calculation in a higher level block that you can do in a lower level block. e.g. if you have n=576 in anything lower than Init (beat, frame, or pixel), then you're doing that calculation more than you have to; the same goes for something like calculating sqrt(2) for every pixel - that's 576 calculations each frame where you only need to calculate it when you load the AVS. The order for number of calculations (lowest to highest) is Init->Beat->Frame->Pixel (same order as they're stacked on the superscope). Also never calculate the same thing more than once in each block.
New DM: T goes to a constant of about 0.8, a better line would be something like this (this is just random-ness):
frame:
t1=t1+0.06;
t=1.1*sin(t1);
t2=t*cos(pow(t1,1.2));
beat:
t1=t1-1;
pixel:
d=(asin(1.05*d)-sigmoid(t2,t))/2;
As for the spiral, try to use rotations around all 3 axes with dynamic changes in the rotation increments. Also, n (with returns for v) maxes out at 576 (12*12). Anything above that will get repeated returns for v, and a 'tail' at i=1 where v=about 0.2.
I attached a more dynamic straight spiral for you. It has single rotations around all 3 axes, initial position movements and pre-projection position movements, and very dynamic coloring (complete with psuedofog). The position and rotation changes on-beat, as well as the speed of each position movement and the speed of each rotation. It's carefully set so that it'll be a minimum of 1/9 away from the camera at all times (eliminating any division by zero or lines behind the camera). If you want I'll show you the derivation...
Aww, heck, I'll tell you anyway.
D (distance from the origin along the x/y plane) = v/2+0.1. If V=1, then D=1/2+0.1=0.5+0.1= 0.6. Z=i*2-1. If I=1, then Z=1*2-1=2-1= 1. Using the pythagorean theorem, we find the maximum distance from the origin along the unshifted shape is:
sqrt(1*1+0.6*0.6)=sqrt(1+3/5*3/5)=sqrt(1+9/25)=sqrt(25/25+9/25)=sqrt(34/25)=sqrt(34)/sqrt(25)= sqrt(34)/5.
Then, since the maximum possible initial shift is 1/3*, we add 1/3. And since the maximum possible pre-projection shift is 1/3, we add another 1/3. Therefore the maximum distance from the origin in the shifted shape is sqrt(34)/5+2/3=sqrt(34)/5+1.666...
For safety we pad this to sqrt(34)/5+1.7, even though the chances of v being 1 at the end of the superscope AND having the superscope rotated towards the camera AND having both the initial and pre-projection shifts BOTH equaling 1/3 is extremely minimal.
...Was that too much for everybody? 😛
Spatz: Who are you doing AVS for, you, or the public? If it's for you then don't come here with them. Otherwise OPTIMIZE THEM. Major tip: Never do a calculation in a higher level block that you can do in a lower level block. e.g. if you have n=576 in anything lower than Init (beat, frame, or pixel), then you're doing that calculation more than you have to; the same goes for something like calculating sqrt(2) for every pixel - that's 576 calculations each frame where you only need to calculate it when you load the AVS. The order for number of calculations (lowest to highest) is Init->Beat->Frame->Pixel (same order as they're stacked on the superscope). Also never calculate the same thing more than once in each block.
New DM: T goes to a constant of about 0.8, a better line would be something like this (this is just random-ness):
frame:
t1=t1+0.06;
t=1.1*sin(t1);
t2=t*cos(pow(t1,1.2));
beat:
t1=t1-1;
pixel:
d=(asin(1.05*d)-sigmoid(t2,t))/2;
As for the spiral, try to use rotations around all 3 axes with dynamic changes in the rotation increments. Also, n (with returns for v) maxes out at 576 (12*12). Anything above that will get repeated returns for v, and a 'tail' at i=1 where v=about 0.2.
I attached a more dynamic straight spiral for you. It has single rotations around all 3 axes, initial position movements and pre-projection position movements, and very dynamic coloring (complete with psuedofog). The position and rotation changes on-beat, as well as the speed of each position movement and the speed of each rotation. It's carefully set so that it'll be a minimum of 1/9 away from the camera at all times (eliminating any division by zero or lines behind the camera). If you want I'll show you the derivation...
Aww, heck, I'll tell you anyway.
D (distance from the origin along the x/y plane) = v/2+0.1. If V=1, then D=1/2+0.1=0.5+0.1= 0.6. Z=i*2-1. If I=1, then Z=1*2-1=2-1= 1. Using the pythagorean theorem, we find the maximum distance from the origin along the unshifted shape is:
sqrt(1*1+0.6*0.6)=sqrt(1+3/5*3/5)=sqrt(1+9/25)=sqrt(25/25+9/25)=sqrt(34/25)=sqrt(34)/sqrt(25)= sqrt(34)/5.
Then, since the maximum possible initial shift is 1/3*, we add 1/3. And since the maximum possible pre-projection shift is 1/3, we add another 1/3. Therefore the maximum distance from the origin in the shifted shape is sqrt(34)/5+2/3=sqrt(34)/5+1.666...
For safety we pad this to sqrt(34)/5+1.7, even though the chances of v being 1 at the end of the superscope AND having the superscope rotated towards the camera AND having both the initial and pre-projection shifts BOTH equaling 1/3 is extremely minimal.
...Was that too much for everybody? 😛
Jawohl herr Kommendant!
Originally posted by AteroYou are too harsh mister, make love, not war... Who are you to decide where I put my crappy unoptimized code? But basically I agree, calculations should be optimized.I have very tight AVS-release scedule, didn't have time to do it properly 🙂
DM WAS a rip, the normal line is different.
Spatz: Who are you doing AVS for, you, or the public? If it's for you then don't come here with them.
Originally posted by AteroYes, I agree, my DDM opens up a "wheel" initially when the preset is created and then it settles, you are absolutely correct. Yes, the DDM could be improved to something more "spectacular", I agree with you, thx for your suggestion. I really think that creating good DDM is really hard and requeres experince. That, among other stuff, aparts us mortal, from the AVS-gurus.
New DM: T goes to a constant of about 0.8, a better line would be something like this (this is just random-ness):
frame:
t1=t1+0.06;
t=1.1*sin(t1);
t2=t*cos(pow(t1,1.2));
beat:
t1=t1-1;
pixel:
d=(asin(1.05*d)-sigmoid(t2,t))/2;
I have very tight AVS-release scedule
What in the hell??!?!?!?
How backasswards are you?
Jesus, unless you are doing these for profit, (which i do not think is legal)you have some serious "goal" issues.
O.K. I'm done.
Just don't put yourself on scheduals for things that do not be schedualed.
Gawd. That is weird stuff.
Whoops, I said I was done.
Originally posted by KarnovLOL 😁 ... Can you spell the word "joke"? You really think I have an AVS-release scedule? OMG!!! 🧟
What in the hell??!?!?!?
How backasswards are you?
Jesus, unless you are doing these for profit, (which i do not think is legal)you have some serious "goal" issues.
O.K. I'm done.
Just don't put yourself on scheduals for things that do not be schedualed.
Gawd. That is weird stuff.
Whoops, I said I was done.
/S
i feel like a flipping moron
well, in context it sounded like u werent just messing around.
and there are people out there who are anal retentive about "goals" and "dreams" and the such
they have planners and stuff
they are a bad, bad, people
viva la procrastination!
DoH! 🧟
well, in context it sounded like u werent just messing around.
and there are people out there who are anal retentive about "goals" and "dreams" and the such
they have planners and stuff
they are a bad, bad, people
viva la procrastination!
DoH! 🧟
with c=1 and it looks OK. But there should be a way to get it more physically correct. By not using zr but for example a polynomial of zr (or what ever) that approximates the true distance dependence between zr and xr/yr, or the distance dependence it self if it can be expressed by a formula that is somewhat efficient to calculate.I don't understand what you mean with this. This *is* physically correct. You seem good at maths, so try to calculate this: the projection of a point onto a plane, by connecting it with an eye point and using the intersection point of that connecting line with the plane as projection.
If you place the eye in (0,0,0) and use the plane z=1 as your projection plane, then the projected coordinates of (x,y,z) are:
(x/z, y/z, 1).
Placing the eye at an infinite distance results in an orthogonal projection (like you had first).
Unless you want to simulate actual lenses like in a camera, but you'd probably need a complicated raytracing approach then.
No one's commented on how uber-fucking-1337 my spiral is :P j/k
Spetz (sorry about the mispeeling): I'm serious. Things like coming out with a preset that's a pain in the ass to prepare to view and saying that it's unoptimized because you've got a better processor just makes it look like you don't care what other people think about your presets (in other words you're making an ass of yourself).
Spetz (sorry about the mispeeling): I'm serious. Things like coming out with a preset that's a pain in the ass to prepare to view and saying that it's unoptimized because you've got a better processor just makes it look like you don't care what other people think about your presets (in other words you're making an ass of yourself).
Originally posted by UnConeDHi UnConed,
I don't understand what you mean with this. This *is* physically correct. You seem good at maths, so try to calculate this: the projection of a point onto a plane, by connecting it with an eye point and using the intersection point of that connecting line with the plane as projection.
If you place the eye in (0,0,0) and use the plane z=1 as your projection plane, then the projected coordinates of (x,y,z) are:
(x/z, y/z, 1).
Placing the eye at an infinite distance results in an orthogonal projection (like you had first).
Unless you want to simulate actual lenses like in a camera, but you'd probably need a complicated raytracing approach then.
first of all, prior to comenting what you have written regarding the distance scaling, let me express what I felt the first time I saw your AVS work. You are not only technacally skilled guy with a stable grasp of your math, you are also very innovative art creator with feeling for detail and beauty. Most people don't combine these attributes to well, RESPECT. (Also, in a way, you are promoting math as the knowledge of coolness. Now that IS magic! RESPECT^2!)
Now, now that I have looked into to this, I realised that you are completelly correct, the projection of an arbitrary (x,y,z) to a plain z=1 is (x/z,y/z,z). And that is easy to derive too. (Looking at x (y is similar), I just used the triangle-proportion ratio the x/z = x2/1. If the plane is elevated, "1" is replaced by the corresponding elevation hight in z). I intuitivelly knew that the correct projection on x and y generates symmetrically smaller values for x and y, I didn't thought it was that easy. Life seems to be simpler than I think, time to reevaluate my assumptions 🙂
/Spetz - Optimizer Bunny