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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15] [20] [25] [27]
Asylum - Törzstag | 5440 hsz       Online status #172846   2012.01.17 10:57 GMT+1 óra  
Szerintem nem. Az opengl-t is es a dx-et is a driver implementalja.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #172844   2012.01.17 10:53 GMT+1 óra  
Igen, felreertheto voltam... Szoval a grafikus lib, nem az OS drawpixeljeit fogja hivni, hanem a drivert, de a driverhez valo elerest attol meg az OS fogja szabalyozni, feltetelezem, hogy egy rendszerhivas lesz
lib -> os -> driver sorrendben.

   
Asylum - Törzstag | 5440 hsz       Online status #172843   2012.01.17 10:48 GMT+1 óra  
Szerintem a grafikus lib kozvetlenul a drivert hivja.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
ddbwo - Tag | 1625 hsz       Online status #172841   2012.01.17 10:42 GMT+1 óra  
anti-aliasing nélkül "pixeles", ha be van kapcsolva, akkor simított, vagy ha jobban észlelhető dologra gondoltál, a texture filter beállítás is ilyen "pixel szerű" hatást kelthet, de eredetileg a pixel a képen kirajzolt egy négyzetet jelenti v ilyesmit.


A grafkártya az egy számológép, kiszámol cuccokat, és majd az jelenik meg a képen. Az igazi varázslat a Z érték, mert amúgy szó szerint rajzol pixeleket a gép, tehát az egész csak trükk. (vagy nem rajzol, ha közelebbi Z már van, mint amit utoljára számolt).
--
(egy időben Bacce-el, már nem törlöm ki)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Bacce - Bacce | 1783 hsz       Online status #172840   2012.01.17 10:35 GMT+1 óra  
A gpu meg egy speciális processzor ami a grafikai jellegű számítások gyorsítására van kihegyezve (mint pl a 3d-s számítások gyorsítása) (míg a cpu sokkal általánosabb feladatokat végez) és amikor az os ilyen feladatot kap (dx vagy ogl által) akkor a driveren keresztül megmondja a gpu-nak hogy mit számoljon, majd összerakja a képet és innen jön zeller kommentje, hogy elküldi a videó kimenetnek és az kirajzolja a memóriában tárolt és összerakott képet pixelenként a képernyőre.
Ha tévednék akkor engem is javítsatok.

Ezt a hozzászólást Bacce módosította (2012.01.17 10:43 GMT+1 óra, ---)
Making the world a better place, one line of code at a time.
http://bacce.uw.hu
   
zeller - Törzstag | 464 hsz       Online status #172839   2012.01.17 10:08 GMT+1 óra  
wtf?
A hardver 1 dolgot tud. Egy adott pixel szinet a kepernyon beallitja arra, amit mondanak neki.
Szoval:
Lehet, hogy rosszul mondom, ezert javitsatok ki, ha tevedek:
Egyszeru eset:
Van egy primitived, ki akarod rajzolni.
Ha direktben a hardvert ered el, akkor annak az utasitaskeszletet es a regisztereit kell hasznalnod.
Ha van OS-ed akkor az mindenkeppen tud pottyoket rajzolni, igy valoszinu sok egymasutani drawPixel hivassal kirajzolhatod az alakzatot. A os a hardvert fogja hasznalni, azaz az utasitasaidat lefdorditja gepi kodra (ha a hw programozhato valamilyen magasabb szintu nyelven, akkor is elobb-utobb gepi kod lesz belole).
Ha van grafikus libed akkor pedig ez magasabb szintu utasitsasokat szolgaltathat, amelyek vegul ugyis OS hivasokra fordulnak, amelyek a video hardvert fogjak bizgetni. Esetleg tudsz direktben is elerni hw-t, de ez is valahogyan az OS-en kell keresztulmenjen, hiszen az fogja utemezni az eroforrasokhoz valo hozzaferest.
Az alkalmazasod pedig a grafikus libre epul, esetleg magasabb szintu utasitasokat szolgaltatva, amelyek a grafikus keretrendszer parancsait hasznaljak fel.
Azaz: Alkalmazas -> grafikus lib -> os -> hw
Meg n+1 koztes reteg lehet, de az ebbol a szempontbol nem fontos.

   
Tibsy - Tag | 307 hsz       Online status #172816   2012.01.16 21:22 GMT+1 óra  
ezek szerint akkor a gpu - rajzolja meg a modelleket ?
mind 1 .
gpu egy alkatréész
de ehhez hogyan kapcsolódik egy program ? mertaz mondja meg milyen adatokat dolgozón fel

