játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5444
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:    2188
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] [30] [31]
Pretender - Törzstag | 2498 hsz       Online status #168839   2011.11.17 17:01 GMT+1 óra  
Hát amikor létrehozod, akkor is kell lockolni Szóval ha mindig létrehoznád, akkor vesztenél sebességet, a felszabadításét és a létrehozásét. Van egy flagje a vb-nek meg az ib-nek, ahol be tudod lőni, hogy dynamic legyen, ilyenkor ha jól tudom valami más elérésű memóriába teszi, ahonnan gyorsabban eléri

   
Matzi - Szerkesztő | 2519 hsz       Online status #168837   2011.11.17 16:29 GMT+1 óra  
Lényegesen lassabb vajh' egy vertex és index buffer létrehozása, mint szimplán az újra feltöltése?

Szóval ha van egy meshem, amit amúgy is minden frameben újra kell számolni, akkor ha mindig újrakreálom az elejéről a vb-t é az ib-t, lassabb e, mintha lockolgatnám?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
nikoteam - Tag | 9 hsz       Online status #160208   2011.08.19 19:37 GMT+1 óra  
Nem használok shadereket így FFP. Szét néztem msdn-en azt írja, hogy hibás lehet a világítás, ha a D3D matrixom utolsó oszlopa nem a standard 0,0,0,1 de sajnos debugolás közben kiderült , hogy az....
   
Asylum - Törzstag | 5444 hsz       Online status #160156   2011.08.19 15:57 GMT+1 óra  
Fixed function pipeline vagy shaderes fény ez?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
nikoteam - Tag | 9 hsz       Online status #160046   2011.08.18 21:30 GMT+1 óra  
Üdv mindenki!
Sikerült gyönyörűen kitextúráznom a terraint, kiszámoltam a normalokat és már be is világítottam a mapot... de most a világítással van problémám egy pointlight-ot használok a most már 128*128 as terrainem [64,-64] koordinátáján. A probléma ha beállítom a transformot így:
Kód:
// Terrain forgatás
D3DXMATRIX m_Rotation;
//Előre-Hátra dönttés, Balra-Jobbra döntés, Forgatás
D3DXMatrixRotationYawPitchRoll(&m_Rotation,YawAngle,0,RotationAngle);
// Transzformálás, hogy a terrain a képernyő közepére kerüljön
D3DXMATRIX m_Translation;
D3DXMatrixTranslation(&m_Translation,TerrainWIDTH/2,-TerrainHEIGHT/2,0);

D3DXMATRIX m_World;
D3DXMatrixMultiply(&m_World, &m_Translation, &m_Rotation);
p_dx_Device->SetTransform(D3DTS_WORLD, &m_World);

akkor a pointlight valamiért rossz helyen van, az x és y tengely kicsúszik a terrain egyik sarkára...
innentől kezdve csak a magasságát a rádiuszát és irányát tudom módosítani. Ha pedig a Set Transform-ot kikommentelem a pointlight pont a terrain közepén van...

Tud valaki ebben segíteni?
Előre is köszönettel:
nikoteam
   
nikoteam - Tag | 9 hsz       Online status #159902   2011.08.17 18:11 GMT+1 óra  
Köszi a segítséget mindenkinek végülis sikerült megoldani a problémát pretendernek volt igaza float és int konverziós hibák voltak... Ha esetleg más is szenvedne hasonló problémákkal, itt a for ciklus amivel feltöltöm a vertex tömbömet:
Kód:
for (int x=0;x< TerrainWIDTH;x++)
{
for (int y=0; y< TerrainHEIGHT;y++)
{
cv_Vertices[y*TerrainWIDTH + x].x = -x;
cv_Vertices[y*TerrainWIDTH + x].y = y;
cv_Vertices[y*TerrainWIDTH + x].z = f_DataFile.get()/50;
cv_Vertices[y*TerrainWIDTH + x].normal.x = -1;
cv_Vertices[y*TerrainWIDTH + x].normal.y = 0;
cv_Vertices[y*TerrainWIDTH + x].normal.z = 1;
cv_Vertices[y*TerrainWIDTH + x].tu1 = float(y)/(TerrainHEIGHT-1);
cv_Vertices[y*TerrainWIDTH + x].tv1 = float(x)/(TerrainWIDTH-1);
cv_Vertices[y*TerrainWIDTH + x].tu2 = float(y)/(TerrainHEIGHT-1);
cv_Vertices[y*TerrainWIDTH + x].tv2 = float(x)/(TerrainWIDTH-1);
}
}

