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 GenelPastel3d / 3d rendering engine
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: Pastel3d / 3d rendering engine  (Okunma Sayısı 7858 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
fst
Üye
***
Mesaj Sayısı: 50


Amiga or Die!


Üyelik Bilgileri
« : Ağustos 22, 2016, 17:47:11 ÖS »

Uzun bir süredir ara verdiğim C64 için 3d rendering projeme geri dönüş yapayım dedim. Şu an için çok ilkel ancak yine de paylaşayım ve biraz da deneyimlilerden yardım alayım dedim.

Pastel3d ışınları doğrudan geometrik objeler üzerinden izdüşürerek çalışıyor. Mesh kullanmıyor. 24-bit HSL renk uzayında çalışıyor. Tabi ki daha sonra dithering kullanarak c64 renk modlarına çeviriyor. Lores MCM ve Hires modun yanısıra Laced modlara da izin veriyor. Hesaplamaları 32-bit floating point üzerinden yapıyor. Şu an için 2 tip objeye izin veriyor. Sonsuz düzlem (tek renk veya satranç tahtası) ve küre. 1 adet de beyaz ışık kaynağı.

Kodlar github'da mevcut:
https://github.com/fstasel/Pastel3d

Derlemek için KickAssembler'a ihtiyaç var. "settings.inc" dosyasından manzara ayarlamalarını yapıyorsunuz. Dilerseniz hızlı sonuç almak için text modunu kullanabilirsiniz. Grafik modunda hesaplanmış görüntüleri "display.prg" ile açabilirsiniz. Örnek test dosyaları da var. Hesaplama işleri için turbo modu olan C64 emulatoru önerilir (takdir edersiniz ÇOK yavaş).

Kodda rendering ile color conversion modulü iç içe ve çok karışık. Bu iki modulu ayırmayı planlıyorum. FLI ve IFLI modlarını eklemek istiyorum. Ancak bu modlarla deneyim sahibi birilerine ihtiyaç duyabilirim. Hesapları için fixed-point aritmetiğe çevirebilirsem epey hızlanma sağlarım ancak bu hızlanma yine de çok manalı olur mu ayrı mesele. Yavaş olsa ne kaybederiz ki  Bir de 1st order yansımaları da yapabilirsem gayet güzel olur.

Örnek bir laced resim ekliyorum. Animated gif yaptım ancak sanırım en iyi sonuç emulatorde görülüyor.


* output_calIVN.gif (13.81 KB, 384x272 - Görüntüleme: 1379 kez.)
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
...
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.320



Üyelik Bilgileri
« Yanıtla #1 : Ağustos 22, 2016, 17:51:30 ÖS »

Elinize sağlık
Logged

Use the brute force, Luke
shotgun
Üye
***
Mesaj Sayısı: 146



Üyelik Bilgileri
« Yanıtla #2 : Ağustos 22, 2016, 18:53:55 ÖS »

Gerçekten çok güzel olmuş tebrik ederim böyle şeyleri c64 te görmek inanılmaz bir his benim için
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
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #3 : Ağustos 22, 2016, 21:20:33 ÖS »

Süper ...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
LW3D
Yönetici
*****
Mesaj Sayısı: 11.408


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #4 : Ağustos 24, 2016, 01:22:45 ÖÖ »

Elnize sağlık...Hiç aklıma gelmeyecek bir şey yapmışsınız... Render ne kadar sürüyor? Çok yavaş olduğunu tahmin ediyoruz ama standart C64 için bir zaman vermek mümkün mü merak ettim Zamanında Amiga'da ilk renderlarımız bundan daha iyi değildi...
Logged

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


Amiga or Die!


Üyelik Bilgileri
« Yanıtla #5 : Ağustos 24, 2016, 01:43:58 ÖÖ »

Amiga'da (68000) Imagine ile bir chekerboard bir küre yarım gün alırdı. Bu da aynı yarım gün alıyor. Ancak benim için süreden çok sonuç vermesi önemli  Kahkaha

Şimdi Matlab ile fixed point denemeler yapıyorum. Uygun bir word size/fraction yakalayabilirsem belki fixed point math ile hızlandırmak mümkün olur.
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 #6 : Ağustos 24, 2016, 07:25:57 ÖÖ »

Gerçekten de denemek hiç akla gelmezdi... Kodu indirdim, teşekkürler ve tebrikler.
Bir de nedense aklıma Driller oyunu geldi.
Logged

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



Üyelik Bilgileri
« Yanıtla #7 : Ağustos 24, 2016, 11:24:15 ÖÖ »

tebrik ederim, süper iş çıkartmışsınız.
Logged
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #8 : Ağustos 24, 2016, 17:08:14 ÖS »

Müthişsin!
Logged

Alper
ibo1973
Uzman
*****
Mesaj Sayısı: 2.472


Üyelik Bilgileri
« Yanıtla #9 : Ağustos 24, 2016, 20:58:58 ÖS »

c64 için ilginç bir çalışma olmuş eline sağlık.
Logged
LW3D
Yönetici
*****
Mesaj Sayısı: 11.408


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #10 : Ağustos 24, 2016, 22:00:02 ÖS »

Yarım gün sürmesi önemli değil...Sadece merak etmiştim Daha önce bu tür bir iş yapan olmuş mu acaba?
Logged

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


Amiga or Die!


Üyelik Bilgileri
« Yanıtla #11 : Ağustos 24, 2016, 23:13:00 ÖS »

Yarım gün sürmesi önemli değil...Sadece merak etmiştim Daha önce bu tür bir iş yapan olmuş mu acaba?


Deneysel 2 tane örnek var:
http://dwcope.freeshell.org/projects/c64/
http://csdb.dk/release/?id=68182

Farklı ekran/renk çözünürlüklerini desteklemiyor gördüğüm kadarıyla diğerleri. Bir de c64 de native siyah beyaz hesaplıyorlar.
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
...
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: