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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2198
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Korábbi postok
> 1 < [2] [3] [4] [5] [6]
Geri - Törzstag | 2198 hsz       Online status #188076   2012.10.18 19:45 GMT+1 óra  
van valami külön matfile az objokhoz, ami tartalmazza a materialokat, hogy mihez milyen textúra tartozik, csak ezt semmi sem szokta támogatni, mert valljuk be, eléggé igénytelen megoldás

   
Seeting - Törzstag | 2306 hsz       Online status #188023   2012.10.17 01:02 GMT+1 óra  
Idézet
ibax :
Hali!
Egy kérdés...
Hogyan lehet a legegyszerübben létrehozni egy mesh-t? Itt most arra gondolok, hogy szeretnék Maya-ban egy egyszerü (1-2 fal), épület-belsőrészt létrehozni.
Az irrlicht tutorialjai közt volt olyan, ahol egy .pk3 (asszem) file volt, amit betöltöttünk az irrlichtbe, és ez volt egy 3D-s környezet.
A maya-s része mondjuk hogy menne, de hogyan tovább?
Konvertálni? De mibe?
Mert ugye az irrlicht támogatja a .obj maya filekokat, de azokat csak geometriát tartalmaznak, textúrát stb-t nem...
pls help



Az obj támogat vertex, normál, és textúra koordinátákat is. Sztem ugyanúgy kell betölteni mint akármi mást irrlichtben, mivel az obj-t natívan támogatja.
   
akosnagy - Tag | 87 hsz       Online status #137143   2010.07.07 11:48 GMT+1 óra  
Hello mindenki!

Belefutottam egy problémába. Régebben is még az 1.4.2-es verzióval és most szintén a legújabbal 1.7.1-el is. Egyszerűen nem tudok ékezetes karaktereket írni a GUI-ra. Az 1.7.1-ben van egy eszköz, ami megcsinálja a karakter táblákat bmp-ben, és xml-ből veszi a karakterpozíciókat. Ezzel sem hajlandó ékezetes karaktert írni. A szöveg egy MySQL táblából jön. Minden stimmel, csak épp az ékezetes karakterek nem. Minden más szöveg megjelenik és jó.

Tud valaki segíteni? Hogy lehyet rávenni, hogy jó legyen?

Szerk. KIegészítés. Csak a teszt kedvéért összedobtam egy php kódot, ami ugyanazt a MySQL táblát olvassa. Hiba nélkűl. Megjelennek az ékezetes karik, tehát valószínüleg nem a tábla karakterkódolása a probléma.

   
konzolcowboy - Tag | 11 hsz       Online status #128219   2010.02.27 22:10 GMT+1 óra  
Idézet
Asylum :
Egyébként nem akarom elvenni a kedved, de ez a fajta megoldás (framek között eltelt idö) a lehetö legrosszabb Régebben énis ezt használtam, aztán csak néztem, hogy hirtelen fps váltásokra mért ugrál összevissza.

Aztán megtaláltam ezt:

http://gafferongames.com/game-physics/fix-your-timestep/



Köszönöm a tanácsot.
Minden tanácsot szívesen veszek, mert a játékprogramozás területén még kezdő vagyok. Az általad linkelt módszert már én is tanulmányoztam korábban. Már el is kezdtem egy class-t tervezni fejben, ami implementálja a megoldást.

   
Asylum - Törzstag | 5511 hsz       Online status #128218   2010.02.27 21:58 GMT+1 óra  
Egyébként nem akarom elvenni a kedved, de ez a fajta megoldás (framek között eltelt idö) a lehetö legrosszabb Régebben énis ezt használtam, aztán csak néztem, hogy hirtelen fps váltásokra mért ugrál összevissza.

Aztán megtaláltam ezt:

http://gafferongames.com/game-physics/fix-your-timestep/
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
konzolcowboy - Tag | 11 hsz       Online status #128216   2010.02.27 21:50 GMT+1 óra  
Idézet
Asylum :
Kód:
pos = pos + speed * elteltidöazelözöframeóta();


