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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2190
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]
Pretender - Törzstag | 2498 hsz       Online status #171791   2012.01.02 18:33 GMT+1 óra  
Idézet
Mangal :
Heló!
Irányított fénynél hogy lehet elérni,hogy egy 2d quadnál egy kört világítson ki,ne pedig csúcspontokra számolja ki a hatást?


Az irányított fénynek a lényege, hogy minden pontra ugyan úgy hat. Kört az spot lighttal tudsz

   
Pretender - Törzstag | 2498 hsz       Online status #171790   2012.01.02 18:32 GMT+1 óra  
akkor ahol lehet, érdemes az ARB-s verziót használni, ha jól értem.
Mostanában nem csináltam semmit, szóval ismét VBO: hogy van ez akkor? Láttam több félét is, pl. EnableClientState minden egyes mesh esetén kell, vagy csak rajzolás előtt, és Disable az összes mesh rajzolása után? Illetve:
glEnableVertexAttribArray vs. gl*Pointer
Illetve ugye ehhez kapcsolódóan igaz-e ez is, az előzőre? (összes mesh rajzolása előtt, vagy minden mesh előtt?)

   
Mangal - Tag | 19 hsz       Online status #171788   2012.01.02 18:23 GMT+1 óra  
Heló!
Irányított fénynél hogy lehet elérni,hogy egy 2d quadnál egy kört világítson ki,ne pedig csúcspontokra számolja ki a hatást?

   
Asylum - Törzstag | 5462 hsz       Online status #171787   2012.01.02 17:41 GMT+1 óra  
Arra figyelj, hogy nem mindegyiknél csak a postfix a különbség; például a shaderes extension eléggé át lett nevezgetve (viszont so far ez az egyetlen lényeges).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #171786   2012.01.02 17:23 GMT+1 óra  
Elvileg semmi.
Gyakorlatilag a postfix nélküli változat már a core része vagyis ahhoz már az adott verziójú OGL támogatás szükséges.
Pl. ha FBO-t használsz EXT nélkül, akkor 3.0 a min. verziókövetelmény, ha EXT-tel használod akkor csak 1.1 (+ FBO extension támogatás).
alias aalberik
   
Pretender - Törzstag | 2498 hsz       Online status #171784   2012.01.02 16:32 GMT+1 óra  
Mi a különbség a "sima" és az ARB extensionök között? pl. glBufferData vs. glBufferDataARB

   
Pretender - Törzstag | 2498 hsz       Online status #171745   2012.01.01 20:14 GMT+1 óra  
Idézet
Geri :
szerintem felesleges ilyesmivel bonyolítani a dolgot, csak a kódod komplexitását növeli feleslegesen. nem lesz jelentősen lassabb a rendszered akkor se, ha szűkség esetén textúrát váltassz


Na, meg is van egy újabb optimalizáció a számodra. Jó munkát

   
Asylum - Törzstag | 5462 hsz       Online status #171744   2012.01.01 20:02 GMT+1 óra  
Idézet
zeller :
kezelheted kulon modulkent



Ilyet ne mondj neki, az lassitja a forditást
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 474 hsz       Online status #171743   2012.01.01 20:01 GMT+1 óra  
@geri
Sztem egy ilyen kodot eleg egyszer megirni, ha standardizalod a parametereit a texturanak, ezt pedig kezelheted kulon modulkent igy nem fujja fel a kodot. Sot, a legjobb, ha meta kodot irsz es forditokat gpu-kra

   
Asylum - Törzstag | 5462 hsz       Online status #171742   2012.01.01 20:01 GMT+1 óra  
Én minden epszilonnál kisebb marhasághoz textura atlaszt használok (és mellé természetesen static vagy dynamic batchinget ami részecskéknél elengedhetetlen).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1294 hsz       Online status #171741   2012.01.01 19:52 GMT+1 óra  
Én az összes részecskerendszert is képes vagyok egy rajzolással megoldani, mert color-ban átadok tile méretet x,y indexet tile-ra és elfordulást, így még külön-külön foroghatnak is - ezt pixelshaderben, a tileozás vs-ben mehet. Elég jól bevált. így egy rajzolás a alfásoknak, egy a addivitve és egy a sima blendelteknek. Mondjuk ez azoknak lehet fontos, ahol sok minden robbanhat egyszerre. hehe
   
