3d grafika C++ ban.

Címkék
3d grafika C++ ban.
2011-06-15T20:46:18+02:00
2011-06-22T17:43:15+02:00
2022-10-26T13:20:36+02:00
  • Ha a cél egy vagy több játék készítése, de nem akarsz ténylegesen játék PROGRAMOZÓ-vá lenni(pl: saját engine-t írni) vagy inkább a grafika az asztalod, akkor próbáld ki at UDK-t ami unreal 3 motor. Ingyenesen használható az első x ezer eladásodig onnantól 20% amit adnod kell az Epic-nek. Gondolom belefér. Cserébe kapsz egy tisztességesen dokumentált grafikus és játék motort fizikai számításokat is tud, megy konzolokon is mint XBox 360 illetve PS3, Fog menni Play Station Vita-n amikor megjelenik. Még csontok és csont animációk is vannak benne, pályakészítő, hálózatos játékokhoz network modul, meg minden csili vili amit eltudsz képzelni(pl Dx9, 10, 11 support). Az ingyenes licenszhez viszont nem jár forráskód ha jóltudom, de a szkriptnyelv amit használhatsz hozzá az könnyű és jól dokumentált. ha jól tudom :D

    Én inkább a sajátomat fejlesztem tipus vagyok.
    Mutasd a teljes hozzászólást!
  • Az én részemről csak távmunka, csak írásba(csetten), és délután/este.
    Mutasd a teljes hozzászólást!
  • Azért azt ne felejtsük el, hogy itt igen elkülönülő komponenesekről van szó, amik nem kapcsolódnak szorosan, és lehet, hogy a kérdezőnek szüksége sincs rá. Szép dolog az a fizika, de könnyen lehet játékot készíteni nélküle, egy sereg olyan tervet ki lehet találni, amihez nincs szükség egyáltalán ütközésvizsgálatra, vagy egy közönséges boundingbox tökéletesen elég is, és ennél közelebb nem fog kerülni a témához.

    Ha csak egy nyári projectről van szó, én egész valószínűnek tartom hogy nem akar erre is áldozni az idejéből, és inkább megmaradna a célterület mellett - legalábbis én így tenném.
    Mutasd a teljes hozzászólást!
  • Ezt így már jobb, ha az állás/munka rovatban teszed fel. Nagyobb valószínűséggel találsz valakit.

    De itt egy link, ami alapján könnyen elindulhatsz. Magyar nyelvű. A hátránya, hogy delphihez van, de az OpenGL eléggé nyelvfüggetlen, úgyhogy nem baj, ha még nem is hallottál a Delphiről.

    Locutos: Tudom, hogy vannak jó és ingyenes fizikai motrok, de amit lehetett, magam akartam megírni. Az ütközés detektálásával nem igazán boldogultam, azért szedtem le rá egy külön libet. Azóta nem hiszem, hogy gondot okozna (nem nagyképűségből írom. Egy évet tanultam diszkrét matekot, 2 évet analízist meg még jó sok mindent. Rájöttem, hogy egy lin. egyenletrendszer megoldása nem nehéz.), de már más érdekel, úgyhogy nem foglalkozok vele annyit.
    Mutasd a teljes hozzászólást!
  • Nos, akkor kezdenem mashogy feltenni a dolgot :) :) :)

    Van-e olyan kozulletek aki raer most nyaron es Debrecenben lakik, vagy Debrecentol a Roman hatar fele valamerre, mivel en Letavertestol lakom 15-20km-re. Ha lenne valaki aki erti az OpenGL-t es ert grafikahoz szivesen vennek tolle nyaron kulonorakat.
    Elore is koszi :)
    Mutasd a teljes hozzászólást!
  • Textúrázott, árnyékolt testeket nagyon könnyen tudsz csinálni. Ha már valódi árnyékot is akarsz, ott kezdődik a valódi gond. És az ütközésvizsgálat sem olyan egyszerű.
    Poligonok esetén egy sokismeretlenes lineáris egyenlőtlenségrendszert kell megoldanod ahhoz, hogy megtudd, két test összeütközött-e. A konkrét megoldás nem érdekel, csak az, hogy létezik-e megoldás.
    Alkalmazhatsz burkolótesteket is, (gömb, téglatest, kisebb poligonszámú modell) ezekkel nem fogsz olyan realisztikus hatást elérni, cserébe nagyban egyszerűsődik a megoldandó feladat. (Az a legnagyobb gond, hogy ezt realtime kell megoldani.)
    Természetesen ütközésvizsgálatra letölthetsz kész könyvtárakat is, de az ütközés lekezelésével akkor is dolgoznod kell.

    Például PhysX-et?
    Nekem ez egyszerű megoldásnak tűnik a fizikára.
    Itt sokan mondják/mondták hogy az alapoktól jobb tanulni a 3D-t, igen abban egyetértek hogy kezd OpenGl-el, alapvető grafikai fogalmakat megtanulni, de ez szerintem nem érvényes a fizikára, sokkal könnyebb a PhysX SDK-t átnyálazni. Én írtam háromszög-háromszög ütközésvizsgálati algoritmust, de az ütközésválasz impulzusnyomaték alapján már oda fizika+matek kell de rendesen, nem lehetelen de nem éri meg mikor megvan PhysX-ben.
    Az árnyékra meg ott a shadow mapping technológia, rudimentális, de úgy vettem észre a modern enginek se törik magukat agyon jobbal, nem csoda mert nagyon számításigényes lenne egy jobb, így marad a jóöreg stencil buffer.
    Mutasd a teljes hozzászólást!
  • Attól függ mi a cél. Meg lehet tanulni egy nyár alatt az Ogre, vagy Irrlicht profi szintű kezelését is, csak nem teljesen értem ez mire vezet. Kell tudni mi megy a háttérben, mert az, hogy valaki használ egy ilyen rendszert az még magában nem ér semmit. Mi van, ha nem teszik a .mesh modellformtum és szeretnék írni mondjuk egy .daniell formátuot, ami tök més lesz? Vagy mi van, ha szeretném az Irrlicht-et Androidra is portolni? Na ilyenkor áll meg a tudomány. Lehet fordítva ülöm meg a dolgokat, meg minden, de hosszútávon szerintem az a mgoldás, ha valaki az alapoknál kezdi. Egyetemen se úgy kezdik a 3D grafika előadást, hogy előveszik az Ogre motort aztán betöltenek vele egy kockát. Fillezés, raytrace stb és persze OpenGL/D3D. Ezek nélkül szerintem értelmetlen ezzel a területtel doglalkozni.

    És most kapaszkodj meg: kicsi voltam még a commodore koszakban, de a korabeli programozás és grafika dolgoknak utánanéztem és ezeket is gyakoroltam igaz már emulátorral. Ez is fordított ló, de egyszer hátha megfordul ő alattam, vagy én rajta, vagy valami ilyesmi. Legfeljebb írok egy lófordító algoritmust, te meg letöltesz hozzá valami engine-t.
    Mutasd a teljes hozzászólást!
  • Itt nem hülyeségről van szó. Csak fordítva ülsz a lóra. Jó tudni, mi folyik a háttérben, ez így van. De ezt nem csak úgy lehet elérni, hogy mindent az alapoktól tanulsz meg, sőt, ez a leglassabb módja. Leggyorsabb, ha folyamatosan produktív vagy (egyrészt ha dolgozol akkor a cégnek, másrészt saját magadat így lehet a legjobban motiválni). Egyébként én is tanultam (autodidakta módon) asm-et még bőven C++ előtt, nagyon érdekes meg minden, de sokat nem ad a C++ tudáshoz. Ha C++-ozol és tudnod kell mi folyik asm szinten akkor valamit rosszul csinálsz, vagy nagyon durva megszorításokkal (például beágyazott rendszeren) dolgozol. Nem azt mondom, hogy nem hasznos, de mindent akkor kell megtanulni, ha szükséged van rá, mert úgy fogod megtanulni, és a kérdező egyértelműen most nem az opengl-es hekkelésre volt kíváncsi (egyébként teszem hozzá a 3D-vel való kapcsolatom is windows.h és alap opengl keretein belül folyt).
    Mutasd a teljes hozzászólást!
  • Magasabb szinten összekapcsolódik, de egy nyár alatt nem jutsz el oda.
    Ha jó és tapasztalt programozó vagy, nem okozhat gondot egy Engine elsajátítása.
    Linkelték pl. az Irrlicht-et, ami tényleg szép dolgokra képes, vagy megismerkedhetsz egy kereskedelmi engine-nel is. (Azt hiszem, a Crysis 2 motra is ingyenes nem kereskedelmi használatra.)

    Az Irrlicht emlékeim szerint nem nehéz, de nekem nem tetszett. Mással nem foglalkoztam.

    Az OpenGL és a DirectX sem olyan nagy szám, ha nincsenek túl nagy elvárásaid. (A DirectX-et nem ismerem, de nem hiszem, hogy sokkal nehezebb lenne az OGL-nél.)

    Textúrázott, árnyékolt testeket nagyon könnyen tudsz csinálni. Ha már valódi árnyékot is akarsz, ott kezdődik a valódi gond. És az ütközésvizsgálat sem olyan egyszerű.
    Poligonok esetén egy sokismeretlenes lineáris egyenlőtlenségrendszert kell megoldanod ahhoz, hogy megtudd, két test összeütközött-e. A konkrét megoldás nem érdekel, csak az, hogy létezik-e megoldás.
    Alkalmazhatsz burkolótesteket is, (gömb, téglatest, kisebb poligonszámú modell) ezekkel nem fogsz olyan realisztikus hatást elérni, cserébe nagyban egyszerűsődik a megoldandó feladat. (Az a legnagyobb gond, hogy ezt realtime kell megoldani.)
    Természetesen ütközésvizsgálatra letölthetsz kész könyvtárakat is, de az ütközés lekezelésével akkor is dolgoznod kell.

    A fizikával is el lehet pepecselni.

    Lehetne még sorolni. A 3D-s grafika tényleg egy elég sokfelé ágazó témakör.

    Összefoglalva: Ha letöltesz egy Egnine-t, azzal jó rálátásod lesz, hogy épül fel egy nagy rendszer, de nem lesz vele általános tudásod és korlátozva leszel.
    Ha magad állsz neki, az egy (tanulással együtt) évekig tartó folyamat, hogy az eredmény tényleg megállja a helyét.

    Nem akarlak elbátortalanítani, én is foglalkoztam ezzel és utólag belegondolva, nagyon jól tettem.
    Szép napot!
    Mutasd a teljes hozzászólást!
  • Oszinten egy nyaram van ra, amikor is hobbibol csinalgatok ilyesmiket. Szoval talan inkabb a ketto kombinacioja megerteni az alapokat es szep dolgokat osszehozni ez a ketto szerintem ossze kene kapcsolodjon ...
    Mutasd a teljes hozzászólást!
  • Mi a hosszú távú célod? Megérteni az OpenGL/DirectX működését vagy minél rövidebb idő alatt látványos 3D-s demókat csinálni?
    Mutasd a teljes hozzászólást!
  • Nos, :) kicsit alabecsultetek, semmi bajom nincs se a ponterrel se a dinamikus tarkezelessel sablonokkal osztalyok osztalysablonok strukturak referenciak barat fuggvenyek oroklodes obiektum orientalt programozas stb stb stb ...
    Ezekkel nincs problemam :) ezert kertem, hogy C++ ban lehessen irni es ne egyebb masban. A DirectX es OpenGL-el ugy allok, hogy sehogy ezeket kene elmagyarazni megtanulni stb stb es nem vok hue csak meg nem foglalkoztam ilyesmi dolgokkal. Varam a tovabbi valaszokat es koszonom azoknak akik eddig valaszoltak :)
    Mutasd a teljes hozzászólást!
  • fontos ne legyen nagyon nehez, 3ds legyen + C++

    nem látom hogy D3D-t vagy OpenGL-t akarna tanaulni :D

    Csak rájön a példákból hogy milyen az a pointer...

    Van még GameMaker de az nem c++...
    Mutasd a teljes hozzászólást!
  • Lehet akkor én vagyok a hülye, de én még assembly-t és C-it is tanultam a C++ előtt. Szeretem tudni mi megy háttérben és ez szerintem nem hátrány, sose lehet tudni mikor kellhet. Most letölt valami engine-t, beírja, hogy smgr->AddCubeSceneNode(), na és akkor mi van? Ezzel nem tanul semmit. Ha esetleg fejlesztés közben bármi akadályba ütközik, amit az engine helyből nem tud, akkor megáll a világ, márpedig az Irrlicht elég elavult már ahhoz, hogy ez előforduljon.
    Mutasd a teljes hozzászólást!
  • már ne haragudjál, de ebben mi a könnyű:

    scene::ISceneNode* n = smgr->addCubeSceneNode();

    ehhez tudni kéne mi a pointer, az osztály, objektum orientált programozás.
    szerintem a singleton osztályt sem árt ismerni hozzá.
    és ez csak 1 sor volt.
    Mutasd a teljes hozzászólást!
  • Szerintem inkább fordítva: először megismerkedsz a 3D-s dolgokkal, alapfogalmakkal, aztán ha valami komolyabbat akarsz, hatékonyabbat, máshogyan ahogy a könyvtár elédrakja, akkor utánanézel hogy lehet belenyúlni. Pont ahogy nem kell C-t tanulni C++ előtt, sőt, szerintem kifejezetten kontraproduktív.
    Mutasd a teljes hozzászólást!
  • Az engine-el az a baj, hogy pont a lényeget fedi el, ebből nem lehet tanulni. Szerintem OpenGL, vagy D3D-vel tanulja meg az alapokat, aztán jöhet egy engine, amit esetleg az eddig megszerzett tudással még akár testre is tud szabni, vag átalakítani.
    Mutasd a teljes hozzászólást!
  • Én annó írtam sajátot OpenGL + C++ kombóval. Az ütközésvizsgálat egy külső könyvtár volt (ha szeretnéd megkeresem neked a nevét) a 3ds-es beolvasó forráskódja pedig a neten volt. (Bár nem volt mindenható, nekem annó elég volt)

    Összesen olyan 10.000 sor lett, belekerült néhány évbe (úgy áltam neki, hogy először a C-t tanultam meg és azzal kezdtem OGL-ezni, aztán hiányzott az OOP, ezért megtanultam a C++-t), nem volt benne sok szép effekt, de nem bántam meg.

    Ha most kezdeném újra, néhány dolgot máshogy csinálnék.
    Az eredetiben WinAPI-t használtam a szálkezelésre és OpenGL-t a megjelenítésre.
    Most, ha platformfüggetlen kódot szeretnék, Boost-ot használnék a szálkezelésre és OpenGL-t továbbra is, ha elég lenne, hogy Win alatt fusson, megtanulnám a DirectX-et.
    Mutasd a teljes hozzászólást!
  • irrlichtet tudom ajánlani:

    Irrlicht Engine - A free open source 3D engine

    pl kocka kirajzolása:


    scene::ISceneNode* n = smgr->addCubeSceneNode(); //textúra: n->setMaterialTexture(0, driver->getTexture("../../media/t351sml.jpg"));

    Szerintem ennél egyszerűbbet nem találsz
    (én nem találtam)
    Mutasd a teljes hozzászólást!
  • directx.uw.hu
    monster3d.freeweb.hu
    Kicsit régi, de kezdésre jó.
    Mutasd a teljes hozzászólást!
  • Mivel erdemes most kicsi jatekokat kesziteni. Ami fontos ne legyen nagyon nehez, 3ds legyen + C++ ban lehessen kesziteni, elore is koszonom.
    Mutasd a teljes hozzászólást!
Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd