Gönderen Konu: Software & Hardware Rendering  (Okunma sayısı 18638 defa)

Software & Hardware Rendering

« : 05.04.2006 00:43:46 »
Hızlı düğmeleri aç

poison

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
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

Software & Hardware Rendering

« Yanıtla #1 : 05.04.2006 01:25:11 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@poison: Senin görüşlerine tamamen katılıyorum kardeşim ama software engine yazmış, hele ki birçok algoritmasını kendisi keşfetmiş birisine saygımız sonsuz ve zaten tartışmalarda geçen hedef kitleye kesinlikle dahil değilsin sen (ve senin gibiler). Hardware desteği kullanmak senin gibi bir adam için (eğer sen de textmode'a sarmazsan ehehe) hemen hemen tek mantıklı yoldur.

Gelelim benim derdime. Affına sığınarak Decipher'dan bir örnek vereceğim. Dechiper da DirectX / OpenGL gibi API'lerden ya da bunları kullanan gelişmiş programlama dilleri ya da libraryleri biliyor ve kullanıyor. Ama justify nasıl yapılır bilmiyor ve düşünerek de bulamıyor. Kısacası interpolasyonun ne olduğunu ve tahminimce (yanılıyorsam düzelt beni Dechiper) Bresenham'ın Line, Circle v.s. algoritmalarını daha önce hiç kullanmamış. Böyle alt yapı eksiklikleri bulunan bir coderın 3DS Max'de hazırlanmış bir sahneyi uygun bir formatta export edip içinde delicesine dolaşmasını mümkün kılıyor bu libraryler. Bu gidişle benim delikli kartlar dönemini kaçırdığıma duyduğum üzüntüyü gelicek nesiller software engine yazmamış olmalarına duymayacaklar.

3 boyutta düşünmek zor bir iştir. Ekrana bırak üçgen çizdirmeyi, plot fonksiyonuyla line çizdiremeden de 3d sahneler oluşturabilmek, programcıya birşeyler kazandıran değil kaybettiren şeyler bence.

Decipher kusura bakma seni örnek olarak kullandım ancak konuya çok oturan bir örneksin, dolaylı yollardan imada bulunmak istemedim. Kötü bir niyetim yok. Eminim anlayışla karşılarsın. Bana bir soru sorduğuna bin pişman oldun tahmin ediyorum ancak şu anda tartıştığımız şey bu tür ufak ayrıntılarda gizli.

Software & Hardware Rendering

« Yanıtla #2 : 05.04.2006 01:41:33 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Bu konunun haricinde hardware rendering ile ilgili takıldığım nokta ise şudur. Exceed'in Spot isimli demosunda mip-mapping, panaromic view, soft 3d bir engine, sıkı soft light&shadow olayları, 3d blobs v.s. efektler yer alır.

şimdi günümüzde biri bu demonun aynısını hardware destekli yapsa demo benim gözümde şu hale geliyor.

"3d blobs efekti"

Niye? Mip-mapping mi zor (textureları hazırlama kısmı zordur ama kod olarak değerlendiriyorum), panaromic view mı zor, 3d engine mi zor, light & shadow olayları mı zor? Hiçbiri zor değil. Ayrıca bunlar bir yerden sonra "efekt" olmaktan da çıkıyor insanın gözünde. Panaromic view tarzı birşey görünce aklıma "bir sphere'in iç yüzeyine texture sarmış" demek geliyor.

Poison, sizin demoda ise gerçekten birkaç güzel "demo efekti" vardı. Ancak en çok eleştirildiğiniz uzay gemisinin tünelde ilerlemesi gibi partlarda pek bir efekt yoktu, epey bir shader kasılmıştı. ışte bu noktada hardware renderingin doğru kullanıldığı sürece olumlu birşey olduğu ortaya çıkıyor. Ortada bir efekt olmadığı sürece ne kadar realistik sahne elde edersen et, bu en fazla oyun endüstrisinin ilgi alanına girecektir. Benim gözümde "demo = demo efekti"dir. Render kalitesi demonun kalite seviyesini belirler.