Geri - Törzstag | 2190 hsz       Online status #171739   2012.01.01 19:03 GMT+1 óra  
szerintem felesleges ilyesmivel bonyolítani a dolgot, csak a kódod komplexitását növeli feleslegesen. nem lesz jelentősen lassabb a rendszered akkor se, ha szűkség esetén textúrát váltassz

   
syam - Törzstag | 1491 hsz       Online status #171734   2012.01.01 14:45 GMT+1 óra  
Igen. Egy részecskerendszert akár egy textúraváltással megúszol.
alias aalberik
   
Mangal - Tag | 19 hsz       Online status #171733   2012.01.01 14:37 GMT+1 óra  
Sebesség szempontjából is a 2.ik az előnyösebb?

   
Matzi - Szerkesztő | 2522 hsz       Online status #171732   2012.01.01 14:27 GMT+1 óra  
Az utóbbit, mert úgy jó eséllyel ráférsz egyetlen értelmes méretű textúrára, és nem kell sok apró kicsit betöltened hozzá.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Mangal - Tag | 19 hsz       Online status #171731   2012.01.01 14:23 GMT+1 óra  
Heló!
Szerintetek sprite alapú animáció kezelésénél melyik a célszerűbb
,a képkockákat külön textúraként legenerálni, vagy pedig az össz képet egy nagy képként, és azt úgy feszíteni a quadtra hogy csak egy képkocka látszon belőle?

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #171521   2011.12.28 22:51 GMT+1 óra  
Idézet
proof88 :
hát nem le lettem cseszve?!
de most valszeg nem az lesz a bottleneck hogy 4x4-et használ 3x3 helyett, na!

Részemről abszolút nem lecseszésnek szántam. Csak annyit mondtam, hogy egyetértek Gerivel abban, hogy sok kis optimizációs lehetőség kihagyása is okozhat nagy performance-veszteséget.
Dare to imagine!
http://www.insaneidea.hu
   
proof88 - Törzstag | 530 hsz       Online status #171518   2011.12.28 22:29 GMT+1 óra  
hát nem le lettem cseszve?!
de most valszeg nem az lesz a bottleneck hogy 4x4-et használ 3x3 helyett, na!
   
syam - Törzstag | 1491 hsz       Online status #171511   2011.12.28 20:11 GMT+1 óra  
Ha tudod egy mátrixról, h csak eltolást és forgatást tartalmaz akkor azt gyorsan tudod invertálni: minor mátrix transzponálás aztán az eltolást transzformálod és negálod a transzponált minor mátrixszal.
Ha jól tudom a skálázást is bele lehet venni a tengelyek hosszának figyelembevételével.
alias aalberik
   
Asylum - Törzstag | 5462 hsz       Online status #171510   2011.12.28 20:09 GMT+1 óra  
Lagrange-féle kifejtési tétel (ez az a bizonyos aldeterminánsos). Telejesen jól használható, nem kell hozzá se ciklus se semmi (viszont jó sok szorzás).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Eldor - Tag | 163 hsz       Online status #171508   2011.12.28 20:00 GMT+1 óra  
Ketfele modszert tanultam invertalasra. Az egyik bazistranszformaciokkal tortenik, a masik pedig adjungalt matrixszal es determinansokkal. Ha jol sejtem, akkor a determinans szamolas futasi ideje faktorialis, szoval ez esetben egyaltalan nem mindegy, hogy 2x2-es vagy 3x3-as determinansokkal kell szamolni. Elso megerzesre a masik algoritmus kobos, igy ez esetben sem lenyegtelen a ketto kozti kulonbseg. Szoval ha van ra mod, akkor sporolok. Bar meg mindig nem hiszem, hogy hasznalni fogom.
Amugy Ti melyiket implementalnatok? Vagy valami mas algoritmust hasznaltok?

   
Pretender - Törzstag | 2498 hsz       Online status #171493   2011.12.28 18:08 GMT+1 óra  
ja, azt csak összeröffentettem tudom mi mit csinál...

   
gaborlabor - Moderátor | 4449 hsz       Online status #171492   2011.12.28 18:03 GMT+1 óra  
Idézet
Pretender :
Idézet
MaNiAc :
Ott a pont! Például kezdésnek mi értelme a glLoadIdentity()-nek glLoadMatrix() előtt, ráadásul 2x is?

