home *** CD-ROM | disk | FTP | other *** search
/ ftp.uni-stuttgart.de/pub/systems/acorn/ / Acorn.tar / Acorn / acornet / fun / mags / hl-05-93.arc / !HL-05_93_Text_Tips < prev    next >
Text File  |  1993-11-25  |  4KB  |  67 lines

  1.  
  2.  
  3.  
  4. ÿÿÿÿÿÿÿÿÿÿ Assemblertips ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
  5.  
  6.  
  7. In dieser Folge der Assemblertips wollen wir uns erneut einen Effekt vornehmen,
  8. der eigentlich vom Amiga (bzw. in diesem Fall auch vom Atari ST) kommt. Es
  9. handelt sich hierbei um die "Bitplanes", die durch spektakulΣre Effekte in
  10. Demos und Spielen fⁿr Aufsehen gesorgt haben.
  11.  
  12. Was sind nun eigentlich Bitplanes ? Um das zu klΣren, schauen wir uns zuerst
  13. einmal den Aufbau des Bildschirms beim Archimedes an. In 256-Farb-Modi
  14. entspricht hier ein Pixel genau einem Byte, wobei die einzelnen Bytes im
  15. Speicher aufeinander folgen. In 16-Farb-Modi ist es Σhnlich; hier werden aber
  16. aufgrund der geringeren Farbzahl nur die sogenannten "Nibbles" (vier Bit)
  17. ben÷tigt.
  18. Beim Amiga ist der Bildschirm anders aufgebaut. Die Farbinformationen liegen
  19. hier in den Bitplanes. Angenommen, wir befinden uns in einem Modus mit
  20. 320x200 Bildpunkten bei 16 Farben. Der Bildschirm besteht dann aus insgesamt
  21. vier Bitplanes, die aufeinander folgen und aus jeweils 320x200 Bits bestehen.
  22. M÷chte ich nun den ersten Punkt im Bildschirm mit der Farbe 15 (binΣr: %1111)
  23. belegen, mu▀ ich in allen Bitplanes das jeweils erste Bit setzen. Beim
  24. Archimedes wΣre das einfacher, da ich hier einfach nur das erste Nibble auf
  25. den Wert 15 setzen mⁿ▀te - eine Ersparnis von mindestens drei Befehlen !
  26.  
  27. Trotzdem ist es auch auf dem Archimedes m÷glich, eine Art Bitplane-Emulation
  28. auf die Beine zu stellen. Ganz so einfach wie auf dem Amiga lΣuft die Sache
  29. allerdings nicht, denn die Hardware kann hier ⁿberhaupt nicht weiterhelfen -
  30. im Gegensatz zum PC wurde nΣmlich GAR kein Bitplane-Modus eingebaut (was
  31. viele Leute als Geschenk des Himmels betrachten...). Man mu▀ die Bitplanes
  32. also rein softwaremΣ▀ig emulieren, was aber mit 32-Bit-RISC-Power unter der
  33. Haube (um mal den ⁿblichen Jargon zu benutzen) kein Problem darstellen
  34. sollte.
  35.  
  36. Der Trick bei der Sache ist, da▀ wir die Grafiken, die wir verwenden wollen,
  37. auf eine ganz bestimmte Art und Weise malen. Angenommen, wir wollen einen
  38. Nebeleffekt programmieren, bei dem eine Grafik im Hintergrund von anderen
  39. Grafiken (z.B. Scrolltexten) ⁿberlagert und auf den SchnittflΣchen erhellt
  40. wird. Wir erstellen dann die Hintergrundgrafik in den Farben 0-7, nutzen also
  41. in einem 16-Farb-Modus nur die unteren drei Bits (%0111). Den Scrolltext
  42. zeichnen wir in Farbe Nr. 8, benutzen also das oberste Bit (%1000). Nun
  43. bringen wir ⁿber ⁿbliche STM-/LDM-Befehle die Hintergrundgrafik auf den
  44. Screen. Und jetzt kommt die eigentliche Bitplane-Emulation. Den Scroller
  45. plotten wir nΣmlich nicht "wie ⁿblich", sondern folgenderma▀en: Wir lesen
  46. den Hintergrund und die Scrollergrafik, verbinden beides ⁿber ORR und plotten
  47. erst dann das Resultat. An den Stellen, die der Scroller bedeckt, wird
  48. dadurch das oberste Bit gesetzt. Haben wir also in der Grafik an einer
  49. bestimmten Stelle die Farbe Nr. 4, wird daraus die Farbe 4 ORR 8=12. So
  50. geschieht das auch mit den anderen Farben. Aus 0 wird 8, aus 1 wird 9, usw.
  51. Wenn wir nun bei den mit %1000 geORRten Farben eine gegenⁿber den Ursprungs-
  52. farben etwas aufgehellte Palette verwenden, ergibt sich hinter dem Scroller
  53. ein helleres Bild.
  54.  
  55. Und das ist auch schon das ganze Geheimnis der Bitplane-Emulation ! Wichtig
  56. ist nur, da▀ man beim Malen der Grafiken, die in verschiedenen emulierten
  57. Bitplanes liegen sollen, auch wirklich verschiedene (Farb-)Bits benutzt.
  58. Natⁿrlich mu▀ man auch vorher eine geeignete Palette wΣhlen, damit das Ganze
  59. auch ein wenig Σsthetisch aussieht... Das ist auch der Grund, warum man fⁿr
  60. eine Bitplane-Emulation einen 16-Farb-Modus wΣhlen sollte. Bei 256 Farben
  61. sind solche Routinen zwar auch m÷glich, allerdings k÷nnen die Schnittfarben
  62. stellenweise sehr merkwⁿrdig aussehen, da man die Palette bei 8 Bit Farbtiefe
  63. nicht frei wΣhlen kann.
  64.  
  65.                                                                - Tim Juretzky -
  66.  
  67.