játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5478
FZoli:    4893
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2526

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2195
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [82]
Instalok - Tag | 602 hsz       Online status #204840   2014.09.21 20:06 GMT+1 óra  
Aha, ebben van valami. Nekem jelenleg az összes shading külön-külön shader, tehát külön program is. Jelen esetben hogy érdemes megoldani az alpha testet? Annak is egy külön shader, ami ugyan azt csinálja egyébként, csak az elején discardol, ha az alpha a határérték alatt van?

Elképzelhető, hogy eddig teljesen rosszul használtam a shadereket, és van ennél hatékonyabb módszer is. Betöltöm a két shader source-t, compile-olom, majd linkelem a programhoz. Ez alkot egy shadert. Mivel különböző megvilágítási modelleket szeretnék használni, így mindegyikre írok külön shadert - igazából #ifdefelek -, mivel SM 2.0 a target, a shaderen belüli elágazásnak nincs túl sok értelme.

   
syam - Törzstag | 1491 hsz       Online status #204839   2014.09.21 19:48 GMT+1 óra  
Alpha test nincs shaderek mellett - shaderben kell megoldanod míg a blendelés tényleg nem befolyásolja a shadert.

Minél kevesebb state állítás annál jobb. Ez igaz glEnable/Disable és glUseProgram hívásokra is szóval lehet sakkozni
alias aalberik
   
Instalok - Tag | 602 hsz       Online status #204838   2014.09.21 14:56 GMT+1 óra  
Alpha test state állítani nagyon vészes? Van néhány shaderem - például diffuse, diffuse + specular, normal, stb. -, és ezek mindegyikének egy alpha testes illetve egy alpha blendes változata is - ezek nyilván shader szinten nem különböznek, csak state szinten.

Mi szerint érdemes csoportosítani? Ugye nagyjából a következő két lehetőség van:
- shader szerint: adott shaderrel először az opaque meshek, majd alpha test enable, alpha testes meshek. Utána shader váltás, alpha test disable, stb.
- state szerint: először az összes opaque mesh, majd az alpha testesek.

Mindkét esetben az alpha blendeseket mindenképpen külön passban renderelem (deferred shading). A második verziónál kevesebb a state váltás (igazából csak az alpha test state változik), viszont újra és újra be kell állítani a shadereket, így ez nekem költségesebbnek tűnik.

   
Geri - Törzstag | 2195 hsz       Online status #204763   2014.09.10 16:02 GMT+1 óra  
Idézet
Asylum :
de, win7-en működik a dx11 régebbi kártyával is



nem működik, dx11-hez dx9-es kártya a minimum.
dx9-el viszont akár directx5-ös kártyát is használhatsz.

   
Geri - Törzstag | 2195 hsz       Online status #204762   2014.09.10 16:00 GMT+1 óra  
na meg xp-n eleve nincs dx11, vistan is csak szervicepackkal...

   
Asylum - Törzstag | 5478 hsz       Online status #204761   2014.09.10 15:47 GMT+1 óra  
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476082%28v=vs.85%29.aspx

Itt kell beadni feature levelnek a 9.x-et és akkor megy. Ha nem adják be akkor nyilván nem fog.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 602 hsz       Online status #204760   2014.09.10 14:12 GMT+1 óra  
Az jó. Akkor a cryneinge-ből kihagyták. Egyik ismerősöm próbálkozott nemrégiben futtatni egy újabb játékot, amely nem indult el, azzal a hibaüzenettel, hogy DirectX 11 szükséges, és bizony az ő kártyája nem tudott csak 10-est. Azt hiszem egy kis google turkálás után meg lehetett hekkelni, hogy elinduljon, de ez azért nem a legszebb dolog. Persze ez valószínűleg független a DirectX-től, ha az megadja a lehetőséget, csak nem használják ki.

   
Asylum - Törzstag | 5478 hsz       Online status #204759   2014.09.10 13:52 GMT+1 óra  
de, win7-en működik a dx11 régebbi kártyával is
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 602 hsz       Online status #204757   2014.09.10 12:23 GMT+1 óra  
No már a visszafelé kompatibilitást nem úgy értettem. Van egy régebbi videókártyád, aminek nincsen csak DirectX 9 támogatása. DirectX 10-et (11-et) használó engine-t nem fogsz tudni futtatni rajta. Legalábbis amikkel eddig találkoztam, azok ilyet nem tudtak.

   
Asylum - Törzstag | 5478 hsz       Online status #204756   2014.09.10 11:48 GMT+1 óra  
DX11 visszafelé kompatiblis DX9-ig.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 602 hsz       Online status #204755   2014.09.10 11:46 GMT+1 óra  
A külön fordítgatás ráadásul grafikus APItól független dolog. A c/c++ kódot újra kell fordítani a különböző platformokra, akár más és más fordítókkal. Néhány #ifdefet beszúrni a kódba azért nem lehet akkora fájdalom. Ráadásul c++t kell használni, aztán lehet szépen interface mögé rejteni az egészet, így nem kell azzal foglalkoznod, hogy az implementáció milyen grafikus APIt használ. Persze nem mindig egyszerű megtalálni a közös nevezőt, még akár a legegyszerűbb dolgokban sem. Azonban ezt elég egyszer kitalálni. No de ez OpenGL topicban OFF.