Sana komik birşey söyliim Poison. Sen uzay gemisinin tünelde ilerlediği parttaki (bu arada en son parttan bahsediyorum deminden beri) shaderları kaldır, tünel texturelarını daha random texturelara çevir ve kamerayı daha da basit bir sinusle hareket ettir, bak bakalım ortaya ne çıkıyor. Söyliim "daha bir demo efekti" çıkıyor. Ben shader desteklemeyen bir ekran kartında seyrettim demonuzu şirketteki bir makinada (tebrik ederim, yine de çalıştı düşük bir FPS ile de olsa), orda son partta geminin üçgenlerini seçebildiğim anda daha bir hoşuma gitti part. Kabul ediyorum bende de epey bir geri kafalılık ya da diğer bir değişle eskiye bağlılık var ancak çok realistik bir sahne, insana o kadar gerçekçi geliyor ki insan orda gerçek olmayan ekstra bir efekt arıyor. Benim gözlemim budur en azından.

Software & Hardware Rendering

« Yanıtla #3 : 05.04.2006 02:02:00 »
Hızlı düğmeleri aç

chenmy1

İleti: 184

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://www.mosengine.inativa.com
kendi agzinla diyon iste software / hardware / bilmemne wware hepsi hikaye DEMO = EFEKT v.s. :D

neyse software /hardware takacak bisi yok iste CARET en buyuk ornek efektleri software yapti kazandi...

Softwaredu /hardwaredu bunu bir sorun haline getirmek degilde bundan verim almak onemli .. Mesala ruslarin yaptigi parti davetiyesi software du ve bence gayet mukemmeldi takdir ettim adamlari..

verim ..verim ..verim ..verim ..verim ..verim ..verim ..verim ..

baska bisi demiyom..
Algoritmik Geometri^S!P and MEE!ditor 64/4 kb intro tool.

Software & Hardware Rendering

« Yanıtla #4 : 05.04.2006 11:04:23 »
Hızlı düğmeleri aç

scg

İleti: 214

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
Sene 2006 , bu devirde PC de software rendering yapmanın bi anlamı yok. 3D accelerated Hardware in ilk 3 nesli (tnt , geforce ,geforce2) kötüydü bence. Çünkü computer graphics ile iligili pek çok konsept chip e hardwired eklenmişti. O yüzden yapılan her demo , oyun aynı gözüküyodu. şimdi ise durum daha farklı vertex ve pixel shader lar sayesinde canınız ne istiyorsa yapabilirsiniz , software rendering deki esneklik geri geldi. Raven ın demosunda shader kullanıldımı merak ettim?

Yani , hardware i kullanın. Adamlar o kadar transistörü boşuna sokmuyolar oraya.

Software & Hardware Rendering

« Yanıtla #5 : 05.04.2006 11:35:48 »
Hızlı düğmeleri aç

Hydrogen

İleti: 932

Çevrimdışı
  • 7DX Organizer
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.glance.ws
Boyle uzun makale tadinda yazilari Plazma icin de yazsaydiniz gercekten guzel olurdu.

Bu arada Software rendering, kohnemis bir anlayis degil, bir iddiadir.
Anlayan insanin gozunde her zaman anlami olacaktir.
Demo scene'in en buyuk tatminlerinden biri, transistor sayisinda degil, bir iddiayi ortaya koyarak onu ispatlamaktadir. Ayni zamanda, bir demo hangi hardware'da yapilirsa yapilsin, anlamsiz olmayacaktir. Cunku anlami olan hardware degildir. Senin o hardware'le ne yaptigindir.

Software & Hardware Rendering

« Yanıtla #6 : 05.04.2006 11:50:49 »
Hızlı düğmeleri aç

scg

İleti: 214

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
"PC scenede" iddiaların bir önemi yoktur. ıspatlanacak bişey yok çünkü. Artistik unsurlar artık önemli. Demo dizaynı , akışı , müzik falan gibi. Software rendering diğer platformlarda geçerli ama PC de devri kapandı. Tabii öğrenme amaçlı olarak coder ların çok işine yarayabilir.

Software & Hardware Rendering

« Yanıtla #7 : 05.04.2006 12:58:23 »
Hızlı düğmeleri aç

Hydrogen

İleti: 932

