Commodore sayı 16, sayfa 44

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 44

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

Klavyeyle gezinmek için ← ve → tuşları.