Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > plasma ?? what is it
2008-06-22 08:33
turtle
Account closed

Registered: Mar 2005
Posts: 44
plasma ?? what is it

someone who can explain what plasma is? certainly many who wonder what it is =)

is it real time ?

or

 
... 40 posts hidden. Click here to view all posts....
 
2008-06-25 15:42
chatGPZ

Registered: Dec 2001
Posts: 11386
it really depends on your definition of "better" =) generating will always give you "perfect" dithered chars, but especially with effects like plasmas, where often the gradients are quite "sharp" they seem to show block artefacts more than other methods....

oh and well, i'd also recommend to not only play around with the usual dither characters (boooooring =P) - play with other stuff too, just as small animations (spinning thingies, jumping dots, deforming circles...whatever you can think of) which sometimes give very interisting results.
2008-06-25 15:51
Luca

Registered: Apr 2002
Posts: 178
Quote: it really depends on your definition of "better" =) generating will always give you "perfect" dithered chars, but especially with effects like plasmas, where often the gradients are quite "sharp" they seem to show block artefacts more than other methods....

oh and well, i'd also recommend to not only play around with the usual dither characters (boooooring =P) - play with other stuff too, just as small animations (spinning thingies, jumping dots, deforming circles...whatever you can think of) which sometimes give very interisting results.


Yeah did'em too (although 16 chars deep only), but I really need the classic boring dithering, because I'm managing an ECM plasma, and colours really have to merge together. I'm just happy of the result, and it runs realtime and fullscreen at 2.5 frames, but hey, 64 chars deep dithering would be better anyway! =)
2008-06-25 15:55
Luca

Registered: Apr 2002
Posts: 178
Ouch! What a damn stupid I am: if I apply a black-to-white linear gradient, it has to be not on 32 chars, but on 33 (the white one!).
2008-06-25 16:59
Oswald

Registered: Apr 2002
Posts: 5094
Luca, for ECM plasma you should go through smash demos and ripp one from one of them :)
2008-06-25 17:40
Graham
Account closed

Registered: Dec 2002
Posts: 990
Better rip the original: Produkthandler Kom Her
2008-06-25 18:08
Luca

Registered: Apr 2002
Posts: 178
Oh, no no, why? I'm so proud of my lil' hue-cycling 9 colours realtime fullscreen ECM plasma on Plus/4 (but easy to port on C64 too)! =)
After the 64 chars cure, now it looks this way:
ecm_plasma_prv.wmv - 2.73MB
2008-06-25 18:19
Oswald

Registered: Apr 2002
Posts: 5094
wow, didnt know +4 has ecm :) a plasma should look really nice with some palette cycling :) tho 2.5 frame sounds pretty slow. use Graham's trick to add up the sines: lda (zppointertochartable+sine1+sine2),sine3+sine4 ;)
2008-06-26 12:49
Shadow
Account closed

Registered: Apr 2002
Posts: 355
I am intrigued by that 'Graham optimization' but I don't quite understand what that piece of pseudo code represents.

If we step away from ECM and goes to a normal, 8x8 char plasma with a wraparound charset, my routine looks like this:

Drawing routine (unrolled for each char on screen):

lda sinea+0
adc sineb+0
sta $0400+40*0+0
lda sinea+1
adc sineb+0
sta $0400+40*0+1
...

sine update routine (unrolled 256 times):

lda sine1+0,x
adc sine2+0,y
sta sinea+0
lda sine3+0,x
adc sine4+0,y
sta sineb+0
lda sine1+1,x
adc sine2+1,y
sta sinea+1
...

How would the 'Graham optimization' come into play here, or is it only applicable in ECM (where you do a table lookup before placing chars)
2008-06-26 16:52
Oswald

Registered: Apr 2002
Posts: 5094
with your labels it is: lda (sinea),sineb you have the (),y adressing mode do the addition.

you setup a bunch of zp pointers so, that the high byte points to your palette which is page aligned, and it either contains colors or in case of charmode: 0,1,2,3,... or 0,0,1,1.... etc. you get the idea.

the low byte contains your prepared sinea values.

now you have for each column one sinea zp pointer, and for each row one sineb value in a table (or vice versa).

then you can keep Y the same for each column (or row) the same so you dont have to reload it for each 'pixel'. and have the (),y do the final addition & tablelookup at the same time.
Previous - 1 | 2 | 3 | 4 | 5 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Andy/AEG
Honesty/Covenant/Ons..
MaD ][/Starship
Alakran_64
Korodny
TBC
Guests online: 122
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 Tim  (9.7)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.082 sec.