(Idezet a glLoadMatrix() doksijabol: "glLoadMatrix replaces the current matrix..."


most miről is beszélsz?


Arról, hogy a kódodban indokolatlanul sok a glLoadIdentity(...)

   
Asylum - Törzstag | 5462 hsz       Online status #171483   2011.12.28 17:17 GMT+1 óra  
Idézet
Geri :




Igen, neked szólt, Geri. Tudom, hogy te framenként vered a milliós rajzolási számot, lászik is a szarjaidon.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #171481   2011.12.28 17:15 GMT+1 óra  
Idézet
MaNiAc :
Idézet
Geri :
Idézet
proof88 :
sose ilyen piszlicsáré dolgokon próbálj spórolni ... add meg a módját a dolgoknak, az algoritmusokon optimalizálj! Keresgélj, olvass utána módszereknek, van-e jobb, stb. Ilyen bájtokon nem érdemes spórolni.



ott kell spórolni, ahol bottleneck van. ha framenként 2 milliószor megcsinálod a piszlicsárét, és amiatt szaggat a gecibe, akkor a piszlicsárén kell spórolni more

Ott a pont! Például kezdésnek mi értelme a glLoadIdentity()-nek glLoadMatrix() előtt, ráadásul 2x is?

(Idezet a glLoadMatrix() doksijabol: "glLoadMatrix replaces the current matrix..."


most miről is beszélsz?

   
Geri - Törzstag | 2190 hsz       Online status #171479   2011.12.28 17:12 GMT+1 óra  
lol, asylum megszólalt megint

Idézet
Asylum :
Ha valamit framenként 2 millioszor csinál, akkor inkább ne is programozzon.




   
Asylum - Törzstag | 5462 hsz       Online status #171478   2011.12.28 17:10 GMT+1 óra  
Idézet
Matzi :
Egy pixel shader kód azért simán lefut 2 milliószor framenként, néha ott kell optimalizálni.



Párhuzamositva nem ér
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #171475   2011.12.28 16:20 GMT+1 óra  
Kövessétek a Samsung driveríróinak a tanácsát: ne renderelj sokat, mert lassít!
alias aalberik
   
Matzi - Szerkesztő | 2522 hsz       Online status #171474   2011.12.28 15:38 GMT+1 óra  
Egy pixel shader kód azért simán lefut 2 milliószor framenként, néha ott kell optimalizálni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5462 hsz       Online status #171473   2011.12.28 15:34 GMT+1 óra  
Ha valamit framenként 2 millioszor csinál, akkor inkább ne is programozzon.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
MaNiAc - Szerkesztő | 1735 hsz       Online status #171468   2011.12.28 13:36 GMT+1 óra  
Idézet
Geri :
Idézet
proof88 :
sose ilyen piszlicsáré dolgokon próbálj spórolni ... add meg a módját a dolgoknak, az algoritmusokon optimalizálj! Keresgélj, olvass utána módszereknek, van-e jobb, stb. Ilyen bájtokon nem érdemes spórolni.



ott kell spórolni, ahol bottleneck van. ha framenként 2 milliószor megcsinálod a piszlicsárét, és amiatt szaggat a gecibe, akkor a piszlicsárén kell spórolni more

Ott a pont! Például kezdésnek mi értelme a glLoadIdentity()-nek glLoadMatrix() előtt, ráadásul 2x is?

(Idezet a glLoadMatrix() doksijabol: "glLoadMatrix replaces the current matrix..."
Dare to imagine!
http://www.insaneidea.hu
   
Geri - Törzstag | 2190 hsz       Online status #171462   2011.12.28 13:19 GMT+1 óra  
Idézet
proof88 :
sose ilyen piszlicsáré dolgokon próbálj spórolni ... add meg a módját a dolgoknak, az algoritmusokon optimalizálj! Keresgélj, olvass utána módszereknek, van-e jobb, stb. Ilyen bájtokon nem érdemes spórolni.



ott kell spórolni, ahol bottleneck van. ha framenként 2 milliószor megcsinálod a piszlicsárét, és amiatt szaggat a gecibe, akkor a piszlicsárén kell spórolni more

   
proof88 - Törzstag | 530 hsz       Online status #171432   2011.12.27 21:48 GMT+1 óra  
sose ilyen piszlicsáré dolgokon próbálj spórolni ... add meg a módját a dolgoknak, az algoritmusokon optimalizálj! Keresgélj, olvass utána módszereknek, van-e jobb, stb. Ilyen bájtokon nem érdemes spórolni.
   
Pretender - Törzstag | 2498 hsz       Online status #171431   2011.12.27 21:33 GMT+1 óra  
szükséged lehet rá például, ha deferred shadinget csinálsz, ott rögtön kell.

   
Asylum - Törzstag | 5462 hsz       Online status #171430   2011.12.27 21:33 GMT+1 óra  
Nem a mátrix invertáláson kell spórolni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Eldor - Tag | 163 hsz       Online status #171428   2011.12.27 21:18 GMT+1 óra  
Nem akarok sporolni rajta, csak elmeleti sikon erdekel a dolog. Eddig meg mindenhol eltaroltam a teljes 4x4-es matrixot. Mondjuk invertalas eseten egy ilyen tulajdonsag kihasznalasa gyorsithatja az algoritmus futasi idejet. Bar nem tudom, hogy szuksegem lesz-e modelview matrix invertaltjara. Egyenlore meg nem latom sok ertelmet.

   
Asylum - Törzstag | 5462 hsz       Online status #171421   2011.12.27 16:01 GMT+1 óra  
Akár van akár nincs, ezzel nem jo ötlet spórolni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 474 hsz       Online status #171420   2011.12.27 15:39 GMT+1 óra  
A lenyeg, hogy homogen liearis transzformacioknal alul (0,0,0,1) van. Legalabbis igy remlik, de javitsatok ki, ha tevedek.

   
Eldor - Tag | 163 hsz       Online status #171403   2011.12.27 06:50 GMT+1 óra  
Bocs, elfelejtettem irni, hogy csak Modelview matrixra gondoltam.

   
fpeti - Törzstag | 1294 hsz       Online status #171398   2011.12.26 19:44 GMT+1 óra  
Projekciós mátrixnál lehet alul más is.
   
Eldor - Tag | 163 hsz       Online status #171393   2011.12.26 18:51 GMT+1 óra  
Egy 4x4-es matrix eseteben a legalso sornak van valamilyen specialis jelentese? En eddig csak ilyen matrixxal talalkoztam:

Kód:
m00    m10    m20    x
m01    m11    m21    y
m02    m12    m22    z
0      0      0      1


Ezzel a matrixxal az utolso oszlop hatarozza meg az eltolas merteket. A m00 -> m22 3x3-as matrix pedig a forgatast es az atmeretezest valositja meg.

Tehat a kerdes ujra, hogy ne kelljen visszaolvasni:
Az also sort szoktak barmire hasznalni? Fogok valaha talalkozni olyan matrixxal, amiben az also sor nem (0, 0, 0, 1)?

   
Pretender - Törzstag | 2498 hsz       Online status #171367   2011.12.25 10:47 GMT+1 óra  
tudom nem túl optimális a dolog, de akkor sem ésszerű, hogy alt-tab után megjavult, de a draw-ban most csak ennyi van:
Kód:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

Matrix proj = Matrix::PerspectiveFOView(Pi/4.0f, 4.0f/3.0f, 0.1f, 1000.0f);
glLoadMatrixf((const float*)&proj);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Matrix viewOrient = Matrix::RotationY(0.1f * a);
Vector3 eye = Vector3(0.0f,2.0f,-5.0f);
Matrix view = Matrix::LookAt(Vector3::Transform(eye,viewOrient),Vector3::Zero,Vector3::Up);
glLoadMatrixf((const float*)&view.m);

glPushMatrix();
{
Matrix world = Matrix::RotationY(a);
glMultMatrixf((const float*)&world.m);

glBegin(GL_TRIANGLES);

glColor3f(1,0,0);
glVertex3f(0,1,0);

glColor3f(0,1,0);
glVertex3f(-1,-1,0);

glColor3f(0,0,1);
glVertex3f(1,-1,0);

glEnd();
}
glPopMatrix();

Ha a push-pop közötti kód nincs, akkor fullscreenen normális sebességgel megy az üres képernyő alt-tab nélkül is.

   
Asylum - Törzstag | 5462 hsz       Online status #171363   2011.12.25 09:48 GMT+1 óra  
Visual studio pro-d van? Menüböl analyze -> launch performance wizard. Azzal meg tudod nézni, hogy hol tölti az idejét.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #171361   2011.12.25 08:34 GMT+1 óra  
Ilyesmi a baj nekem is, csak én win7-en vagyok sdl nélkül

   
Asylum - Törzstag | 5462 hsz       Online status #171320   2011.12.24 12:18 GMT+1 óra  
Ja sry, benéztem...de a pozicio is jo nyilván...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Eldor - Tag | 163 hsz       Online status #171310   2011.12.24 10:48 GMT+1 óra  
A kodban, amit irtam a poziciot adom meg ( GL_POSITION ), nyilvanvaloan, ha a pozicio utolso koordinataja ( homogen koordinata ) inicializalatlan ( iranyitott feny eseten 0, pontfeny eseten 1 ), akkor furcsa jelensegeket tud produkalni ( nalam olyanok voltak a tunetek, mint amit Asylum leirt ). De ha a diffuse megvilagitas jol mukodik, akkor tobb, mint valoszinu, hogy tenyleg nem ez a gond.

   
Pretender - Törzstag | 2498 hsz       Online status #171307   2011.12.24 10:26 GMT+1 óra  
hogy jön a pozícióhoz a color?

   
Asylum - Törzstag | 5462 hsz       Online status #171305   2011.12.24 10:01 GMT+1 óra  
Nem hiszem, hogy ez a gond, mert nálam minden color érték 4 db float.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Eldor - Tag | 163 hsz       Online status #171301   2011.12.24 06:21 GMT+1 óra  
En akkor futottam bele ilyen " totál érthetetlen modon változik ahogy forog a kamera" jelensegbe, amikor nem adtam meg megfelelo meretu tombot.

Tehat peldaul igy hasznaltam:
Kód:
glLightfv(GL_LIGHT0, GL_POSITION, (float[]) {1.0, 1.0, 1.0})

es nem igy:
Kód:
glLightfv(GL_LIGHT0, GL_POSITION, (float[]) {1.0, 1.0, 1.0, 1.0})


De ha csak a specular rossz es a diffuse jo, akkor lehet, hogy nem jo a tippem.

   
Asylum - Törzstag | 5462 hsz       Online status #171297   2011.12.23 23:30 GMT+1 óra  
Megint ffp-s kérdés, remélhetöleg most már az utolso
Minden tökjo, kivéve a speculart; egyszerüen nem jelenik meg, pedig mindent beállitok (gdebuggerrel meg is néztem):

bal:dx, jobb: gl



A material propertyket igy állitom be:

Kód:
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diff);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (GLfloat*)&Properties.Ambient);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (GLfloat*)&Properties.Specular);
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (GLfloat*)&Properties.Emissive);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, Properties.Power);


A fény poziciot meg minden frame elején beállitom:

Kód:
SetMatrixMode(GL_MODELVIEW);
glLoadMatrixf((GLfloat*)transforms[qTS_View].transform._m);

...

glLightfv(GL_LIGHT0, GL_POSITION, (GLfloat*)pos._v);


Bizonyos helyzetekben egyébként van specular de valami totál érthetetlen modon változik ahogy forog a kamera.
C++ fordítóval és macival alszom
http://darthasylum.blog.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]