Önceki başlık :: Sonraki başlık |
Yazar |
Mesaj |
chenmy1
Kayıt: Oct 17, 2003 Mesajlar: 585 Nereden: Ankara
|
Tarih: Sat Apr 24, 2004 3:05 pm Mesaj konusu: |
|
|
Slm,
üzün süredir üzerinde ugrasamadgim engine ima devam etmeye basaladim ve su anda yardima ihtiyacim olan bir konu ile karsi karsiyayim ...
Simdi yapmak istedigim su elimde ucgenlerim var ve bunlari gorunebilirlik acisindan ekranda olmayanlari elemek istiyorum Point frustum kulandim ve Hizda manyak bir artis oldu fakat nesnenin ortasi ekranda olunca nesneyi cizmiyor ehehe
Ben ucgen cizdirdigim icin ucgen FRUSTUM nasil yapiliyor bilen varsa yardimina ihtiyacim var... veya ucgenlerden bir BOX olusturup oyle elenebilir peki bu nasil olur?
Collision ise soyle bir sorunum var collision tespiti var fakat bundan sonra Normale gore hariket ettirme veya Offset e gore geri itme gibi olaylarda sorunum var asiri ucgen olunca bilgisayar cok yavasliyor birde bilgisayar yavasladiginda carpan ucgeni bulana kadar nesne polygonun icinden gecip gidiyor ) Bana daha saglam bir yontem soyliyecek var mi?
AI ise bu engine ustune bir oyun hazirliyorum model olarak MD2 kulaniyorum aslinda kendi model formatim var fakat suanda animasyon destegi yok sadece MESH bu yuzden bana AI konusunda yardim edecek bir dokuman onerebilir misiniz?
GTA gibi bir oyun yazicagimda hatta yapiyorum sadece deneme amacli ve GTA hic benzemiyo berbat bisi fakat denemek icin hazirlyorum oylesine yani belki yakinda su ustedki sorunlari halledersem gonderirim..
---------------
NOT: ROADMASTEr bu ara ankara da bulusalim sana su hazirladigim GTA benzer oyunun ilk versiyonlarini vereyim bi bak ...CD ye cekcem ...Bu ara ben nete giremiyorum artik fazla bundan sonra arada bir ankarada bir yerde bulusalim oke..
-----------
|
|
Başa dön |
|
|
ferit
Kayıt: Oct 17, 2003 Mesajlar: 1403 Nereden: Jandarma
|
Tarih: Sat Apr 24, 2004 3:18 pm Mesaj konusu: |
|
|
...........
[ Bu mesajı düzenleyen: ferit _FIL 29-04-2004 12:08 ] |
|
Başa dön |
|
|
chenmy1
Kayıt: Oct 17, 2003 Mesajlar: 585 Nereden: Ankara
|
Tarih: Sat Apr 24, 2004 3:36 pm Mesaj konusu: |
|
|
Daha hic bulusmadik ama bulusalim diyorum roadmaster den bir cevap gelirse ona en son yaptigim projeyi CD ye cekip vercem Engine hazirliyorumda...Biliyorsun bizim grubun grafikeri roadmaster
NOT: Road Cepten mesaj cekebilirsin aslinda bir cumartesi veya PAZAR gunu bulusalim...
[ Bu mesajı düzenleyen: chenmy1 _FIL 24-04-2004 16:37 ] |
|
Başa dön |
|
|
mentat
Kayıt: Oct 15, 2002 Mesajlar: 528
|
Tarih: Sat Apr 24, 2004 3:50 pm Mesaj konusu: |
|
|
buradaki mesaji gormedigim icin ozel mesajina yazmistim aslen, tekrarlayamayacam onca yaziyi, istersen sen kopyala buraya ise yarar ise.. genelde bizim sitede olan materyale bakmani onermistim. ucgenleri nasil cizdirdigine bagli olarak (glBegin/end deme) vertex array'le ilgili yazi da isine yarayabilir..
cok ucgenden kastini anlamadim, ne kadar cok? bunlar bir obje olusturmayan, kendi hallerinde ucgenler mi? (particle sistemi falan mi bu?) ucgen basina frustum testi yapmak biraz enteresan ve gereksiz genelde. bi de ucgen cokdan kastini cidden merak ediyorum. su anda ugrastigim is icin 12000 ucgen civari bir modeli realtime anime ediyorum, gik demiyo duduk kart. biraz detay versen iyi olur sahnen ile ilgili.
kolay gele.. |
|
Başa dön |
|
|
chenmy1
Kayıt: Oct 17, 2003 Mesajlar: 585 Nereden: Ankara
|
Tarih: Sat Apr 24, 2004 4:01 pm Mesaj konusu: |
|
|
MENTATIN OZEL MESAJIMA GONDERIGI YAZI:
//--------------------------------------
Ynt: Engine yapimi
frustum:
frustum ile ilgili sitedeki yazima baktin mi bilmiyorum. ama ucgen bazinda frustum yapmak pek akil kari degil. oncelikle bounding volume uzerinden frustum culling yapmalisin. ucgen testi sana zaman kazandiracagina kaybettirebilir bile. ama illa yapacam diyosan, sonucta biraz geometri biraz google ile yaparsin. yapacagin is, kameranin yon vektoru ile ucgen normalini dot'lamak. (baslangic) backface culling denilen nane ile ilgili materyali okursan (buradaki) anlarsin assagi yukari.
collision konusunda fazla bilgim yok. yine flipcode, gamedev'e bir goz at, bir suru makale var.. problemin genel olarak cozumu su, colision testi icin, objenin o anda degil, birkac frame sonra olacagi yeri teste sok, sonucta hareketli nesnenin hiz vektoru elinde var, o nesne atiyorum 0.1 s sonra nerede olacak onu bul, ve ona gore o noktada carpisma olacak mi bak. jeff lander olabilir, gamasutra'da bir yazisi vardi, collision, bilardo toplari ve fizikle ilgili, gamedev'den linki bulursun..
//--------------------------------------------------------------------
Simdi cevaplar VERTEX ARRAY kulaniyorum . Haritayi 3dSMAX den export ediyorum..
6000 ucgen var suanda Ekranda ve Geforce fx 5200 PIII 800 128 mb ram de test ediyorum ve 150 FPS veriyor .. Fakat asil sahnemde 100.000 ucgen var ehehe .. bundan once 90.000 ucgen olan bir sahneyi render ettim ne EFEK var ne bisi sadece ucgen render ve 5 FPS verdi eheh .. eger ucgen sayisi point frustum ile elersem karsida 2500 felan ucgen kaldiginda 300 FPS ye cikiyorki bunda ne efek var ne bisi ...
Anliycan frustum a ihtiyacim var...Collision sorunum var OCtree kullanarak haritayi parcalara ayirmak ve hangi parca icinde isen ona gore collision yapmayi kulanicam ve onsa ucgenlerden box olusturup Eliyor galiba o sistem oyle birseyler yapcam ama kendim yazmak istiyorum iste...
harita editoru yapcam su aralar Lineer cebir kasiyorum ogrenmeye calisiyorum aslinda 2.sinifa gecince ogretcekler ama neyse eheh.. |
|
Başa dön |
|
|
ferdemoncel
Kayıt: Nov 03, 2003 Mesajlar: 277 Nereden: Eskişehir
|
Tarih: Sat Apr 24, 2004 5:07 pm Mesaj konusu: |
|
|
> Lineer cebir kasiyorum ogrenmeye calisiyorum
Chenmy bildiğin ya da incelediğin güzel Türkçe Lineer Cebir kitabı var mı ? |
|
Başa dön |
|
|
mentat
Kayıt: Oct 15, 2002 Mesajlar: 528
|
Tarih: Sat Apr 24, 2004 8:14 pm Mesaj konusu: |
|
|
octree kullanacaksan frustum da arada hallolmus olur collision ile birlikte. kamera frustumunu bi obje olarak dusun, frustum culling denen sey sonucta kamerayla ucgenlerin arasinda carpisma testinden baska birsey degil.. guzel cozum yani octree..
ancak bu ucgenler kendi baslarina ucgen degil de bir objenin ucgeni olacaklarsa ("uzay gemisinin ucgeni" zincirleme isim tamlamasinda oldugu gibi) bunlari kaplayan hacim (bounding volume) uzerinden frustum culling yapmak cook daha karli olur tek tek ucgenlere bakmak yerine.
kolay gelsin. |
|
Başa dön |
|
|
chenmy1
Kayıt: Oct 17, 2003 Mesajlar: 585 Nereden: Ankara
|
Tarih: Sun Apr 25, 2004 1:29 pm Mesaj konusu: |
|
|
valla daha almadim lineer cebir kitabi bir tane Analitik geometri kitabi aldim ve onun icinde sadece ufak bir anlatim var simdilik onlara bakiyorum.... ama bu kitabi bitiriyim alcam bi tane..
neyse aslinda mentat ucgenler bir model ev , araba v.s. Haritada bile mesh olarak tek bir nesne gibi davraniyor bunlari min ve max degerlerini verebilcem bir kutu ile kapliyabilir miyim?
birde su 10 000 ucgeni real time render ediyorum dedin ya onu nasil yapiyorsun yaw eve gidince denedim 10 000 ucgen cizdirdim ekrana ve FPS 17 veya 14 oldu yaw bunu nasil yapiyorsun?
[ Bu mesajı düzenleyen: chenmy1 _FIL 25-04-2004 14:48 ] |
|
Başa dön |
|
|
mentat
Kayıt: Oct 15, 2002 Mesajlar: 528
|
Tarih: Mon Apr 26, 2004 12:41 am Mesaj konusu: |
|
|
bilmem, calisiyo valla. ekran kartim da intel mi ne isyerinde (yarin sabah ati 9800 xt oluyor) ya da matrox g550.. 3d icin duduk yani. yaptigim enteresan bisey yok, tek texture, tek sabit isik (gl isigi) vertex array, indexed geometri.. buradaki yazilarda yazdiklarimdan bir gram fazla yok. 150 fps civari. gf4 ti4200 ile ise 300-400 fps'e cikiyor.
eger ev araba ise o ucgenler, illa ki duzgun bir yapida tutman sart. ve ustune dedigine benzer sekilde bounding box ve sphere oturtman da sart. axis aligned bounding box (AABB) falan diye ortalikta binlerce makale bulabilirsin. sphere olani sanirim burda da olacak. hem sphere hem box, ikisini de kullan, sphere kabaca ilk eleme icin en ucuz cozum, sonra box'a bakarsin, ardindan da illa lazimsa ucgen frustum kasarsin.. (collision icin de ayni mantik)
ancak octree cozumu space partitioning (turkcesi ne ki?) icin yine lazim. onu da yap.
kolay gelsin |
|
Başa dön |
|
|
sensei
Kayıt: Nov 22, 2002 Mesajlar: 80 Nereden: istanbul
|
Tarih: Tue Apr 27, 2004 9:04 pm Mesaj konusu: |
|
|
uchgen seviyesine indigin noktada unut o ishi. neticede sen 10,000 yuzeyli bi objenin uchgenlerini FOR dongusu yapana dek GPU cizer zati onu.. (frustum dishinda oldugu case'de.. cunkum rasterizer ve pixel pipeline calishmayacak).. bunun ichin butun culling / collusion ishlemlerini kesinlikle OBJE bazinda yapmaya calish. (collusion ichin onerim eger etrafta COOOK (50-60 bin objeden bahsediyom ) varsa Recursive Dimension Clustering ustune bi algorithma bilmiyom... arashtirabilirsin bu konuyu..ama az obje halinde de fena olmayan bi performans ile calishiyo).. Frustum'a gelince dedigim gibi object bounding box'larina (veya sphere artik ne istiyosan) bak ve ciz objeyi.. (veya cizme) fakat cok ot bok cikabiliyo o calculation sirasinda yani sadece BOX frustum planelerinin saginda mi solunda mi onunde mi falan diye bakmak la olacak bi ish degil birazcik daha ugrashman gerekbilir. neticede cok ishlem yapsan bile UCHGEN bazinda yapmadigin ichin daha enteresan sonuchlar cikiiyo. benim bounding boxlar ile frustum checking'de bildgiim en onemli bug. BOX'in frustum ichinde olmasina ragmen ciziliyo olmasi...
(bi deniim bakalim cizebilecekmiyim)
+----------------+
| / |
/ |
\ / |
\ / |
--\--------------------------/--|---------------------------
\ / |
\ / +--------------
goruldugu (bilmiyom goruluyo mu da) gibi bu BOX SAG PLANE'in SOLUNDA ve UST plane'inn ALTINDA NOKTALAR icheriyo.. yani standart bi frustum culling bu HATAYI goremez. o yuzden birazcik daha kafa yormak gerekiyor.
collision ichin ise, once bi on elemeden sonra hanki objelerin carpishtigini bulduktan sonra tek gereken carpishma vectorlerini hesaplamak. .ishte bu noktada geometric olarak objeye bakmak gerekiyor... ANCAK!.. niye 10K yuzeye bakasin ki ? cizdigin MESH ile collusion detection yaptigin MESH ayni olacak diye bi zorunluluk mu var ? neticede cizdigin MESH VIDEO RAM de (degil mi?! duh!) .. hali ile kendi mem'inde de cok basit halini tutup o TASLAK uzerinden collusion yapabilirsin.. 10K poly yerine 1K poly ishi.. 10 * 10 = 100k2 control... 1 * 1 = 1k2 control.. yani 100 kati kadar hizlandiracak. (karesi ile orantili, iki objenin de ayni tip oldugu dushunulurse) ya da tabe degishik yontemler bulmak da mumkun.. yani illa ikinci kopyani MESH gibi tutacak degilsin kendine gore ceshitli yontemler gelishtirmek mumkun.. PATCH parchaciklari olarak tutarsin direk fonksyonel cikartabilirsin... vs. vs. vs.. .
haaa. bi de shoole bishii verim belki ishe yarar..
http://www.ce.chalmers.se/staff/uffe/vfc.pdf
http://www.ce.chalmers.se/staff/uffe/Vfc_Bbox.pdf
bakiniz egleniniz.
bu arada bir ornek de benden gosteriim o FRUSTUM bug'ina...
http://sensei.dhs.org/_download/scr02.jpg
bakiniz en ALTTAKI UCAK aslinda gozukmemesi lazim. tamamen frustum dishinda.. ama ustte ASCII olarak gostermeye calishtigim sebepden dolayi gozukuyor. sebebi de FRUSTUM planelerini genelde ax + by + cz + d = 0 gibi bi denklemden olushan bi yapi ile compare edilmesi.. cunku o PLANELER sonsuz degil... orada PATCH (yani SONLU PLANE - PATCH) comparison yapilmasi gerekiyor. o da cok vakit kaybettirir.. birak GPU cizsin.
neyse bu da boole bi yazi oldu. umarim ASCII drawin cikar.. hadi misbillah....
[addsig] |
|
Başa dön |
|
|
Arda
Kayıt: Feb 25, 2003 Mesajlar: 226
|
Tarih: Tue Apr 27, 2004 11:17 pm Mesaj konusu: |
|
|
auheu dayanamadım konu dışı olacak ama sensei şeylere benziyor, hani çok akıllı herşeye kafası basan deliler olur ya... böyle kendi kendine hareketler yapıp sürekli ironiyle konuşurlar filmlerde
forumun deli-dahisi sensei eheh |
|
Başa dön |
|
|
deniz Site Yöneticisi
Kayıt: Sep 14, 2002 Mesajlar: 838 Nereden: Ankara
|
Tarih: Wed Apr 28, 2004 9:26 am Mesaj konusu: |
|
|
chenmy1: çizdirdiğin üçgenlerin boyutları önemli.. 10000 adet büyük(!) üçgen ile küçük üçgen çizdirmek arasında duruma göre epey bi hız farkı olabilir (fill rate limited hadisesi..).. bide nasıl çizdirdiğinde önemli (display list vs..).. sonra back face culling enable/disable buda önemli... |
|
Başa dön |
|
|
chenmy1
Kayıt: Oct 17, 2003 Mesajlar: 585 Nereden: Ankara
|
Tarih: Wed Apr 28, 2004 2:36 pm Mesaj konusu: |
|
|
sanirim deniz haklisin ucgenleri cok buyuk cizdiriyorum galiba ...
Ben ucgenleri Vertex_Array ile cizdiriyorum Arkalarini cizdirmiyorum CULL_FACE kulaniyorum yani..
Ne yaparsam hizda bir artis olmadi galiba ucgenleri buyuk cizdiriyorum.
Bu ara ucgen frustum yaptim ekranda butun ucgenler gozukunce yavaslama oluyor ama eger az ucgen kalirsa 40-50 FPS artis oluyor ama bundan sonra BOX Frustum kullanicam..
Collision meselesine gelince ugrasmadim ama hala nasil yapilacagi konusunda kafamda bir sey olusmadi aciklamalar guzel ama yapmaya gelince aklina bir sey gelmiyor bir ornek incelemek ii olurdu ama nete sadece cafeden girebiliyorum aramasi bulmasi zor olurdu aslinda oyunyapimi.org da boyle bir dokuman olsa ii olucak ehe hemen ulasmak icin yani..
Her neyse bundan sonra ucgenleri kucuk boyutlarda cizdirmeyi deniycem ... |
|
Başa dön |
|
|
sensei
Kayıt: Nov 22, 2002 Mesajlar: 80 Nereden: istanbul
|
Tarih: Wed Apr 28, 2004 5:28 pm Mesaj konusu: |
|
|
arda : heh aynen.. bi dahaki cevabima "Thou shalt...." diye bashliyacam bu gazla...
"Thou shalt not use triangles in culling..."
tuh... yok olmadi bee. karizma gittikche dagiliyo... yok yapamayacam ben bu ishi...
|
|
Başa dön |
|
|
ferdemoncel
Kayıt: Nov 03, 2003 Mesajlar: 277 Nereden: Eskişehir
|
Tarih: Wed Apr 28, 2004 10:04 pm Mesaj konusu: |
|
|
[ Bu mesajı düzenleyen: ferdemoncel _FIL 29-04-2004 00:34 ] |
|
Başa dön |
|
|
|