Nyilván a speedet kell ugy rögziteni, hogy 5000 fps-re is jó legyen.
Amit irtam pedig jó, csak nálad olyan baromi kicsi a sebesség, hogy hiába növeled a pos-t, csak percenként ugrik egy pixelt.



Igazad van tényleg működik. A poén az egészben, hogy eddig is jól csináltam. A hibát egy egyszerű elgépelés okozta. Immár sokadszorra esem egy alapvető gépelési hibába, a += operátor helyett = operátort írtam . Emiatt azt hittem, hogy a konverzió cseszik ki velem, és összevissza javítottam a kódot, pedig az első változatom volt jó. Hiába, a Ctrl+C, Ctrl+V ellenség is lehet.


   
Asylum - Törzstag | 5511 hsz       Online status #128212   2010.02.27 20:52 GMT+1 óra  
Kód:
pos = pos + speed * elteltidöazelözöframeóta();


Nyilván a speedet kell ugy rögziteni, hogy 5000 fps-re is jó legyen.
Amit irtam pedig jó, csak nálad olyan baromi kicsi a sebesség, hogy hiába növeled a pos-t, csak percenként ugrik egy pixelt.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2529 hsz       Online status #128211   2010.02.27 20:37 GMT+1 óra  
Ha minden frameben hozzáadsz ennyit, előbb utóbb el fog mozdulni. Nyilván addig doubleként kell kezelni, kirajzoláskor csinálsz belőle integert.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
konzolcowboy - Tag | 11 hsz       Online status #128210   2010.02.27 20:29 GMT+1 óra  
Idézet
Joga :
nem, mert Asylum a kirajzolásnál cast-olta a koordinátákat, nem mozgatásnál

( de ha túl gyors, egy kis vsync segíthet )



Hiába van cast-olva kirajzolásnál.

Tegyük fel, hogy d értéke 0.016222387, a labda aktuális pozíciójának értéke 2.0;

Ha összeadom a kettőt, akkor az eredmény 2.016222387;

Ha ezt cast-oljuk, akkor ebből 2 lesz. Ez az érték csak akkor fog 2-től különbözni, ha az FPS szám drasztikusan lecsökken.

   
Joga - Törzstag | 1791 hsz       Online status #128208   2010.02.27 20:18 GMT+1 óra  
nem, mert Asylum a kirajzolásnál cast-olta a koordinátákat, nem mozgatásnál

( de ha túl gyors, egy kis vsync segíthet )
(ಠ ›ಠ) Stewie!

   
konzolcowboy - Tag | 11 hsz       Online status #128204   2010.02.27 19:51 GMT+1 óra  
Idézet
Asylum :
A logika..

Kód:
class Labda
{
    float x, y;
};


// ...

myLabda.x += d;

irrlichtrajzoldkilégyszives((int)myLabda.x, (int)myLabda.y);




Ez mind szép, és jó, de az eredmény ugyan az. Bukom a lényeget amit a frame-ek között eltelt idő reprezentál, így az eredmény fps-től függetlenül konstans lesz. Mintha nem is vettem volna figyelembe a frame-ek között eltelt időt.

   
Asylum - Törzstag | 5511 hsz       Online status #128203   2010.02.27 19:43 GMT+1 óra  
A logika..

Kód:
class Labda
{
    float x, y;
};


// ...

myLabda.x += d;

irrlichtrajzoldkilégyszives((int)myLabda.x, (int)myLabda.y);
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
konzolcowboy - Tag | 11 hsz       Online status #128202   2010.02.27 19:32 GMT+1 óra  
Sziasztok.

Az irrlicht motor segítségével írok egy egyszerű 2D-s falbontó játékot. A problémám a labda sebességgel van. Nagyobb FPS esetén gyorsabb a labda mozgása, ezért a mozgásba beiktattam a két frame között eltelt időt úgy, ahogy kell, de ez az idő nagyon kicsi, nullánál kisebb. Az irrlicht motor integer érték alapján rajzolja ki a textúrákat, ezért konvertálnom kell, ekkor viszont az érték nulla lesz, a labda meg sem mozdul.

Kód:
double d = (myLabda.VelocityX * myFrameElapsedTime);