Mégegyszer köszi a segítséget:
nikoteam
   
Pretender - Törzstag | 2498 hsz       Online status #159899   2011.08.17 17:55 GMT+1 óra  
Elvileg pont ez lenne a lényege, jónak kellene lennie.. ha csak 63*63 a terep, akkor mivel osztasz, így a [63;y;63] pontba kellene elvileg az [1;1] texcoordnak kerülnie.

   
JagdTiger - Tag | 6 hsz       Online status #159898   2011.08.17 17:52 GMT+1 óra  
ugyanúgy ahogy a texeleket megadod:

képlet:
texel.u = vertex.x / 63.0f
(y-v hasonlóan)

vagyis interpolálsz....

   
nikoteam - Tag | 9 hsz       Online status #159894   2011.08.17 17:34 GMT+1 óra  
egyébként floatok voltak
   
nikoteam - Tag | 9 hsz       Online status #159892   2011.08.17 17:33 GMT+1 óra  
A probléma fele meg van oldva... mivel 0 tól kezdődik a számolás így a 64 egység hossz csak 63 ig tart, tehát 63 al kell osztani nem pedig 64-el... amatőr hiba... Így az ismétlődés megszűnt az egyik sarokban pontosan egyszer rajzolja ki a textúrát, De hogy oldom meg azt, hogy ezt a kis négyzetet az egész terrainra nyújtsa?
   
Pretender - Törzstag | 2498 hsz       Online status #159891   2011.08.17 17:33 GMT+1 óra  
floatok? lehet, hogy intek és akkor a 0,x-et 0-ra konvertálja
Kód:
texcoord.x = (float)x / width;

   
nikoteam - Tag | 9 hsz       Online status #159890   2011.08.17 17:27 GMT+1 óra  
lehet ez a baj én u és v coordnak a vertex x és y-ját adtam meg ami ugye 0,0 tól 63,63 ig megy, de ha u=y/64 és v=x/64 akkor nem tesz semmi textúrát a terrainre... ha kevesebbel osztom mondjuk 10el, akkor pedig 6*6 textúrázott sávot kapok...
   
Pretender - Törzstag | 2498 hsz       Online status #159889   2011.08.17 17:23 GMT+1 óra  
Arra gondolt szerintem A texcoordoknak [0;0] [1;1] között kell lennie (a [0;0] a bal felső sarok, [1;1] a jobb alsó)

   
nikoteam - Tag | 9 hsz       Online status #159888   2011.08.17 17:18 GMT+1 óra  
texelek alatt az u és v koordinátákra gondolsz ugye?
   
JagdTiger - Tag | 6 hsz       Online status #159886   2011.08.17 16:14 GMT+1 óra  
texelek koordinátáit jól kell beállítani, ha bármelyik 1-nél nagyobb akkor már előjöhet az ismétlődés...

   
Pretender - Törzstag | 2498 hsz       Online status #159876   2011.08.17 15:00 GMT+1 óra  
Nézz körül itt:
[url]http://msdn.microsoft.com/en-us/library/bb172614(v=vs.85).aspx[/url]
De alapból úgy szokta pedig rárakni...

   
nikoteam - Tag | 9 hsz       Online status #159875   2011.08.17 14:44 GMT+1 óra  
Helló mindenki!

Egy kis segítséget szeretnék kérni. C++ ban kezdtem dx programozásba és egy olyan problémám lenne, hogy a vertexbufferbe töltött terrain-om ra szeretnék ráhúzni egy photoshopban készült normalmapot... A textúrázás összejött, a normal map is látszik rendesen, viszont nem tudom hogyan kellene a 64x64 es terrainre úgy rárakni a normal mapot, hogy azt a dx ne mozaikba rakja le... Tehát röviden hogy tudom a textúrát elnyújtani az egész terrainre?

Előre is köszönettel:
nikoteam

   
Parallax - Tag | 579 hsz       Online status #158780   2011.08.07 21:43 GMT+1 óra  
Idézet
Tibsy :
láttam ezt . de én Vc# -ban kezdtem el tanulni nem pedig C++ . nyelven most kezdjek neki egy új nyelv tanulásának .: !?


Nagy fa ez, amit most körömreszelővel szeretnél kivágni. Kicsiben kell kezdeni előb, nem rögtön 3D shaderes engine-el.. De erre majd csak rájössz magadtól is előbb-utóbb. Ha megnézed a most világhírű engine fejlesztők is egyszerű dolgokkal kezdték. Most az egy dolog, hogy nagyobb szint, de akkor is az elején kell kezdeni.

   
Pretender - Törzstag | 2498 hsz       Online status #158699   2011.08.07 11:09 GMT+1 óra  
A nyelv csak egy eszköz, az elméletük ugyan az (azzal a különbséggel, hogy a c# az managed, a c++ pedig unmanaged)

   
Tibsy - Tag | 307 hsz       Online status #158697   2011.08.07 11:04 GMT+1 óra  
láttam ezt . de én Vc# -ban kezdtem el tanulni nem pedig C++ . nyelven most kezdjek neki egy új nyelv tanulásának .: !?
   
Pretender - Törzstag | 2498 hsz       Online status #158684   2011.08.07 08:59 GMT+1 óra  
Idézet
Tibsy :
nem az hogy helyettem csak valamivel részletesebb és magyar nyelven . elvére egy kezdö programozó aki el érte azt a szintet hogy engine-t fejlesszen az honnan tudja hogy mit kell csinálnia ahoz hogy legalább egy 3d- elemet meztelenítsen ?


Mindig az adott részfeladatnak nézel utána. A programozás nyelve pedig az angol, jobb minél előbb megtanulni (amúgy is kell a "nagy világba" )
Mellesleg az oldalon körülnéztél már? Én anno ezen indultam el... (segédletek, játékfejlesztés, 2. oldalon indul)

   
Asylum - Törzstag | 5444 hsz       Online status #158676   2011.08.06 23:21 GMT+1 óra  
Csak az elsö 10-20 oldalt olvastam el, és éppenhogy csak megkarcolja a felszínt (de azt legalább jól). Fejelsztés közben olyan problémák jöhetnek elö ami az egész engine ujratervezését igényelhetik, ami már nem olyan vicces. Szóval egyedül max garázsenginet lehet fejleszteni, ahhoz meg böven elég a kisérletezös megközelités.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Tibsy - Tag | 307 hsz       Online status #158674   2011.08.06 23:12 GMT+1 óra  
nem az hogy helyettem csak valamivel részletesebb és magyar nyelven . elvére egy kezdö programozó aki el érte azt a szintet hogy engine-t fejlesszen az honnan tudja hogy mit kell csinálnia ahoz hogy legalább egy 3d- elemet meztelenítsen ?
   
Pretender - Törzstag | 2498 hsz       Online status #158672   2011.08.06 23:06 GMT+1 óra  
Nem fogják helyetted leírni, hogy mit kell csinálni
Ennyi kb. bőven elég.

   
Tibsy - Tag | 307 hsz       Online status #158669   2011.08.06 22:52 GMT+1 óra  
egy Kiss érdekesség (grafikus motor fejlesztése direct x-el ) működési elvét írják le ,., felületesen
LINK
De jó is lenne ha lenne egy ,magyar nyelvű oktató anyag amibe le van írva, hogy mit és hogyan, és mért úgy kel csinálni ahogy
   
Pretender - Törzstag | 2498 hsz       Online status #158300   2011.08.03 21:41 GMT+1 óra  
Kód:
m_Game->GetDevice()->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
m_Game->GetDevice()->SetRenderState(D3DRS_ALPHATESTENABLE, true);

//draw

//shader:
Color.rgb = IPos.z;
Color.a = tex2D(sampler0, Texcoord).a;

Laptopon ment (ATI HD 2400 tán)

   
Asylum - Törzstag | 5444 hsz       Online status #158295   2011.08.03 21:35 GMT+1 óra  
Pixel shaderrel utómunka? (vagy kézzel alpha tesztelsz )
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #158289   2011.08.03 21:27 GMT+1 óra  
Ejha, jó hogy a saját gépemen is kipróbáltam a cuccot... Ahogy utánaolvastam, az R32F rendertargettel nem túl sok gpu támogatja az alpha testinget. És ez most rossz hír nekem, mert az árnyéknál a depth mapet egy ilyen rendertargetbe írtam, és hát a falevelek azok alphatestesek...
Ötlet?

   
Pretender - Törzstag | 2498 hsz       Online status #158113   2011.08.02 14:09 GMT+1 óra  
Mind1, jó lesz ez így, renderenként 1x fordul elő, hogy újra kell állítanom a paramétereket, az meg kibírható...

   
Asylum - Törzstag | 5444 hsz       Online status #158111   2011.08.02 14:06 GMT+1 óra  
Hjaaaaa.
Akkor nem tudom, nekem saját constant tablém van és az jól müködik (viszont a mátrixokat transzponálni kell vagy nem kell, mert az ID3DXEffect alapbol transzponálja vagy nem transzponálja).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #158110   2011.08.02 14:04 GMT+1 óra  
Kód:
D3DXCompileShaderFromFile(m_Path.c_str(), 0, 0, "main", "vs_2_0", 0, &code, 0, &m_ConstantTable)

majd
Kód:
m_Device->CreateVertexShader((DWORD*)code->GetBufferPointer(), &m_VertexShader);

Ezért van vertex shaderem, és constant table-m

   
Asylum - Törzstag | 5444 hsz       Online status #158109   2011.08.02 14:03 GMT+1 óra  
Hátakkor meg honnan van constant tabléd?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #158106   2011.08.02 13:35 GMT+1 óra  
mert buziság az az ID3DXEffect vagymi... nem használom azt a szennyt, mert az meg minden szart állít mellette.. teljesen jó a külön vs, ps állítgatás.

   
Asylum - Törzstag | 5444 hsz       Online status #158103   2011.08.02 13:00 GMT+1 óra  
Mért c1-en keresztül állitod be mikor ott van az ID3DXEffect:etXXX()?

A shadereknek pedig nincs konstans táblája, az effektnek van.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #158080   2011.08.02 09:22 GMT+1 óra  
hm... lehet, hogy nem teljesen jól használom ezt a constant table cuccot, avagy nem jól értelmeztem...
Mondjuk van 2 shaderem, v1 és v2, mindkettőhöz 2 külön constant table, c1 és c2.
- Első menetben a v1-el rajzolok, és beállítom a c1-en keresztül az értékeket
- Azután ugyan ez v2-vel, és c2-vel.
- Azonban, ha újra a v1-el szeretnék rajzolni, akkor az első menetben, amit beállítottam értékeket, azok "elvesznek", így újra be kell állítanom őket.
Ez így természetes, vagy valahogy teljesen félreértettem a működését?

   
Parallax - Tag | 579 hsz       Online status #157832   2011.07.31 15:09 GMT+1 óra  
Már mobilon is jön az OpenCL, szóval rezeg a léc. Bár a következő xbox-on még lehet, hogy lesz D3D 12, az meg még utána vagy 7 évig megállja a helyét.

   
Asylum - Törzstag | 5444 hsz       Online status #157830   2011.07.31 15:06 GMT+1 óra  
Szerintem nem döglödik hanem az uj DirectX-et csinálják (nemistudom hánynál tart már 12?).
Egyébként szerintem ez pont az ellenkezöjét jelenti: a DX11 jól definiált.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Parallax - Tag | 579 hsz       Online status #157829   2011.07.31 15:06 GMT+1 óra  
Akkor máris át kell térni CUDA-ra? Csak nem.

   
molgab87 - Tag | 51 hsz       Online status #157825   2011.07.31 14:44 GMT+1 óra  
Jujj, az opensource softwareknél is az egy év kihagyás döglődést jelent már...

   
Asylum - Törzstag | 5444 hsz       Online status #157824   2011.07.31 14:34 GMT+1 óra  
Igen, az a legfrissebb.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
molgab87 - Tag | 51 hsz       Online status #157821   2011.07.31 13:36 GMT+1 óra  
Most kerestem a DX sdk-t, létezik hogy tavaly júniusi az utolsó?

   
fpeti - Törzstag | 1290 hsz       Online status #157006   2011.07.23 02:09 GMT+1 óra  
kép
Nem jövök rá már 2 este, hogy ez mitől lehet.
Deferred shading, egy területen rajzolnék ki alulról felfele fényt, ami földbe ütött lyukakon át látszó lávából jönne. Ezt egy kis dinamikus textúrával csinálom, a pixelek a világbeli pozíciójuk alapján (x,z) számolják a textúra koordinátát, és abból a fényességet. Bizonyos helyeken ez fekete színt ad úgy is, hogy az egész textúra fehér, ami miatt szvsz ez lehetetlen, mert nincs olyan texcoord, ami feketét adna ki. A vörös részek azok, ahol a texcoordok kiesnek 0-1 intervallumból (teszt). De a fekete részeknél nem tudom mi lehet. Ha a textúrakoordinátákat adom ki színként, az nem mutat semmi érdekeset.
Ezen kívül zajszerűen fekete pixelek vibrálnak néha akkor is, ha nem mozog semmi, ami szintén fura, általában ott, ahol a 'Z' viszonylag sokat változik 2 pixelen belül. A fekete élek is valami ilyesmire utalnak, de valahogy valószínűtlen az egész.
A lényeg az lenne, hogy vagy fehér, vagy vörösnek kellene minden pixelnek lennie a kockán belül. A clip()-et kikommentelem a kódból, így az sem zavarhat be.
Kb az van, hogy ha nem a textúrából veszem a színt, akkor nincsenek a fekete élek.. tehát az sem lehet, hogy a fekete részekre nem rajzolja ki a pixeleket.
Ha beleteszek egy ilyet: (c0 a ps output colorja)
Kód:
if(c0.r<0.1 && c0.g<0.1 && c0.b<0.1) c0 = float4(1,0,0,0); // vörös

akkor ilyen lesz:
kiemelve
Fő kérdésem: Hogy lehet fehér textúrából fekete pixelt vételezni?
Ok, feltöltöttem egy videót a vibrálásról, közben semmi sem mozog.
youtube

edit:
Úgy néz ki, hogy a dinamikus textúra használata okozza, ha betöltök neki egyet, semmi gond..
edit2:
Jah, tényleg az lett:
annyi volt a gond, hogy mipmap-et is létrehoztam a IDirect3DDevice9::CreateTexture()-rel, aminek szvsz nem kéne ezt csinálnia, de csinálja. Amint nem volt mipmap, minden ok.
(De jóóóó.)

Ezt a hozzászólást fpeti módosította (2011.07.23 02:39 GMT+1 óra, ---)
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #156207   2011.07.13 17:28 GMT+1 óra  
ja, akkó' azé' nemtom hol kő állítani..
de a leírtak alapján az A8R8G8B8-t (a józan paraszti észnek ellentmondva) kicsi indián szerint tárolja.

szerk.: te, az egész x86 little endian -os, próbáld ki a sima memóriában, na most jól beugrattál.. de ráfogom arra, hogy napszúrást kaptam..

szerk2.:
Kód:
DWORD dw=0x01020304;
unsigned char* pdw;

pdw=(unsigned char *)&dw;
if (pdw[0] == 0x04) ; // little endian
else ; // big endian

Ezt a hozzászólást HomeGnome módosította (2011.07.13 18:23 GMT+1 óra, ---)

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Joga - Törzstag | 1791 hsz       Online status #156203   2011.07.13 16:25 GMT+1 óra  
Szvsz nem lehet állítani, max konvertálni
(ಠ ›ಠ) Stewie!

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #156201   2011.07.13 15:12 GMT+1 óra  
tipp: bigendian-littleendian, nemtom hol kell állítani

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Asylum - Törzstag | 5444 hsz       Online status #156198   2011.07.13 15:03 GMT+1 óra  
Szerintetek miért van az, hogy ha unsigned long-ként irok egy texturát akkor argb a sorrend, de ha bájtonként akkor bgra?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
VultureHunter - Tag | 27 hsz       Online status #154602   2011.06.19 05:06 GMT+1 óra  
Teljesen jó irányt írtál . Nem volt időm egy egész napig foglalkozni a feladattal de ma reggel sikerült megcsinálnom a dolgot a segítségeddel. A helyükön forognak a propellerek és követik a helikopter mozgását. Köszi még egyszer.

   
VultureHunter - Tag | 27 hsz       Online status #154521   2011.06.17 08:59 GMT+1 óra  
Szeretnék én is ilyeneket írni végre reggelenként ! Köszönöm!

   
Pretender - Törzstag | 2498 hsz       Online status #154520   2011.06.17 08:41 GMT+1 óra  
Ezt inkább úgy érdemes megcsinálni, hogy van magának a helikopternek egy forgatása, és ehhez képest hiearchikusan gyerekeként létezik a rotor.
Tehát a rotort mindig csak egy adott tengely körül forgatnád, a helikoptert meg a bedőlésnek megfelelően. A két mátrixot meg csak össze kell szorozni, de most még reggel van, nem biztos, hogy jó irányt írok...

Valami ilyesmire gondolok:
Kód:
Matrix rotor = RotationY(rotorforgas);
Matrix heli = RotationYawPitchRoll(y,x,z);
rotor = rotor * heli;

   
VultureHunter - Tag | 27 hsz       Online status #154519   2011.06.17 08:33 GMT+1 óra  
Tudna segíteni valaki forgatással kapcsolatos ügyben? Jelenleg egy helikopteres játékot fejlesztek és a nagy rotort forgatom a függőleges tengely körül - ezzel eddig nincs is semmi probléma, de amikor elkezdem bedönteni valamelyik irányba, akkor billegni kezd. a D3DXMatrixRotationYawPitchRoll API-t használom és nem igazán vágom hol lehet a probléma.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] > 5 < [6] [7] [8] [9] [10] [15] [20] [25] [30] [31]