Diğer bir kaç topic'de de gördüm bu konuyu. hardware kullanmanın kolay olduğu konusunda bi kaç fikirde gördüğükten sonra adam akıllı bir başlık açayımda rahatlayayım dedim.
c64 ve amiga platformlarında zaten böyle bir olay olmadığı için pc başlığında olsun istedim. zaten o platformlar ile pc arasında dünya kadar fark var. biraz uzun ( bi daha baktım hakkaten uzun olmuş) ve klasik coder alışkanlığı olarak cümle düşüklükleri, imla hataları göreceksiniz kızmayın.
ünv. zamanlarından beri bir heves olarak herşeyini kendi yazdığım bir 3d motor yazmışlığım var. (bi yerde de kaynak olmadığı için herşeyi baştan icad ettiğim) hatta uzun zaman önce çıkardığımız wardance demosunda da yarım yamalak bir hali de gözüküyordu zaten. o motor içinde tek eksik (matrix leri kullanabileceğim hiç aklıma gelmemişti) kameranın sabit bi yerde (0,0,0) durmasıydı.
wardance sonrasında üzerinde texture mapping, lightning vs kıl tüy bilimum bişeyleride eklemiştim ama türk demoscene'in kaybolmasıyla birlikte o motorda kayboldu gitti. kodlar halen duruyor ama watcom c ile yazıldığı için yazıldığı için pek kullanılabilecek halide kalmadı. daha sonraları aynı motoru direct draw üstüne geçirdim ama sonunda sıkılıp software işinden uzaklaştım.
directx konusundaki tecrübemde 1 yıldan fazla değil, ama 1 yıldan daha fazla bir tecrübeyide gerektirecek bişey yok zaten.
girizgah kısmını geçtikten sonra gelelim gördüğüm farklara; herkes coder olmadığı için basit olarak anlatıyorum.
elinizde ferrari hızında 3gen çizen birşey dışında hiç bir fark yok.
bazılarınız ama olurmu loadmesh diyosun load ediyo, phong shading diyosun çat diye koyuyor diyebilirsiniz ama bunlar zaten software 3d motor'da da olmazsa olmaz olanlar ve bir kütüphaneden başka bişey değil. (directx içinde de zaten d3dx diye bir kütüphane, ham directx içinde üçgen çizmekten başka bişey yok)
hazır olanı kullanmak belki biraz demoscene ruhuna aykırı ama temellere dönersek disketten veya cd'den boot eden demolar yapmak zorunda kalırız. buda mantıklı değil.
pc demoscene'de teknik olarak hiç bir kural kalmadı. rahatlıkla bilmemne kartı istiyorum diyebilirsiniz veya n mb'lerce resource'unuz olabilir. pc demolarındaki kalan tek şey tasarım. bunu 90'lardan 00'lara gelen dönemde rahatlıkla görebilirsiniz. pc'ler manyadıkça yani 00'lara yaklaştıkçada işin tasarım kısmının öne çıktığı gayet görülebilir. bu konu önceden de işlediği için geçiyorum. (btw son yaptığımız demonunda tasarım örneği olduğunu iddia edecek değilim tabiki)
kendi yazdığım motorla karşılaştırınca, yazdığınız motor ekranda gözükmeyen poligonları atmak, zbuffer'ı dürtmek, u,v koordinatlarını yumuşatmak, poligonlar arasındaki arsız boşlukları kapatmak gibi milyon tane hiç bir değer ifade etmeyen şeyle uğraşmak zorundasınız. ama yazdığınız motoru demo yazmak için hazırladıysanız bunlar pekte eğlenceli şeyler değil. çok fazla zamanınızı alıyor (akşamları evde uğraşarak geçirdiğim 3-4 yıl gibi) bu yüzden demo'nun ruhundaki başkalarının beğenisini kazanmak gibi bir keyfinizde olmuyor. (sadece kod yazmaktan bunalıpda bişey yapamadığım için başkalarına anlatmak istediğim tonlarca şey vardı o zamanlar bkz:
http://raven.rdgnetwork.org/cm/cm.htm )
directx, opengl kullanırsanız ne oluyor ? gereksiz tonlarca ayrıntıdan kurtuluyorsunuz. (köklere dönersek c ile diil asm ile yazmamız gerekli. dönmeyelim lütfen oralara acı günlerdi onlar.) zaten sadece directx api'lerini kullanarak yaptığınız şeylerde pekte matah şeyler değil. yani bir tane mesh'in üstüne texture sarıp çevirerek bir şey yapmış olabilirsiniz ama görsel bir güzellik elde edemiyorsunuz. hatta dx içindeki ışıklar bile bir zaman sonra tatmin etmeyecek sizi. hardware'in asıl güzel tarafı olan shader'larla uğraşmaya başlayacaksınız (thanx to hlsl). biraz daha uğraştıktan sonra dx kullanan kodlarınız içinde sadece texture kaplanmış, ekran koordinatlarına ayarlı bir quad (4gen) çizmek dışında pek bişeyde kalmayacak.
ne anlatmaya çalışıyorum? hardware rendering ilk giriş yaptığınızda elinizin altında herşey var zannettiğiniz bir ortam ancak ihtiyaçlarınız arttığında aslında çok hızlı piksel basan bir grafik motorundan başka bişey olmuyor.
amacımız zor olanı yapmaksa
http://en.wikipedia.org/wiki/High_dynamic_range_rendering adresindeki gibi şeylerle uğraşabiliriz. çünkü hem güzel hem zor, yani bir coder için orgazm noktası.
amacımız eski günlerin kıymetini bilmekse pc'den uzak durmamız lazım. çünkü ben bu hatayı yaptım ve nefret ediyorum bundan. ( kendi yazdığım demoyu artık çalıştıramamak gibi bir sorunum var, bi nevi çocuğunu özlemek diyelim )
amacımız görsel olanı yapmaksa kural koymayalım. çünkü kaynak makinasıyla da, koca tomrukları oyarak da sanat yapan insanlar var.
belkide artık kod yazmaktan sıkıldım ve sadece tembellik ve bıkkınlık yüzünden böyle düşünüyorum. sizin fikirleriniz nedir ?
poison/rvn