de tényleg mind 1 . csak kíváncsi voltam

Ezt a hozzászólást Tibsy módosította (2012.01.16 21:33 GMT+1 óra, ---)
   
Pretender - Törzstag | 2498 hsz       Online status #172815   2012.01.16 21:20 GMT+1 óra  
Fúha, igyál kevesebbet

egyrészt... amiről te érdeklődsz, annak nem sok köze van a directx-hez és az opengl-hez, talán a raszterizálásra gondolhatsz... az opengl és a directx is "csak" hívásokat intéz a gpu-hoz, onnantól ~ minden ugyan úgy fut le... én sem tudom milyen négyzet alakú meg pontok izé pixelre gondolsz, de 1 pixel az 1 pixel (képpont), azon nincs mit mahinálni, abból épülnek fel a képek.
Tehát.. pontosan mi is a kérdés?

   
zeller - Törzstag | 464 hsz       Online status #172813   2012.01.16 21:14 GMT+1 óra  
Idézet
Tibsy :
direct x- négyzet alakú pixelekkel rajzolja a képet míg az open GL- pontokkal,


???

   
Tibsy - Tag | 307 hsz       Online status #172812   2012.01.16 21:08 GMT+1 óra  

Ezt a hozzászólást Tibsy módosította (2012.01.16 21:30 GMT+1 óra, ---)
   
Pretender - Törzstag | 2498 hsz       Online status #172726   2012.01.15 10:24 GMT+1 óra  
Ó, akkor lehet marad az a megoldás, hogy minden csonthoz bounding box. Valószínűleg később úgyis kelleni fog.

   
Asylum - Törzstag | 5440 hsz       Online status #172722   2012.01.15 10:17 GMT+1 óra  
Az animáció minden framejéhez kiszámolják, és ezek között lerp. Okosabbak pedig ragdollt használnak (ami szintén az animációt követi nyilván).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172721   2012.01.15 10:08 GMT+1 óra  
Vannak csontok, amikről csak ezeket tudom:
- melyik vertex tartozik hozzá a meshből
- inverse bindpose
tehát nincsen kezdő és végpozíció, nincs információm a csont méretéről, én viszont debuggolás és boundingbox keresés miatt is szeretném tudni minden egyes csont 2 végpontját.

Esetleg mozgó karakternek a bounding boxot úgy szokták számolni, hogy minden egyes csontnál összeszedik azokat a vertexeket, amik hozzá kapcsolódnak, abból készítenek egy bounding boxot, majd eltárolják. Ezeket a játék közben is transzformálgatják, és azoknak a boxoknak a 8 csúcsából készítik el a "nagy" bounding boxot?

   
Pretender - Törzstag | 2498 hsz       Online status #169626   2011.11.28 11:05 GMT+1 óra  
Ha van egy fullscreen quadom [-1;1] intervallumban az xy koordinátái, a z pedig 0, akkor abból elvileg world pos-t így lehet csinálni, nem?
Kód:
Position = float4(Position.xyz, 1);
mul(Position, invViewProj)

Amiből a sugár a vertex felé:
Kód:
EyeRay = mul(Position, invViewProj) - eyePosition;

Még szerinte is.

No de valamiért mégsem jó, a visszaszámolás eleve egyértelmű + máshol működik is...
Kód:
float4 position;
position.xyz = eyePosition + normalize(EyeRay) * depthText;
position.w = 1.0f;

   
dvorgaz - Törzstag | 575 hsz       Online status #168724   2011.11.15 19:15 GMT+1 óra  
Összeadás ráér egyszer a végén.
   