myLabda.PosX += (int)(d); // Itt a bibi, mert d kisebb mint 0, így a pozícióhoz mindig nulla adódik hozzá.


A labda pozíciójának muszáj int típusnak lennie, mert a draw2DImage függvény integer alapú poziciót kér.

Van valakinek egy jó ötlete, hogyan lehetne ezt a problémát áthidalni?

Köszi előre is.

   
Dookle - Tag | 478 hsz       Online status #125109   2009.12.29 23:39 GMT+1 óra  
novarobot: Ha létezik egyszerű engine a világon,akkor az az irrlicht.Ráadásul annyira részletes dokumentációja van,hogy az már fájdalmas.Így mielőtt kérdezel ,győződj meg róla hogy nincs-e valami segítség a help-ben.Pl ezt 3 másodperc alatt találtam :

Kód:
SKeyMap keyMap[8];
                 keyMap[0].Action = EKA_MOVE_FORWARD;
                 keyMap[0].KeyCode = KEY_UP;
                 keyMap[1].Action = EKA_MOVE_FORWARD;
                 keyMap[1].KeyCode = KEY_KEY_W;

                 keyMap[2].Action = EKA_MOVE_BACKWARD;
                 keyMap[2].KeyCode = KEY_DOWN;
                 keyMap[3].Action = EKA_MOVE_BACKWARD;
                 keyMap[3].KeyCode = KEY_KEY_S;

                 keyMap[4].Action = EKA_STRAFE_LEFT;
                 keyMap[4].KeyCode = KEY_LEFT;
                 keyMap[5].Action = EKA_STRAFE_LEFT;
                 keyMap[5].KeyCode = KEY_KEY_A;

                 keyMap[6].Action = EKA_STRAFE_RIGHT;
                 keyMap[6].KeyCode = KEY_RIGHT;
                 keyMap[7].Action = EKA_STRAFE_RIGHT;
                 keyMap[7].KeyCode = KEY_KEY_D;

                camera = sceneManager->addCameraSceneNodeFPS(0, 100, 500, -1, keyMap, 8);


Az első kérdésedre a válasz :Igen meg lehet csinálni ,keressd a GetNodeid vagy GetNodeName-t a tutoriálokban rengeteg infót lehet róluk találni ( a Tutorial 7: Collision -ban egy nagyon egyszerű példával demonstrálják a használatát)
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
novarobot - Tag | 13 hsz       Online status #124851   2009.12.27 10:06 GMT+1 óra  
Sziasztok!

11 napja kezdtem el foglalkozni c++, delphi ről tértem át.

Régebben delphi 7 ben írtam a glscene segítségével egy egyszerű 3d motort, most ezt kéne reprodukálni c++ -al. Nekem az Irrlicht Engine ajánlották, és pár egyszerű alap dolgot sikerült is megvalósítani benne, de sajnos pár dologban elakadtam.

1.Minden 3d objektumhoz szeretnék onclik eseményt (jobb és bal klikket külön). Pl az jó lenne ha egy saját magam által írt függvényt minden kattintáskor meghívna azzal az objektum nevével amelyre kattintottam.

2. Nem tudom beállítani hogy a hagyományos fps kamera ne a nyilak +egérrel mozogjon, nekem a következő nem szabványos irányításra lenne szükségem:
W=előre, S=hátra, C=balra oldalaz, V=jobbra oldalaz, A=balra fordul, D=jobbra fordul, Q=lefele fordul, E=felfele fordul, És a nyilakkal is lehessen fordulni. Az egértől teljesen független legyen, az egérrel szabadon tudjak kattogtatni az objektumokra!

Eben a két problémában szeretném a segítségeteket kérni, január végére kéne leadni a programot, viszont még meg is kéne írni és nem tovább haladni.

Novarobot.

   
tigger - Tag | 4 hsz       Online status #117263   2009.09.11 09:41 GMT+1 óra  
Sziasztok!
Végső elkeseredésemben írok. A helyzet az hogy Irrlichtet használok, a képernyőkön nincsenek 3d dolgok csak 2Ds GUI elemek. Ezek nem a gyári GUI elemek, hanem a egyededi képernyőkezelő rendszert írtam. A GUI elemek a beépített IGUIFont* és ITexture* ot használják és render ciklusban a következő módon kerülnek meghívásra:

