Amiga'nın
ne çarptığında kırmızı, yeşil ya da mavi renkte ışıyan özel bir fosforla kaplanmıştır. Fosforlu her nokta çok parlak ile çok donuk arasında istenen bir düzeyde ışıyabilir. Ekran boyandıktan sonra kısa bir sürede görüntü kaybolur; bu nedenle elektron demetleri saniyede 60 kez görüntü karesini yenileyecek bir hızla bu işlemi tekrarlar. Bu yenileme hızı, TV gösterilerinde ve bilgisayar grafiklerinde her kare değişirken, gözümüzün bunu sürekli bir hareket olarak algılamasını sağlayacak ölçüde olmalıdır. Birçok bilgisayarın tersine Amiga sizi belirli bir renk grubuyla sınırlamaz. Kendi renklerinizi oluşturmak için 3 ana rengi -kırmızı, yeşil ve mavi- karıştırırsınız. Her ana renk 0'dan (renksiz) 15'e (çok parlak) kadar 16 parlaklık düzeyine sahiptir. Bu da, olası kombinezonları 4096'ya çıkartır (16*16*16 = 4096). Amiga bu kadar rengi görüntüleyebilmek için analog RGB adlı özel bir monitör kullanır. Amiga sayısal RGB adlı başka tip bir monitörle de çalışabilir, ama bunlar sadece 16 renk görüntüleyebilir. (Sayısal RGB'ler IBM ve Commodore 128'lerdeki monitör tipidir.) Eğer Amiga'nızı, üzerindeki RF modülatörünü kullanarak normal bir TV'ye bağlarsanız 16 renk elde edebilirsiniz. Analog RGB kullanarak elde edilen maksimum 4096 renk kombinezonuyla yaklaşık her renk tonu elde edilebilir. Renklerin çoğu kırmızı, yeşil ve mavi bileşenlerine ayrıştırılabilir. Ekran görüntülerindeki ışık, yansıma değil ışıma şeklinde oluştuğundan, bildiğimiz kırmızı-mavi-sarı ana renk üçlüsünü uygulamak her zaman gerekli değildir. Örneğin kırmızı, mavi ve yeşil birleştirildiğinde beyazı verir; koyu kahverengiyi değil. Kahverengiyi elde etmek için kırmızı ve yeşili birleştirmeniz gerekir, bu size kahverengiye çok yaklaşan yeşilimsi bir kırmızı verir. Parlak kırmızı ve koyu mavi de, pastel bir eflatun çıkartır, ilh.
DOLAYLI RENKLENDİRME
Amiga'nın grafik modlarının çoğunda, 4096 rengin tümünü aynı anda görüntüleme imkanımız yoktur. Moduna göre 16 ya da 32 renklik bir yelpazeyle sınırlı olmakla birlikte, bu yelpazedeki renkleri 4096 renk içinden seçebilirsiniz. Amiga'daki renkler, 32 bellek siciliyle belirlenir. 0'dan 4095'e kadar bir sayıyı tutabilmek için gereksinilen alan nedeniyle, her sicil 12 bit genişliktedir. Amiga bir görüntü çizdiğinde, bunu oluşturan noktaların rengi, renk siciliyle saptanır. 320x200 ya da 320x400 modunda, ekrandaki her nokta 32 renk sicilinden birisiyle renklendirilebilir. Dolayısıyla bu modlarda, 32 çeşit renk kullanmak mümkündür. Commodore 64 gibi bazı bilgisayarlar, ekranın renk bilgisini “renk belleği” adlı bölümde saklar. Renk belleği, bellek hücrelerinin bir grid'idir. Bu “grid”'i, yani ızgarayı oluşturan hücrelerden her biri 8 x 8 ekran noktalık (pixel) bir alanın rengini belirler. Renk belleğindeki rakamlar, 1'den 16'ya kadar sabit renkten birini temsil eden bir sayıdır. Atari gibi bazı bilgisayarlar ise “dolaylı renk” adı verilen bir başka yöntemle renk bilgisini saklar. Amiga bu ikinci tekniği kullanmaktadır. Ekrandaki noktayı temsil eden sayı, rengin kendisini doğrudan belirlemez, belirli bir renk sicili seçer. Nokta, rengini bu renk sicilinden alır. Renk sicilini değiştirirseniz bu sicille çizilen her şeyin rengi de anında değişir. Dolaylı renk vermek çok güçlü bir tekniktir. Bu yolla, tüm renkler arasında, bir renkten ötekine geçen çok hızlı bir kırpışma efekti sağlamak mümkündür. Tüm ekranı yeniden çizmek gibi çok zaman alan bir yolu kullanmadan, sadece renk sicillerini değiştirerek tüm görüntüyü anında farklılaştırabildiğimizi unutmayın. Bellekteki bir tek değişikliğin tüm ekranı etkileyebilmesi, BASIC gibi görece yavaş bir dili kullanarak bile, çok yüksek hızda bazı efektleri gerçekleştirebilmenizi sağlar. Örneğin, her dairenin rengini bir renk sicilinden aldığı, tek merkezli bir dizi daire çizildiğinde; renk sicillerini sırayla değiştirerek 3-boyutlu bir görüntü yaratabilirsiniz. Tüm renk sicillerini aynı renkte doldurabilir ve her seferinde bir renk sicilini değiştirerek “genişleyen halkalar” efekti yaratabilirsiniz. Ekran zeminiyle aynı renk verilen şekiller aniden görünmez kılınıp, sonra farklı bir renk verilerek gene aniden ortaya çıkartılabilirler.
BİR “LOKMA” RENK
Renk bilgisi, belirli bitleri açıp ya da kapayarak renk sicillerinde saklanır. 12-bit'lik her sicilde ana renklere 4'er bit ayrılmıştır. (4 bitlik bir gruba “nibble” adı verilir. Türkçe'de “lokma” ya da “parça” anlamına gelen bu terimi teknik olarak “dörtlü” şeklinde adlandırmak daha yerinde olacak.) 320x200 ve 320x400 modlarında, renk sicillerinin formatı şöyledir:
Bit 3 2 1 0 Sayısı Ana Renk mavi kırmızı yeşil
Bu modda bir renk sicili yazmak için aşağıda verdiğimiz kısa formülde BLUE (mavi), GREEN (yeşil) ve RED (kırmızı) için parlaklık değerleri 0-15 arasında değişmektedir.
BLUE*256 4 GREEN*164 KIRMI-
ZI
640 x 400 modunda bir RGB monitörü için renk sicilleri biraz daha karışıktır:
Bit 11109|876|54312 1 0 Sayısı mavi |yeşil İkm kikhim yk Renk
Gördüğünüz gibi renk bitleri 12 bit'e dağılmış durumdalar. 9-11 bitlerinde mavi için, 6-8 bitlerinde yeşil için 3'er bit ayrılmıştır. Mavi ve yeşil böylece 0'la 7 arasında bir değer alabilirler. 5, 4, 3 bitleri kırmızı için sırasıyla medium (orta), low (alçak) ve high (yüksek) değerlerine ayrılmıştır. (Sıralamanın yüksek-orta-alçak şeklinde olması gerektiğini haklı olarak düşünebilirsiniz ama bu garip sıralama için Amiga'nın tasarım mühendislerinin geçerli gerekçeleri var.) 0-2 bitleri kırmızı, yeşil ve mavi elektron tabancaları için yetki bitleridir.
Bu modda bir renk sicil formülü de, öncekinden daha karışık oluyor. Örneğin;
BLUE*12 4 GREEN*64 4 INT
RED/2)*164 (RED AND
4)*2 4 BEN*4 4 GEN*2 4 REN
Bu formül kırmızı, yeşil ve mavinin 0-7 arasında değiştiğini; REN, GEN ve BEN'in (sırasıyla kırmızı, yeşil ve mavi elektron tabancaları için yetki bitleri) 0 ya da 1 olabilirliklerini; INT ile, bu argümanın tamsayı sonucunun alınacağını (BASIC'de olduğu gibi) varsayıyor.
İKİLİ SİSTEMDE KULELER Her ekran noktası ya da noktacık
(pixel), rengini bu renk sicillerinin birinden alır. Peki ama bu noktalar bellekte nasıl düzenleniyorlar?
32 renk modunda, her noktacık 5 bitlik bir ikili sayıdır (2x2x2x2x2 = 32). Ama 5-bit'lik bir değer, bellek birimi olan bayt'a uygun oturmaz. O nedenle Amiga ekran belleğini, diğer bilgisayarların çoğundan farklı biçimde düzenler. Geleneksel olarak, bilgisayarlar ekran belleklerini soldan sağa ve yukarıdan aşağıya, dizisel olarak düzenler. Örneğin Commodore 64'ün çokrenkli grafik modunda, her bit çifti bir noktacığı temsil etmek üzere, dört noktacık bir bayt kaplar (00=0 rengi, 01=1 rengi, 10=2 rengi, 11=3 rengi.) Bu nedenle Commodore 64'ün 160 x 200 çok-renkli şemasıyla daha fazla renk elde etmek için, daha fazla noktacığı bir kümede toplamamız gerekir. Ama, bir noktacık için beş bit gereksinen Amiga'da, her bayt'ta üç bit boşa kullanılacaktır. Eğer Amiga ekran belleği olarak dizisel şemayı kullanacak olsaydı, 320 x 200 ve 32 renkli bir ekran için 64K ayırması gerekecekti. Bu sorun, bitleri farklı bir şekilde gruplayarak çözülmüş. Bir renk sicili seçmek için, baytları birbirine komşu sıralanmış bitler şeklinde kullanmak yerine, Amiga, baytları üst üste koyarak bitleri dikey okur. Örneğin, üst üste durumdaki beş baytın 7. bitleri bir arada okunarak, bir noktacık (kullanıcının tercih belirtmediği mod olan 640x200 kullanılır.) Her bit düzlemi, belleğin bağımsız bir bölümüdür. Ama ekran tarafından, sanki üst üste istiflenmiş gibi kullanılırlar. Özdeş konumdaki bitler, noktacık (pixel) için renk kodu oluşturan ikili sistemde sayılar şeklinde, ekran donanımı tarafından birleştirilirler. Bu bit düzlem kodu, söz konusu noktacık elemanının rengini verebilmek için 32 sicilden birini seçer.
AMIGA'DA EKRAN GÖRÜNTÜSÜ NASIL OLUŞUR?
Ekran noktaları, bit düzlemleri ve renk sicilleri... Kısaca Amiga dünyayı bizden biraz farklı görür. Ekrana baktığınızda bir görüntü bütünü görürsünüz. Oysa Amiga bu görüntüyü 320x200 grid'e (ızgara) ayrışmış durumda görür (normal düşük rezolüsyon modunda iken). Izgaranın her parçasına ekran noktası (pixel) ya da görüntü elemanı dendiğini biliyorsunuz. Bunları bir an için, açık ya da kapalı olabilen birer anahtar olarak düşünün. Açık olduklarında bu noktacık beyaz, kapalı olduklarında ise siyahtır. Her noktacıktaki rengin ne olduğunu ve ızgara üzerindeki yerini belirten bilgiyle bu ızgara, bir “bit düzlemi” olarak adlandırılır. Şimdi tarif ettiğimiz bit düzleminde sadece iki rengimiz olduğunu sanırım siz de fark ettiniz, çünkü her “anahtar” (bit), ancak ya açık ya da kapalı olabilir. Ekranda daha fazla renk oluşturabilmek için daha fazla bite ihtiyacımız var. Bu da, birden fazla bit düzlemi kullanarak sağlanır. Her bit düzlemi belleğin bağımsız bir bölümüdür. Bunları birbiri üstüne sıralanmış biçimde düşünün. Bu iki anahtar için iki olası kombinezon vardır: açık/açık, açık/kapalı, kapalı/açık ve kapalı/kapalı. Bu bize dört renk gösterebilme imkanı sağlar. Kullandığımız bitleri arttırdıkça, görüntüye girebileceğimiz renkler de artar. Bitlerden oluşan her ızgara, bağımsız bir bit düzlemidir. Beş bit düzlemi ile 32 renk elde ederiz ki, düşük-rezolüsyon modunda Amiga'nın gösterebileceği üst sınır da budur. O için beş-bit'lik bir değer verir. Sanki her noktacık ekran haritası üzerinde, beş bit yüksekliğinde bir kule gibidir. Eğer ekranı oluşturan bu kulelerin yatay kesitini alırsanız, beş dilim elde edersiniz ki, bunlara da “bit düzlemleri” adı veriliyor. Her bit düzlemi, renk tanımının bir bitini barındırır. En basit ekran, bir bit düzlemli olanıdır, her noktacık için bir bit vardır. Bu düzenlemede her noktacık için sadece açık ya da kapalı seçeneğine sahip olursunuz. Daha geniş bir yelpaze için, bir tane daha bit düzlemi eklemeniz gerekir. Böylece, birincinin üzerine oturan ikinci bit düzlemi, noktacıklara ikişer bitlik değerler, yani dört olası renk verebilmeyi sağlar. Şekilde, renk seçimi için Amiga'nın bit düzlemlerini nasıl kullandığı gösterilmiştir. Bu arada Amiga'da, daha eski bilgisayarlardaki gibi gerçek bir yazı (text) modunun bulunmadığını belirtelim. Yazılar da grafik bir nesne gibi çizilir. (Genellikle yazı için, Amiga'nın işletim sisteminde default -
Her ne kadar, her bit düzlemi belleğin bağımsız bir bölgesiyse de, bunlar görüntü oluşturma süreci sırasında üst üste yığılıymışlarcasına işlem görür. Aynı konuma düşen bitler, görüntü donanımı tarafından ikili bir sayı oluşturacak şekilde birleştirilir. Bu sayı belli bir ekran noktasının renk kodudur.
Bu bit-düzlem kodu, mümkün 32 sicilden birini seçerek, söz konusu ekran noktasının renklendirilmesini sağlar.