Pretender - Törzstag | 2498 hsz       Online status #168722   2011.11.15 19:12 GMT+1 óra  
Hát végül is igen, cpu-n számolom. Talán valóban nem lehet olyan sok min és max keresés, annyi, hogy nem csak pontok kellenek, hanem pointspriteot használok, és kell bele pár összeadás is

Alapból ez jutott eszembe, csak érdekelt, hogy van-e valami bevált okosság erre (ezen kívül)
De akkor marad ez, köszi

   
dvorgaz - Törzstag | 575 hsz       Online status #168715   2011.11.15 18:45 GMT+1 óra  
Tehát rendszermemóriában végigiterálsz rajtuk aztán töltöd fel vramba? Akkor ha már úgy is végigmész rajtuk, akkor bounding boxot is számolhatnál, az szerintem már nem oszt nem szoroz sebességben.
   
Pretender - Törzstag | 2498 hsz       Online status #168714   2011.11.15 18:35 GMT+1 óra  
Van egy kezdőpozíció, egy irány, sebesség, ezekből min-max érték, illetve ezek változnak, tehát van kezdő és végérték. Tehát mindenből kezdőmin,kezdőmax, végmin, végmax, ezek között választ random (a min-max között), majd interpolál, mind sebességben, mind minden másban. Egyelőre egyéb erőhatás nincs bent, de baromi egyszerűen megadható, csak egy vector kell hozzá.

   
dvorgaz - Törzstag | 575 hsz       Online status #168712   2011.11.15 18:25 GMT+1 óra  
Hogyan animálod a részecskéket?
   
Pretender - Törzstag | 2498 hsz       Online status #168710   2011.11.15 18:17 GMT+1 óra  
Hát hogy ne rajzoltassam fölöslegesen, ami nem látszik A maximális BB nem feltétlen jó, csak akkor, ha nincs egyéb erőhatás. Előre nem tudhatom, hogy mi lesz a "szélirány" például.

   
Asylum - Törzstag | 5440 hsz       Online status #168709   2011.11.15 18:15 GMT+1 óra  
Mért akarod cullozni öket? Megadsz egy maximális bounding boxot amiben a részecskék lehetnek és azt használod.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168708   2011.11.15 18:12 GMT+1 óra  
Részecskerendszert hogy lehet értelmesen "cullingolni"? (csak hogy szép értelmes, magyar szót használjak ). Nyilván a befoglaló gömb az emitterhez nem jó, mert a részecskék mehetnek másfelé is. Minden updateben újraszámolni egy boundingboxot a részecskék alapján meg lehet, hogy költséges. Esetleg csak egy olyan szűrést érdemes csinálni, hogy azt nem rajzoljuk, ami mögöttünk van? (dot product)

   
Pretender - Törzstag | 2498 hsz       Online status #168531   2011.11.13 16:25 GMT+1 óra  
ja, elég büdös, ezért nem használom

   
proof88 - Törzstag | 528 hsz       Online status #168530   2011.11.13 16:22 GMT+1 óra  
mivan Pretender, büdös az opengl?
   
Asylum - Törzstag | 5440 hsz       Online status #168529   2011.11.13 16:19 GMT+1 óra  
A pixel buffer object is elég nagy elönye.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168528   2011.11.13 16:19 GMT+1 óra  
Hát igen. Nagyjából ez az egyetlen előnye az OGL-nek

   
syam - Törzstag | 1491 hsz       Online status #168527   2011.11.13 16:15 GMT+1 óra  
Idézet
OpenGL-ben és DX10-ben el lehet
alias aalberik
   
Pretender - Törzstag | 2498 hsz       Online status #168525   2011.11.13 16:14 GMT+1 óra  
ja igen, eggyel odébb miután a setDS(old). De a logika azt diktálná, hogy akkor nem kell, ha kvázi az a "zbuffer"...
Kód:
setds(shadowmap);
clear(..., target | zbuffer, ...)

drawshadowmap()

setDS(old)

clear(..., zbuffer, ...) // ideni.
drawscene()