Font->draw( currentLine.c_str(), ClippingRect, renderColor );

illetve

IRRVideoDriver->draw2DImage( Texture, Position, ClippingRect, 0, Color, true );
vagy
IRRVideoDriver->draw2DImage( Texture, destRec, ClippingRect, 0, 0, true );
(attól függően hogy az adott textúrát 1:1-ben vagy destRect kívánom átméretezve renderelni.

Egy gyors gépen minden szép és jó. A problémám az hogy egy lassabb gépen (gyengébb a videokártya is, és fullscreenen megy 1680x1050-ben, de azért OpenGL-t tud), olyan fura viselkedést tapasztalok hogy ha egyszer kirenderelek egymás után (egymás fölé) több textúrát is egy ciklusban (mondjuk teljes képernyős png-k), akkor belassul a rendszer - amit még akár meg is értenék.
Viszont ha eltüntetem ezt a "bonyolult" kombót a képernyőről (a renderciklusban nem renderelem tovább) innentől lassú marad a rendszer, még ha utána már csak egyetlen texturát renderelek akkor is, az FPS leesett és csak minimálisan tér magához (olyan képernyőn ahol eddig minden rendben volt és 2x annyi volt az FPS)

Ja és mindezt fordítottam Win és Linux környezetben is, és a célplatform ahol a release verzió fut az egy Linuxos rendszer.Több konfigurációban (más videovezérlő, másik pc) is kipróbáltam, a helyzet ugyanaz. A Windowsos release-t wine-al (linux alatt ugye) is kipróbáltam ott is előjön...

(ha pl megváltoztatok apróságokat, pl egy IGUIFont* ot mondjuk másik méretű fonttal inicializálok akkor a probléma látszólag megoldódhat, de akkor majd egy másik screenen lassul be - és ragad lenn az FPS)

A lényeg:
Néztem a CPU használatot is. Ha "bonyolult" helyzet adódik (és leesik az FPS), akkor felugrik a CPU használat (egy gyenge gépen, gondolom a vidovezérlő nem birkózik meg a feladattal és a proci végzi el a feladatot), de helyzet elmultával a CPU használat normalizálódik azonban az FPS-t már nem kapom vissza.

A kérdés az hogy mit "vehetek el" a rendszertől ami utána sebességvesztéssel büntet?
előre is köszönöm az ötleteket!
   
H.István - Törzstag | 304 hsz       Online status #117254   2009.09.11 03:28 GMT+1 óra  
Idézet
tyler :
Az igazi mazochizmus az Ogre-t buildelni linux alatt.



Amikor először próbáltam meg az Ogre-t beüzemelni az oldalukról leszedett cuccból, az tényleg egy rémálom főleg amikor a függőségeket is külön kell leforditani mert nicsenek leforditva. Elmentem addig, hogy a függőség függőségének a függőségét forditottam és akkor már elegem lett. Szerencsére a launchpad on találtam egy leforditott Ogre-t és úgy már könnyebb volt az élet.
Ez a fő baj az Irrlicht-el is és még sok open-source motyóval, hogy elég sokat kell szenvedned mire sikerül beüzemelni az egészet.
   
MaximumViolence - Törzstag | 1020 hsz       Online status #117246   2009.09.10 14:23 GMT+1 óra  
Idézet
tyler :
Az igazi mazochizmus az Ogre-t buildelni linux alatt.



nekem ubuntun egyszerubben,gyorsabban ment,mint visual c++-al windows alatt
Ez egy reszeg post...

   
bit.0x8000 - Törzstag | 574 hsz       Online status #117163   2009.09.08 15:22 GMT+1 óra  
Idézet
Asylum :
Linux alatt nincsen exe.



De van, csak elé kell írni, hogy: "apt-get install wine && wine".

szerk.: XD

Ezt a hozzászólást bit.0x8000 módosította (2009.09.09 06:56 GMT+1 óra, ---)
   
Korábbi postok
> 1 < [2] [3] [4] [5] [6]