home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 11 / amikuf11.txt < prev    next >
Text File  |  1997-04-07  |  4KB  |  172 lines

  1. <sr>** Lightwave a HAM8
  2.  
  3. <a Grzegorz (Child) Jankowski
  4.  
  5. <txt>Bawiâc sië programem Lightwave (przy moich 6 MB o jakiejô
  6. powaûnej pracy mowy byê nie moûe), zauwaûyîem przykrâ wadë.
  7. Chodzi mianowicie o to, ûe renderujâc scenë, powiedzmy, w
  8. rozdzielczoôci lo-res i o wymiarach np. 320 x 256 pikseli, oraz
  9. ustawiajâc w menu Record zapis sceny w trybie HAM8, program za
  10. ûadne skarby nie chce zachowaê narzuconych parametrów, zapisujâc
  11. niezmiennie scenë w rozdzielczoôci 752 x 576 pikseli. Poza tym
  12. autorzy Lightwave mieli chyba zîy dzieï, gdy pisali procedurkë do
  13. zgrywania obrazu w tym trybie -- jakoôê jest niezbyt dobra
  14. (chociaû dobrze ich rozumiem, Toaster to jest Toaster, a dla
  15. niego wîaônie powstaî ten kawaîek softu).
  16.  
  17. Jednak dla chcâcego nic trudnego. Polak potrafi. Sposób na
  18. ominiëcie wymienionej wyûej niedogodnoôci jest nastëpujâcy:
  19.  
  20. 1. Ustawiamy w menu Record opcjë RENDER DISPLAY na none (pamiëê to
  21. pieniâdz czy coô takiego);
  22.  
  23. 2. Save RGB Image ustawiamy na 24 bit IFF;
  24.  
  25. 3. Renderujemy;
  26.  
  27. 4. Odpalamy ADPro (lub coô w tym stylu);
  28.  
  29. 5. Îadujemy nasz 24-bitowy obrazek;
  30.  
  31. 6. Ustawiamy odpowiednie parametry ekranu (tzn. rozdzielczoôê,
  32. wymiary i liczbë kolorów, najlepiej oczywiôcie HAM8) + wîâczamy
  33. dihtering np. Floyda-Steinberga;
  34.  
  35. 7. Generujemy obraz i zapisujemy na dysk.
  36.  
  37. Zalety:
  38.  
  39. ^* Obrazek trzyma zadane wymiary;
  40.  
  41. ^* Jego jakoôê jest o niebo lepsza niû tego wygenerowanego w HAM8
  42. przez Lightwave.
  43.  
  44. Proponujë poôwiëciê trochë czasu i wygenerowaê të samâ scenë, raz
  45. pozwalajâc zapisaê gotowy obrazek w trybie HAM8 przez Lightwave,
  46. drugi stosujâc powyûszâ metodë, i porównaê wyniki.
  47.  
  48. <sr>*** AKIKO
  49.  
  50. <a>PP/Termos/Union
  51.  
  52. <txt>Amiga CD32 ma ukîad Akiko, sîuûâcy do szybkiej konwersji
  53. grafiki typu chunky na grafikë bitplanowâ. Wykorzystanie tego
  54. ukîadu jest bardzo proste, a znacznie przyspieszy wiele procedur
  55. dla CD32. W systemie 3.1 (V40) istnieje procedura w ROM-ie do
  56. takiej konwersji o nazwie WriteChunkyPixels(), offset -1056 w
  57. graphics.library.  Podajemy jej nastëpujâce parametry:
  58.  
  59. a0 -- rastport (tak, konwersja moûe przebiegaê do okienka!),
  60.  
  61. d0 -- xstart -- pozycja x lewego górnego rogu obszaru do konwersji,
  62.  
  63. d1 -- ystart -- jw., pozycja y,
  64.  
  65. d2 -- xstop -- pozycja x prawego dolnego rogu obszaru,
  66.  
  67. d3 -- ystop -- jw., pozycja y,
  68.  
  69. a2 -- array -- pointer do grafiki chunky,
  70.  
  71. d4 -- bytesperrow -- liczba bajtów w jednej linii grafiki chunky.
  72.  
  73. Przykîadowa konwersja chunky-to-planar grafiki, o wielkoôci 320 x
  74. 256 pikseli, wyglâda nastëpujâco (zakîadam, ûe mamy zainicjowany
  75. rastport, a jego adres wpisany jest pod etykietâ "rp", oraz bazë
  76. graphics.library, pod etykietâ "gfxbase"):
  77.  
  78. <l>
  79. chunkyconvert:
  80.  
  81. move.l    rp,a0
  82.  
  83. clr.l    d0
  84.  
  85. clr.l    d1
  86.  
  87. move.l    #319,d2
  88.  
  89. move.l    #255,d3
  90.  
  91. lea    chunky,a2
  92.  
  93. move.l    #320,d4
  94.  
  95. move.l    gfxbase,a6
  96.  
  97. jsr    -1056(a6)        ; Tylko OS3.1 !
  98.  
  99. rts
  100.  
  101. chunky:
  102.  
  103. ds.b    320*256
  104.  
  105. <txt>Tak wiëc, koderzy, do roboty! Oby DOOM na Amidze "chodziî"
  106. lepiej niû na PC!
  107.  
  108.  
  109. <sr>** Mâdry przed szkodâ
  110.  
  111. <a>Zbyszek T.
  112.  
  113. <txt>Jeôli chcemy udoskonaliê nasz program AMOS-owy, to zamiast
  114. czekaê, aû obsîuga bîëdów zadziaîa, moûna sprawdziê, czy dysk
  115. jest zabezpieczony przed zapisem w poniûszy sposób. Moûna bëdzie
  116. ostrzec uûytkownika przed szkodâ (np. niezapisanie danych o
  117. ômierci 9998 kosmitów).
  118.  
  119. <l>
  120. Rem Którâ stcjë sprawdziê?
  121.  
  122. DYSKIETKA$="DF0:"
  123.  
  124. Rem Miejsce na dane
  125.  
  126. BUFOREK$=Space$(100)
  127.  
  128. Dreg(1)=Varptr(DYSKIETKA$)
  129.  
  130. Dreg(2)=-2
  131.  
  132. Rem    Otwórz
  133.  
  134. A=Doscall(-84)
  135.  
  136. Dreg(1)=A
  137.  
  138. Dreg(2)=Varptr(BUFOREK$)
  139.  
  140. Rem Weú informacje
  141.  
  142. B=Doscall(-114)
  143.  
  144. Dreg(1)=A
  145.  
  146. Rem Zamknij
  147.  
  148. B=Doscall(-90)
  149.  
  150. Rem Wyjëcie potrzebnych danych 
  151.  
  152. STATUS=Varptr(BUFOREK$)
  153.  
  154. PROTEKCJA=Leek(STATUS+8)
  155.  
  156. Rem Wydruk
  157.  
  158. If PROTEKCJA=80
  159.  
  160. Print "Zabezpieczony!"
  161.  
  162. Else
  163.  
  164. If PROTEKCJA=82
  165.  
  166. Print "Odbezpieczony!"
  167.  
  168. End If
  169.  
  170. End If
  171.  
  172.