OpenGL-ben egyébként csak a gyér (főleg Intel) driver-támogatást sajnálom, nagyon meg tudtam vele barátkozni. Jó pár dolog jobban tetszik benne, mint anno a DirectX 9-es verziójában. Azóta persze a DirectX 10 lehet, hogy jobban áll. Egyszer foglalkoztam vele, még a felépítése is teljesen más volt.

Azonban OpenGL előnye a backward compatibility, azaz simán írható olyan játék is, ami nagyon régi gépeken is fut. A DirectX ezzel szemben: ha a 9-es verziót használod, jó pár "mai" funkció nem érhető el, ha viszont a 10-es - vagy afeletti - verziót használod, akkor a visszafele kompatibilitást veszíted el. Oké, értem én, a legtöbb videókártya már tud legalább DirectX 10-et is kezelni, de hát no!

   
Asylum - Törzstag | 5478 hsz       Online status #204754   2014.09.10 11:38 GMT+1 óra  
Ami egyáltalán nem új dolog, hiszen a konzolról pc-re portolás mindigis ilyen vérhugyozással járt. +1 platform ezen nem ront sokat, ha valaki el akarja adni a szarját, akkor megcsinálja.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Geri - Törzstag | 2195 hsz       Online status #204752   2014.09.10 01:16 GMT+1 óra  
a platformfüggő api addig jó, amíg elszeparálható külön fájlokba, és amíg kb 10 sorból megvan (alsa, mmsystem32, gdi).

viszont hogyha arra kell felépíteni valamit, akkor már brutális következményei vannak nemcsak portolhatóság, hanem akár egy másik fordítókörnyezetre való átállás során is.

   
Seeting - Törzstag | 2306 hsz       Online status #204746   2014.09.09 16:57 GMT+1 óra  
Nekem jó tapasztalataim vannak apple termékekkel és az sdk-val kapcsolatban. A metalt még nem próbáltam mert leszoktam a bétákról, de a Unity úgyis támogatni fogja a háttérben egyébként.
   
Asylum - Törzstag | 5478 hsz       Online status #204745   2014.09.09 15:11 GMT+1 óra  
Pedig a platformfuggo apiknak (pl. Metal) megvan az az elonye, hogy nem pattog a driver bug ideoda az apple meg az ati kozott, hanem eleg az apple-t seggberugni. Persze, hogy ok hogy intezik el az egy mas dolog, en mindenestre ugy, hogy nem veszek apple termeket.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 486 hsz       Online status #204740   2014.09.09 11:03 GMT+1 óra  
ez vegso soron sztem azt fogja eredmenyezni, hogy meg kevesebb kis engine lesz, ami meg lesz, az csak winre. es mindenki hasznaljon unity/udk/stb...

   
syam - Törzstag | 1491 hsz       Online status #204739   2014.09.09 10:16 GMT+1 óra  
Régen sok API volt, akkor jött az egységesítjük őket mozgalom.
Most ez kezd lecsengeni és újra jön(?) a sok, saját API mozgalom.
alias aalberik
   
