Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore GenelC16/16Kb 3D renderer projesi
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: C16/16Kb 3D renderer projesi  (Okunma Sayısı 6234 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
fst
Üye
***
Mesaj Sayısı: 50


Amiga or Die!


Üyelik Bilgileri
« : Ağustos 14, 2015, 02:45:23 ÖÖ »

Merhabalar,

Uzun zamandan sonra yeni bir c16 projesi ile dönüş yaptım sahalara. Şimdilik c16 BASIC ile 3d render yapabilen prototip bir program yazdım. İlerde makina diline geçiş yapmayı planlıyorum. Teknik detaya girmek istemiyorum ama hafıza kısıtı çok önemli olduğu için bu sistemde objeler vertexlerle değil parametrik denklemlerle ifade ediliyor. Programın bazı deneysel çıktıları aşağıdadır. Önemli bir hatırlatma renderer her pixel için ayrı bir renk üretse de bu resimler c16nın standart grafik kapasitesine göre program tarafından otomatik dönüştürülüyor yani fli filan yok. Direk 121 renk hires 8x8 kutu için 2 renk. Tabi bu dönüşüm bilenler takdir edecektir pek de kolay birşey değil



Program içinde birde text modunda çıktı alma opsiyonu var. Bu opsiyon ile çıktı görüntüyü kısa süre içinde kabaca görerek fikir sahibi olabiliyorsunuz.

Bir scene için text mode çıktısı:



Yukarıdaki scenenin esas çıktısı:



Şu an için sadece tek ışık kaynağı ve object color özellikleri mevcut. İlk aşama olarak scanline tipi render yaptım. Raytrace bir görüntü elde etmek teorik olarak tabiki mümkün ama bunu c16'da hesaplatmak dayanılmaz zamanlar alacaktır. Tabi bazı kestirme çözümler bulursak o ayrı. Projenin ilerleyen aşamalarını da kısmet olursa paylaşmaya devam edeceğim.
Logged

?"A1200 + Blizzard PPC Phase5 060@50mhz ppc603e@175mhz + 64mb ram + cfhd + Easynet + Cocolino"
?OUT OF MEMORY ERROR
?OUT OF MEMORY ERROR
?OUT OF MEMORY ERROR
...
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #1 : Ağustos 14, 2015, 04:55:38 ÖÖ »

Gerçekten tebrikler.

Tam da C16'yı yeni çıkarıp kurmuş, bununla ne yapsam diye düşünüyordum Motive edici oldu.

Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #2 : Ağustos 14, 2015, 07:32:01 ÖÖ »

fst;
Tek kelimeyle muhteşem bir iş çıkartmışsın abi, tebrikler. Programın çalışması ile ilgili bir video veya .prg dosyası felan varmı?
Logged
shotgun
Üye
***
Mesaj Sayısı: 146



Üyelik Bilgileri
« Yanıtla #3 : Ağustos 14, 2015, 09:39:27 ÖÖ »

Commodore 16 da BASICile tetris  yaptıktan sonra  şimdi de bu öyle mi? Commodore 16 için bunları görebilmek kendi adıma gerçekten çok hoş. 16 kilobyte  hafıza ile ray trace...   inanılması güç bir ikili Gölge ve  yansıma da isteriz..
Logged

C64 (1 Ekmek kasa+2 yeni kasa)+C64TPC+2*1541 II
1530 Datasette Unit+ 1531 Datasette unit+ Commodore 16 !!!
2*A500+A500plus+?*512kb ext ram+2*A590 HDD+2mb Ext Ram+50 pinlik scsi ?*HDD
A1200+Blizzard IV 68030 turbo kart+68882FPU+5gb HDD+64mb ram+Pcmcia Compaq Wireless kart+CF Flush
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.774


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #4 : Ağustos 14, 2015, 19:08:01 ÖS »

İyi sürpriz oldu. Yakında parti falan da yokken hiç beklemediğim bir şeydi. PRG paylaşabilirsen çok daha iyi olurdu, ancak sanıyorum önce asm ile tekrar kodlamayı düşünüyorsun. En azından buralara bir video koysan o da bizi idare eder.

Benim bu 3D işlerine kafam hiç basmıyor. Kodlamayala ilgili biraz ip ucu verirsen onu da zevkle okurum. BASIC için petcat kullanıyorsun değil mi? İşleri müthiş kolaylaştırıyor.
Logged

fst
Üye
***
Mesaj Sayısı: 50


Amiga or Die!


Üyelik Bilgileri
« Yanıtla #5 : Ağustos 14, 2015, 22:18:09 ÖS »

İş şu an deneme aşamasında olduğu için basic ile takıldım tabi oldu mu dibine kadar nostalji olsun diye commodore basic ile bizzat yazdım petcat kullanmadım. Zaten iş büyüme durumuna geldiğı zaman asm ve c karışık götüreceğim. Şu an 1 haftalık bir ara veriyorum. Daha sonra video türü birşeyler hazırlamaya çalışırım.

3d hesaplamalar için pinhole kamera modeli kullandım. Objeler vertexler ile değil parametrik modeller ile tutuluyor. En basit haliyle kameranın bir noktasında düşen ışığı bulabilmek için o noktadan çıkan ışın yolunun hangi objeyi neresinden kestiği hesaplanıyor. Objenin bu noktasının ışık kaynağını hangi açıyla gördüğü hesaplanıyor. Tabi bu aslında kağıt kalem ile optimize edilmiş birkaç formül ve denklem. Sonuçta elde edilen birkaç matrix çarpımını hesaplamak c16 ya düşüyor.

8x8 kutuda 2 renk seçmek için histogram ve sınıflandırma metodu geliştirdim. Göze en az kusurlu gelen renkleri ve luminosity seçiliyor. Oluşan görüntü basit bir formatta diske/kasete kaydediliyor. Tabi görüntüyü yükleyip ekranda gösteren ufak bir programcık daha yazdım. Sistemi daha da geliştirip prg yi paylaşırım.

Logged

?"A1200 + Blizzard PPC Phase5 060@50mhz ppc603e@175mhz + 64mb ram + cfhd + Easynet + Cocolino"
?OUT OF MEMORY ERROR
?OUT OF MEMORY ERROR
?OUT OF MEMORY ERROR
...
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #6 : Ağustos 14, 2015, 22:46:13 ÖS »

Fst selam,

Güzel calışma. Sınırlı imkanlar altında birşeyler geliştirmek insanı gerçekten geliştiriyor.

1 kareyi kaç saniyede render ediyor program? Fp aritmetik kullanmıyorsundur muhtemelen. Programı komple yeniden yazmaktansa belki de hesap ağırlıklı yerler assembly'e alınsa epey bir hız artışı sağlanabilir.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.930



Üyelik Bilgileri
« Yanıtla #7 : Ağustos 15, 2015, 14:29:15 ÖS »

16 kb ile tebrikler.
Logged

this is amiga speaking.
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: