Gönderen Konu: Batman Forever (CPC demo)  (Okunma sayısı 39657 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2128
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Batman Forever (CPC demo)
« Yanıtla #15 : 26 Mart 2011, 15:15:41 »
Matahari bu demoyu epey detaylı şekilde inceliyor. Bu esnada da Rhino'nun dedikleri ile bazı şeylerin çeliştiğini farketmiş.

Misal:

And about how 3d objects are filled, I was inspired on how the Amiga blitter fill vectors but using the CRTC instead. In this way, we can say that z80 only draw the object borders and CRTC do the rest.Rhino.

http://cpcwiki.eu/forum/index.php/topic,2085.msg21179.html#msg21179

Demiş Rhino CPCWiki'deki mesajında. Gelgelim CRTC'nin tüm satırı boyama dışında bu türden bir nokta detect etme/fill etme/boyama gibi bir özelliğini bilmiyoruz.

http://www.grimware.org/doku.php/documentations/devices/crtc

Bu konuda bir fikri/teorisi olan var mı?


Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2872
  • Advanced User Simulator
    • ae unutmadan
Ynt: Batman Forever (CPC demo)
« Yanıtla #16 : 26 Mart 2011, 18:52:32 »

And about how 3d objects are filled, I was inspired on how the Amiga blitter fill vectors but using the CRTC instead. In this way, we can say that z80 only draw the object borders and CRTC do the rest.Rhino.

Bu konuda bir fikri/teorisi olan var mı?

Crtc hakkında en ufak bir fikrim yok elbette :) Ama rhino z80 obje çerçevesini çiziyor dediğine göre, sen de crtc'nin tek bir raster satırını boydan boya doldurduğunu söylediğine göre, tahminen bir timing tutarak obje çervesinin yatay düzlemde giriş ve çıkış noktalarını hesaplayıp, sadece o noktalarda crtc'ye işi bırakıyorlardır, böylece ekranı doldurma, byte shift vs. gibi işleri yapmayarak, tstate saymak ve objenin şeklini hesaplamak için z80'e zaman yaratmak mümkün oluyordur.

Bilmiyorum amstrad'da double buffer var mı? Varsa aynı şey buffer swap ile de yapılabilir mesela.

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2128
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Batman Forever (CPC demo)
« Yanıtla #17 : 28 Mart 2011, 10:33:12 »
CRTC yardımıyla Filled Vector nasıl yapılabilir konusunda ufak bir kod matahari tarafından CPCWiki'ye yollandı.

http://www.cpcwiki.eu/index.php/CRTC_change_colour_(fill)_test_with_precise_timing

Bakalım bu ipucundan kaç kişi yakalayacak Filled Vector Batman Logo olayını. Birkaç güne kadar ses çıkmazsa biz açıklarız CPCWiki'ye.

Rhino her ne kadar Blitter'a benzetse de, matahari bunun Copper mimarisine daha yakın olduğunu düşünüyor. Ama neden Blitter'a benzetildiği konusunda da detaylı bir açıklaması var.
Kodu Winape ile çalıştırmak ve test etmek isterseniz:

----------------------------------
WinApe'i aç
F3
File->New
Yukarıdaki linkten kodu kopyala
Paste
CTRL+F9
CPC ekranına geç
Call &3000
----------------------------------

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2872
  • Advanced User Simulator
    • ae unutmadan
Ynt: Batman Forever (CPC demo)
« Yanıtla #18 : 28 Mart 2011, 14:15:34 »
Rhino her ne kadar Blitter'a benzetse de, matahari bunun Copper mimarisine daha yakın olduğunu düşünüyor.

Blitter ile de alakası yok işin evet, kopyalanan bir veri yok ki. Copper demek istemiştir bence Rhino. Fakat copper bir işlemci, buradaki efekt "copper ile yapılan raster satırı başında palet değiştirme tricki"ne benziyor.

Büyük olasılıkla rhino kenarları yuvarlatmak için (görünüşe göre crtc tıpkı ula gibi buffer'ı 1 byte olarak okuyor ve 8 pixellik alanı tek seferde boyuyor) oralara pixel çiziyordur.Hatta ekranı 4x4'lük chunklar halinde önceden checker board ile doldurursanız böylece raster satırının uçlarını 4 pixel eninde *kolayca* detaylandırmak mümkün. Olacaktır. Ya da raster satırının ucunu siz çizeceksiniz piksel piksel.