zeller - Törzstag | 486 hsz       Online status #204738   2014.09.09 09:31 GMT+1 óra  
hat en rohadtul nem akarok platformfuggo apikat hasznalni...

   
Geri - Törzstag | 2195 hsz       Online status #204731   2014.09.08 21:36 GMT+1 óra  
ez egy remek ötlet. használjon cry enginet mindenki a tetriszéhez

   
Seeting - Törzstag | 2306 hsz       Online status #204729   2014.09.08 18:38 GMT+1 óra  
Az az alternatíva, hogy használj ipari engine-t, ne sajátot.
   
Asylum - Törzstag | 5478 hsz       Online status #204728   2014.09.08 15:36 GMT+1 óra  
DirectX, Metal (majd ha lesz OS X-re).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 486 hsz       Online status #204727   2014.09.08 14:51 GMT+1 óra  
Mi az alternativaja?

   
Asylum - Törzstag | 5478 hsz       Online status #204725   2014.09.08 12:39 GMT+1 óra  
Persze ha fizetnek érte, akkor muszáj nekrofilkodni
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 602 hsz       Online status #204724   2014.09.08 10:54 GMT+1 óra  
Halott az OpenGL? Ja jó, most azonnal abba is hagyom, nem is használom soha többé!

   
Asylum - Törzstag | 5478 hsz       Online status #204723   2014.09.08 10:26 GMT+1 óra  
Idézet

még reálisan elkészíthető egy új, nyílt forráskódú grafikus API.



Itt hagytam abba. Az opengl nem nyílt forráskodú, hanem nyilt szabvány...óriási különbség. És egyébként meg egy újratervezés nem fogja megmenteni, már most halott.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Seeting - Törzstag | 2306 hsz       Online status #204710   2014.09.07 19:24 GMT+1 óra  
Asylum - Törzstag | 5478 hsz       Online status #204691   2014.09.04 12:10 GMT+1 óra  
Új zellercikk:

http://darthasylum.blog.hu/2014/09/01/opengl_compute_shaderek

(néha még frissülni fog a nurbs-ös rész)