De igazából fogom magam és kipróbálom

   
Asylum - Törzstag | 5440 hsz       Online status #168523   2011.11.13 16:10 GMT+1 óra  
De nem tünik fel, hogy a shadowmap zbufferét törlöd le ismételten?

Kód:
setds(shadowmap);
clear(..., target | zbuffer, ...)

drawshadowmap()

clear(..., zbuffer, ...) // WTF???

setDS(old)
drawscene()


És nem lehet elkérni, mert ilyen OpenGL-ben és DX10-ben el lehet.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168521   2011.11.13 16:03 GMT+1 óra  
Árnyék.. Shadow map készítéséhez kell a rajzolás, meg aztán az eredeti scene rajzolás. De miért nem lehet elkérni?

   
Asylum - Törzstag | 5440 hsz       Online status #168520   2011.11.13 15:55 GMT+1 óra  
De miért clearozod rajzolás után, mikor ugyis visszaállitod a régit?
Depth stencil surface tartalmát pedig nem tudod elkérni semmiféleképpen.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168519   2011.11.13 14:59 GMT+1 óra  
dx9, de az előtte clearelve van
Szóval van ugye egy alap, arra
Kód:
clear(...,target | zbuffer, ...)

getDS(old); //ez tárolja az alapot
setDS(new);

clear(..., target | zbuffer, ...)

draw();

clear(..., zbuffer, ...) //<--- továbbra is ez a kérdés
setDS(old)

Draw()

És akkor elvileg el tudom kérni a depthbuffer tartalmát így? Ha mondjuk beállítok egy másik DepthSurface-t, akkor az előző olvasása elérhetővé válik, ami adja a z-értékeket? Amikor anno kipróbáltam, fehér volt az egész

   
Asylum - Törzstag | 5440 hsz       Online status #168518   2011.11.13 14:49 GMT+1 óra  
Mondjuk setds után kéne clearelni... ez most dx10 vagy mi?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168517   2011.11.13 13:24 GMT+1 óra  
és akkor miért nem lehet elkérni a textúráját? Avagy miért fehér az egész cucc? És ezek szerint, ha másik DepthStencilSurface-t állítok be, és abban renderelek ZWrite-al, akkor nem kell törölnöm utána a zbuffert a másikhoz? Valahogy így értem
Kód:
zwriteenable = true;
zenable = true

getDS(old);
setDS(ds);

clear(..., target | zbuffer,...);

draw();

clear(...,zbuffer,...); //<--- ez kell?
setDS(old);

draw();

A logika szerint nem kellene, de anno valamiért mégis beleírtam a kódba

   
Asylum - Törzstag | 5440 hsz       Online status #168514   2011.11.13 12:12 GMT+1 óra  
Az a z-buffered
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #168512   2011.11.13 11:55 GMT+1 óra  
Ez a DepthStencil cucc mire is jó pontosan? Nem egészen értem. Az árnyéknál lettem rá figyelmes, hogy ha nagyobb render targetet akarok, mint a képernyő, akkor ki kell mentenem a régi depthstencilsurface-t, csinálni egy rendertarget méretűt, beállítani azt, majd a legvégén vissza. Mit is tárol az pontosan, illetve mit is csinál az?

   
borsi - Tag | 180 hsz       Online status #164322   2011.09.18 15:07 GMT+1 óra  
Köszi a linkeket, azóta találtam még 2-t, ha valakit érdekel, érdemes rákeresni a videó melletti pdf-ben linkelt előadásokra is.
Am a videó tényleg marha jól néz ki, kár hogy a demót még nem tudtam működésre bírni.

   
DMG - Szerkesztő | 3172 hsz       Online status #164307   2011.09.18 13:06 GMT+1 óra  
Csatlakoznék az előttem szólóhoz.
-----------------------------------------
Dont Listen to the Naysayers
   
Asylum - Törzstag | 5440 hsz       Online status #164281   2011.09.18 02:01 GMT+1 óra  
Ez nagyon durva!
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #164278   2011.09.18 01:08 GMT+1 óra  
Nézd meg talán ezt.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
fpeti - Törzstag | 1280 hsz       Online status #164276   2011.09.18 00:29 GMT+1 óra  
Én még nem csináltam, de hívják clipmapping-nak is, hátha segít keresni.
   