Çevrimdışı
  • 7DX Organizer
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.glance.ws
"PC scenede" iddiaların bir önemi yoktur."  ıspatlanacak bişey yok çünkü. Artistik unsurlar artık önemli. Demo dizaynı , akışı , müzik falan gibi. Software rendering diğer platformlarda geçerli ama PC de devri kapandı. Tabii öğrenme amaçlı olarak coder ların çok işine yarayabilir."

ıddiaların her zaman bir önemi vardır. Felanca felanca yeni çıkan ekran kartlarının özelliklerini ilk önce ve en verimli şekilde kullanmak bile bir iddiadır. 195/95'in 64 Kblik versiyonu195/95/256'da bir iddia idi. ıddialar her zaman her platformda var olacaklar. ıddia'yı "imkansız düşüncelerle" sınırlamayın. Bir artistik düşünceyi, bir efektle daha önce kimsenin başaramadığı bir şekilde, büyük bir uyumla birleştirmek de bir iddiadır. Farklı olmak bir iddia'dır. Benim demom farklı olacak dediğinde bir şeyi iddia edersin. Ve bu ispatlanması gereken bir şeydir.
Demo scene'de zaman zaman ağırlıklı olan platformlar, efekt tarzlari vs. olabilir. Ama Demo scene'de hiç bir iddia'nın devri kapanmaz.

Software & Hardware Rendering

« Yanıtla #8 : 05.04.2006 21:16:46 »
Hızlı düğmeleri aç

poison

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
akşamları ancak oturup bişeyler yazabildiğim için biraz geç cevap oldu, affola.

temel bilgi konusunda sorun zamanla alakalı sanırım. yani şu an direk hardware rendering ile çalışan insan interpolation nedir bilmez doğrudur. ama gerekli mi?

zamanı biraz geri alırsak delikli kartlarla program yazanlarda bizim fikirlerimizi kabul etmeyecek. mesela bilgisayarın reset tuşuna bastıktan sonra neler oluyor, bios nasıl çalışıyor gibi ıvır zıvır bilgileri bilenimiz azdır. (bişey bildiğim için diil etrafımdaki programcılara bakarak konuşuyorum, adamlar bios'un nasıl çalıştığını değil anlamak hiç bir fikirleri yok)

yani bizden önceki jenerasyonun temel diye gösterdikleri şeyler bizim için core bişey. bu yüzden line algoritmasının nasıl çalıştığını yeni jenarasyonun bilmesi bence çok şart değil, şükürler olsunki bilgisayarda zaman geçtikçe öğrenecek başka şeyler çıkıyor. mesela oop. standart c ile yazan birisi için oop "brave new world" tadında bişey. delikli kartlarla program yazmış birisininde oop dünyasına bakışı bizimkine benzeyecek tabiki.

neyse iddia konusunda iki karşıt gibi duran post benim için aynı fikir. mesela plastic'in yaptığı demolar bu iki post'uda karşılıyor. sanırım ikisi birlikte olduğunda bu güzel diyoruz.

neys ben sorularımın cevabını aldım sanırım, fikirlerinizi söylediğiniz için sağolun.

poison/rvn

Software & Hardware Rendering

« Yanıtla #9 : 06.04.2006 00:24:01 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Alıntı
Originally posted by poison@Apr 5 2006, 08:16 PM
temel bilgi konusunda sorun zamanla alakalı sanırım. yani şu an direk hardware rendering ile çalışan insan interpolation nedir bilmez doğrudur. ama gerekli mi?
Aslında ben derim ki temel matamatik, mantık ve algoritma konusunda bilgileri sağlam olsun da direk hardware rendering kullanarak başlasın olaylara. Ancak "gerekli mi?" elbette ki tartışılmaz. Gerekli... Tamamen ezbere dayalı olarak demo efektleri öğrenip uygulanabilir ancak mantığını anlamadığın sürece bu efektleri geliştirmeye de pek olanak yoktur. Bu güne kadar ne zaman world first bir efekt çıksa, ne zaman scenede kilometre taşı sayılacak bir demo çıksa, hep "efektlerin mantığını kavramış" ya da "yeni mantıklar üretmiş" insanların imzası vardır. Yoksa senden öncekilerin yaptığı şeyi yarım yamalak uygulamakla çok da bir yerlere varmak mümkün değildir.