Ezt a hozzászólást Asylum módosította (2014.09.04 15:31 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 602 hsz       Online status #204688   2014.09.04 10:26 GMT+1 óra  
Jelen esetben a Unity Asset Store-ban néztem szét, van pár jópofa. Általában FBX-ben vannak, de azt lehet ide-oda importálni.

   
syam - Törzstag | 1491 hsz       Online status #204686   2014.09.04 09:58 GMT+1 óra  
Off:
Ekkor viszont már megkérdezném, hogy honnan szoktál szerezni ingyenes csontozott modelleket?
alias aalberik
   
Instalok - Tag | 602 hsz       Online status #204685   2014.09.04 09:51 GMT+1 óra  
Ja értem, akkor túlkomplikáltam. Közben eszembe jutott, hogy egy másik vertexbufferrel nem érek semmit, abba nem tudok csak úgy beleindexelni. Köszi!

   
syam - Törzstag | 1491 hsz       Online status #204684   2014.09.04 09:09 GMT+1 óra  
Szétdarabolják a modellt úgy, hogy egy mesh egyszerre csak 60-64 csontot használjon - skin partitioning-nek hívják.
alias aalberik
   
Instalok - Tag | 602 hsz       Online status #204683   2014.09.04 08:37 GMT+1 óra  
GPU Skinning esetén a shadernek ugyebár át kell adnunk a csont-transzformációkat. Eddig ezt uniform arrayként használtam, amivel kapcsolatban ugye vannak korlátozások. Például, ha kicsit régebbi kártyákkal is kompatibilis szeretnék maradni, akkor legfeljebb 60-64 mátrixot tudok csak egyszerre átküldeni.

A kérdés, hogy mi van akkor, ha több, mint 60 csontom van? Találtam néhány jó kis free modellt, néhányuk 70-80, de volt, amelyik 300 (?! szerintem teljesen indokolatlanul) csontból állt. Vajon hogy használják komolyabb helyeken? Esetleg egy dinamikus vertexbufferbe töltik a bone transformokat, és abból halásszák ki a shaderben?

   
syam - Törzstag | 1491 hsz       Online status #204618   2014.08.25 09:25 GMT+1 óra  
alias aalberik
   
peti634 - Tag | 148 hsz       Online status #204419   2014.08.02 21:55 GMT+1 óra  

OFF:
Gondoltam, akkor inkább már Bind-elgetem a textúrákat, és megpróbálom minimalizálni ezt.
Köszönöm mindenkinek a hozzászólást, és segítséget!!
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Asylum - Törzstag | 5478 hsz       Online status #204402   2014.08.02 15:42 GMT+1 óra  
Szerintem ez már sokkal nagyobb meló, minthogy megérné foglalkozni vele. Szedd szét az atlaszt, így marhára nem éri meg.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
peti634 - Tag | 148 hsz       Online status #204395   2014.08.02 10:26 GMT+1 óra  
Bocs, szerintem rosszul írtam le!
A LOD érték csak a textureLOD függvénynél lenne jó, ami webgl-be csak vertex shadernél használható (mekkora ötlet...), frag. shadernél csak a texture2D függvény 3. paramétere használható, ami nem LOD, hanem BIAS, és ez valami elmosás érték.

Ha 0 akkor nem változik semmi, ha +/-x (x bármennyi lehet) akkor eltolja a mipmap szinteket 1 egységnyivel. Itt arra gondoltam hogy minél nagyobb a depth érték(minél távolabb van az adott pont), annyival tolom a mipmap szintet, így hátha nem veszi az ucsó mipmap szintet, ez viszont hibás, mivel attól függ hogy milyen szögbe nézem az adott felületet.
Ha hegyesszögbe akkor nagy minusz értéknek kell lennie, ha derékszögbe akkor 0 körül, viszont még itt is hozzá kellene számítani a depth értéket is.
Tehát az aktuális LOD levelet kellene kitalálnom hogy mennyivel kellene eltolnom.
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Asylum - Törzstag | 5478 hsz       Online status #204393   2014.08.02 07:20 GMT+1 óra  
[0, 1]-beli depth, mondjuk nemlineáris. Mindenesetre kézzel is ki lehet számolni, akár lineárisan is, ezen már ne akadj fönt Kísérletezz.

http://www.gamedev.net/topic/462133-how-does-the-gpu-choose-mipmap-level/
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
peti634 - Tag | 148 hsz       Online status #204392   2014.08.01 23:24 GMT+1 óra  
gl_FragCoord.z milyen értéket kellene felvennie?
Én kirajzoltam mint szín érték, de mintha folyamatosan 1.0 lett volna, (gondolom a kamerától való távolság lenne).
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Asylum - Törzstag | 5478 hsz       Online status #204383   2014.08.01 21:14 GMT+1 óra  
Kód:
float lod = mix(0, ami_még_jó, gl_FragCoord.z);


de lehet célszerűbb lenne egy 1D textúrát megcímezni hogy ne pixelenként változzon már
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
peti634 - Tag | 148 hsz       Online status #204369   2014.08.01 09:23 GMT+1 óra  
Asylum:
Igen így csinálom, elsőnek feltöltöm 0. level texImage2D-vel, és utána glGenerateMipmap, a textura atlasz képet pedig többféle képen próbáltam. (lent láthatsz is példát), de ugyan az a hiba jön elő. (a távolba már össze mossa az 1x1-es textúra miatt.

WebGL-ben nincs texture2DLod fragment shadernél, viszont (google 1. találat), azt írja, hogy texture2D 3. paramétere használható erre.

Ennek kiszámításában már segítséget szeretnék kérni. Ha + számot adok meg akkor közelebb jelennek meg a mipmap, és így a hiba is. Viszont ha - értéket írok, akkor egyre távolabbra tolja a mipmap leveleket, és így a hiba is csak nagyon távolról jön elő.
A gond az hogy ez egy konstans érték, így egy bizonyos távolságból biztosan elő fog jönni.

Gondolom valahogy folyamatosan csökkenteni kellene a kamerától való távolság függvényében, vagy hogy épp milyen textúra LOD-ot használ, ezt viszont szerintem nem tudom lekérdezni.

szerk:
Szerintem ki kellene számítani a LOD szintet, ezt pedig úgy, hogy milyen szögbe van a vertex a kamerához? Gondolom ide kellene egy normál irány. Ha ez megvan, akkor hozzáveszem még a kamera távolságot is, és ha elér egy bizonyos értéket, akkor folyamatosan csökkenteném a bias-t, így ráerőltetve, hogy ne az 1x1 textúrából vegyen mintát.

Ezt a hozzászólást peti634 módosította (2014.08.01 09:52 GMT+1 óra, ---)
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Asylum - Törzstag | 5478 hsz       Online status #204361   2014.07.31 23:16 GMT+1 óra  
Idézet
peti634 :
texImage2D-nél a levelet egyre nagyobbat adok meg, egyre csökkenő felbontással.



NE!

Első szintet töltsd fel aztán glGenerateMipmap.
Az atlaszt meg úgy csináld meg ahogy írtam.

Ha így se jó akkor használd shaderben a texture2DLod-ot.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
peti634 - Tag | 148 hsz       Online status #204334   2014.07.31 09:41 GMT+1 óra  
már nincs meg, de valami ilyesmi volt:
for (var i = 128, j = 1; i>=1; i/2 , j++){
var c = document.createElement("CANVAS";
c.width = i;
c.height = i;
var cont = c.getContext("2d";
cont.drawImage(this,0,0,i,i);
gl.texImage2D(gl.TEXTURE_2D, j, gl.RGBA, gl.RGBA,gl.UNSIGNED_BYTE, c);
}
Az eredeti kép pedig 256 volt.

Most azzal próbálkozok, hogy a 3-4 textúrába töltők fel különböző egyre kisebb képet, és a távolságtól függően fog dönteni melyik méretet kell használni, úgymond saját mipmap.
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Instalok - Tag | 602 hsz       Online status #204333   2014.07.31 09:10 GMT+1 óra  
Esetleg a mipmap feltöltés kódrészletet be tudnád másolni? Bár nem hiszem, hogy hiba lesz benne, lehetséges, hogy csak ennyit enged meg a specifikáció.

   
peti634 - Tag | 148 hsz       Online status #204329   2014.07.31 08:44 GMT+1 óra  
Próbáltam, de ilyenkor úgy veszi hogy nem adtam meg, tehát fekete lesz az a mipmap, amit nem adtam meg. Ha az 1x1-es hiányzik, akkor az elég távoli részek lesznek feketék.
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Instalok - Tag | 602 hsz       Online status #204328   2014.07.31 08:05 GMT+1 óra  
Azt is megteheted akár, hogy egy bizonyos felbontásnál kisebbeket nem adsz meg. Azaz például az utolsó néhány mipmap mérete ugyan akkora lesz - már ha ilyet enged az OpenGL

   
peti634 - Tag | 148 hsz       Online status #204327   2014.07.31 07:34 GMT+1 óra  
texImage2D-nél a levelet egyre nagyobbat adok meg, egyre csökkenő felbontással.
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Matzi - Szerkesztő | 2526 hsz       Online status #204325   2014.07.31 00:09 GMT+1 óra  
Hogyan állítod elő a mipmap szinteket? Könnyen megeshet, hogy elég lenne csak ott lekorlátozni az előállított szinteket (akkor is, ha ezt esetleg kézzel kell csinálni).
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
peti634 - Tag | 148 hsz       Online status #204324   2014.07.30 22:29 GMT+1 óra  
Igen, én is ezt vettem le
A kérdés az hogy milyen megoldás lehetséges akkor?
Megoldható e valahogy a textúra atlasz, vagy minden egyes textúrát bindelnem kellesz?
(esetleg Cube map?)
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Instalok - Tag | 602 hsz       Online status #204323   2014.07.30 21:55 GMT+1 óra  
Rákerestem gyorsan google-ben, első blikkre azt írták itt-ott, hogy OpenGL ES ilyet nem tud, és ha jól tudom a WebGL az tulajdonképpen OpenGL ES. Majd a guruk megmondják.

   
peti634 - Tag | 148 hsz       Online status #204322   2014.07.30 21:34 GMT+1 óra  
Sajnos nagyon úgy tűnik hogy ilyen lehetőség nincs, enélkül megoldható?
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [82]