borsi - Tag | 180 hsz       Online status #164274   2011.09.18 00:20 GMT+1 óra  
Most így hirtelen nem találtam jobb topicot a témának.

Tudtok jó leírást/tutorialt vagy egyéb információt a virtual texturing-ről (ezen kívül) ami mondjuk informatívabb egy Carmack interjúnál? Próbáltatok már hasonló rendszert megvalósítani?
Lehet-e "kicsiben" (csak részben megvalósítva) csinálni, vagy annyi problémát elő fog hozni mindenképpen, amit egyedül megoldani szívás?
A fentebb linkelt, Sean-féle megoldást már végig böngésztem, elméleti összefoglalónak jó, de az implementációja eléggé nehézkesnek tűnik, remélem tudtok annál jobbat.

   
Asylum - Törzstag | 5440 hsz       Online status #163078   2011.09.08 17:49 GMT+1 óra  
Hát az egy picit más, az eleve egy többszörös lineáris interpoláció, kb lerp(t, lerp(u, t)) stb.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #163077   2011.09.08 17:46 GMT+1 óra  
Ez olyan mint a Bezier-gorbe, nem?

   
Asylum - Törzstag | 5440 hsz       Online status #163068   2011.09.08 16:33 GMT+1 óra  
Ha belegondolsz a lineáris interpoláció egy súlyozott átlag:

Kód:
p = t * a + (1 - t) * b

t eleme [0, 1]


Azaz ha most nem két darab változó van, hanem n:

Kód:
p = szumma 1-töl n-ig: ai * wi

ahol szumma 1-töl n-ig wi = 1 (és wi-k legyenek pozitivak)


A slerp-nél ez totál ugyanigy müködik nyilván az egyéb megszoritások betartásával.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #163061   2011.09.08 15:00 GMT+1 óra  
Na akkor egyre gondolunk... Rmlm beválik :3
alias aalberik
   
Matzi - Szerkesztő | 2519 hsz       Online status #163056   2011.09.08 14:35 GMT+1 óra  
Ha a megfelelő súlyozásokkal megoldva kommutatív a qslerp, akkor igazából azt is csinálhatod, hogy szépen sorban ((((A + B) +C) + D) + E) sorrendben csinálod (nyilván a súlyokra végig figyelni kell. Ha meg nem lehet kihozni, mert sorrend függő, akkor meg mindenképp szívás van. De szerintem megoldható. Annyira kell figyelni, hogy a súlyokat mindig normáld 1-re, és persze a már elvégzett összevonásoknál a súlyokat is összegezd. Szerintem.

Műveletre a fa szerkezet is ugyan ilyen lesz, szóval kb tök mindegy a sorrend.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
syam - Törzstag | 1491 hsz       Online status #163053   2011.09.08 14:30 GMT+1 óra  
Legfőbb gondom az, hogy a qslerp 2 kvaternió között működik ahogy tudom.
alias aalberik
   
Matzi - Szerkesztő | 2519 hsz       Online status #163051   2011.09.08 14:26 GMT+1 óra  
Igazából akárhány animációt blendelhetsz, ha a súlyozás megfelelő (vagyis az összegük mindig 1). Szerintem könnyebb megadni egy arányszámot minden animációra, mint ilyen gráfra minden csomópontra. Legalábbis ha nem értem félre amit mondasz.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
syam - Törzstag | 1491 hsz       Online status #163027   2011.09.08 11:55 GMT+1 óra  
Nem tudja valaki, hogy animation blendnél ha 2-nél több animációt akarok összerakni akkor az hogyan működik?

Első tippem az, hogy 2-esével csoportosítom (gráfot építek) az animokat és úgy blendelem őket.
Pl. A, B, C, D, E anim:
- A + B -> X
- C +D -> Y
- X + Y -> Z
- Z + E -> végeredmény
alias aalberik
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15] [20] [25] [27]