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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2189
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]
fpeti - Törzstag | 1291 hsz       Online status #127006   2010.01.28 12:39 GMT+1 óra  
dx9:
Szvsz ha magad megszorzod a vektorokat a mártrixokkal cpu-n.
Lehetne mondjuk textúrába is renderelni, de rendertartgetet lekérni meg sokáig tart(hat).
   
Swinkx - Törzstag | 106 hsz       Online status #127003   2010.01.28 12:17 GMT+1 óra  
Van egy animált meshem. Szeretném visszanyerni a vertexek éppen aktuális pozicióját. Tehát nem a legelső kiindulási póz kel, hanem amit éppen látok a képernyőn.
Mi a legegyszerűbb módszer?

   
Asylum - Törzstag | 5455 hsz       Online status #126945   2010.01.26 06:03 GMT+1 óra  
ID3D10Texture2D::Map?
Érdekes ennyit változott a 10 a 9-hez képest?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2521 hsz       Online status #126944   2010.01.26 05:55 GMT+1 óra  
Hogyan lehet a legegyszerűbben egy tömb (vagy tetszőleges adatszerkezet) adatait egy 32 bites csatornákkal ellátott textúrába beszuszakolni? DX10, C++.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
fpeti - Törzstag | 1291 hsz       Online status #124722   2009.12.23 13:08 GMT+1 óra  
Idézet
Matzi :
Animált karakterek isntanceigolása is olyan egyszerű? Vagy jól esejtem, hogy ott azért kell vele izzadni, nem?


Egy xna-s példában láttam, hogy a mátrixok adatait float32-es rendertargetből szedte ki, és nagyon sok karaktert rajzolt egyszerre (stadion-nyit)- de nem találom a linket.
   
svn - Tag | 92 hsz       Online status #124691   2009.12.23 05:32 GMT+1 óra  
Nem sokkal bonyolultabb.

Csak ott a csontadatokat kell okosan odaadni a shadernek.
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124690   2009.12.23 05:30 GMT+1 óra  
A léyneg nyilván az, hogy a processzor előállít egy rossz felbontású terepet, a geoshader meg csinál belőle egy jót, ami abból áll, hogy némelyiket sokfelé bontja, néhányat meg csak kicsit, vagy semennyire sem. De miután egy háromszöget szétvágott, azokat is külön lehet kezelni, sőt, a processzor félig elő is készítheti a jó felbontást, hogy mondjuk elve csak néhány iteráció dolgozzon a GPU-n. Ez azért jó, mert a kész geometria framenkénti átküldése egyébként is elég lassú móka, de ugye ha a videokártya rásegít akkor már nem is olyan rossz.

Animált karakterek isntanceigolása is olyan egyszerű? Vagy jól esejtem, hogy ott azért kell vele izzadni, nem?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
svn - Tag | 92 hsz       Online status #124689   2009.12.23 05:24 GMT+1 óra  
Igen, ez jol parhuzamosithato .

Csak te elotte irtad, hogy 1 haromszog-bol tolsz le ezret es hasonlokat. Instancing-rol pedig szinten DX sdk. Korulbelul annyi az egesz, hogy van egy geod, amit sokszor egymas utan kirajzolsz. Nem nagy ordongosseg, kell kb 3 api hivas.
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124688   2009.12.23 05:21 GMT+1 óra  
Nyilván valamire használni kéne, ha csak 2-3 háromszöget állít elő, akkor inkább átküldi az ember azt is. Mindenesetre megpróbálom kombinálni, az is elég, ha 3-4 iterációt átvesz a CPU-tól.

A feladat jól párhuzamosítható, nincsenek benne függőségek, szóval midnen háromszögön dolgozhat nyugodtan külön.

Instanceingről hol lehet jó anyagokat olvasni?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
svn - Tag | 92 hsz       Online status #124682   2009.12.23 04:58 GMT+1 óra  
Ez jo kerdes, de nem ilyen feladatokra valo . Eredetileg erre szantak, de tul lassu lett hozza.

Amit peldat irtal, az nem jol parhuzamosithato, csak abbol tudok kiindulni.
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124681   2009.12.23 04:53 GMT+1 óra  
Akkor mégis mire jó a geometry shader, ha egy látszólag ilyen egyszerű feladatra nem?
Ha jól emlékszem erről írtak olyanokat, hogy textúrából olvasva csinyálsz egy kockából egy rendes modellt, nem?
Amúgy teljesen jól párhuzamosítható feladatról van szó, háromszögből strip, vagy stripből strip generálás. Ráadásul elvileg a háromszögek nagy részét nem is kell egyáltalán felbontania.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
svn - Tag | 92 hsz       Online status #124678   2009.12.23 04:37 GMT+1 óra  
Az amit leirtal az tesszalacio.

Gondolj bele. Van egy 128 shader processzoros egyseged, aminek atkuldesz 100 haromszoget. Szerinted mennyire fog az porogni?

Az ilyen megoldasoknal, kb szetfagy az egesz driver, es orulni kell ha nem lesz kekhalal.

A legjobb tanacs, hogy cpu-n mukodo algoritmust atrakni gpu-ra az az esetek nagy reszeben hasznalhatatlan. Meg kell tanulni GPU-s fejjel gondolkozni .
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124677   2009.12.23 04:34 GMT+1 óra  
Nem tesszelláció, csak van egy algoritmus, ami CPU-n működik, csak lassú, azt szeretném átültetni GPU-ra. Ugye komoly gond, hogy minden frameben el kell készíteni a stripet.
Ha mondjuk azt el tudnám érni, hogy 1 átküldött háromszögből készítsen 1000et, akkor én már boldog lennék, mert csinálnék egy olyan kiindulási állapotot, ami tartalmaz 100-200 háromszöget, és a végeredmény kielégítő lehetne, szép is és gyors is.
Ami azt illeti az instanceingról szóló írások is érdekelnének.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
svn - Tag | 92 hsz       Online status #124676   2009.12.23 04:27 GMT+1 óra  
Tesszalaciot ne geometry shaderrel akarj futtatni. Probalkozz inkabb instancinggal, pl hogy adott meretu, gpu cache-re optimalis triangle stripeket instancolsz, es csak az instance matrixokat generalod gpu-n. (az igy elso raerzesre gyorsabb lesz)

Amit meg irtal, az nem igazan fog menni (foleg nem normalis sebesseggel).
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124673   2009.12.23 04:21 GMT+1 óra  
Konkrétan szeretnék egy terepfelbontó algoritmust átültetni GPU-ra, de akkor ha jól látom, akkor ez elég keveset tud hozzárakni a geometriához, nem? Meg lehet vele csinálni, hogy háromszögeket mondjuk 5-10-15 rekurziós szinten megfelezzen?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
svn - Tag | 92 hsz       Online status #124666   2009.12.23 04:08 GMT+1 óra  
Az, hogy nvidian szinte hasznalhatatlanul lassu.

Amit tudni kell rola, hogy 16xfloat4 input, 32xfloat4 output(bar ez lehet csak 10.1 alatt, most nem akarom elokeresni). Van 15x4096xfloat4 (vagy 16) constans buffered, 128 settelheto texturad, es 16 sampler objected. Defininalni kell, hogy max hany vertexet emittalsz egy shaderbol (ez talan valami 256 korul mozog, nem vagyok teljesen biztos benne).

Par extra, hogy pl 1 rendertargetbe iro pixel shadernel explicite meg tudod mondani, melyikbe irjon a pixel shader, a geo shaderben (gyors cubemap pl), a bemenetei point, line, lineadjency, triangle es triangle adjency. Ha jol tudom, dx alatt nincsen quad, csak ogl alatt. Kimenetnek szinten triangle, point, line mehet. StreamOutput eseten vagy egy darab teljes erteku kimeneti buffered lehet, vagy pedig 4 darab, darabonkent 1 elemu buffered lehet. DX11 alatt mar negy teljes erteku kimeneti buffered is lehet akar. Elersz jopar extra adatot, mint primitive id, es hasonlo szepsegek.

Hasznos anyag, amiben minden le van irva rendesen, peldakoddal : DX sdk.
bőgtem bazdmeg, mint carlos szokott amikor nem kap rózsaszín nyalókát a boltban... by Admiral Pecek
   
Matzi - Szerkesztő | 2521 hsz       Online status #124663   2009.12.23 04:00 GMT+1 óra  
A geometry shadernek mik az ismert korlátai?
Úgy néz ki diplomamunkában fogok vele dolgozni. Vannak már jó anyagok hozzá neten?
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #122856   2009.11.23 04:54 GMT+1 óra  
Volna egy kérdésem a DX8-as ID3DXSprite-tal kapcsolatban, hátha valaki tud rá egy jó megoldást.

Szóval 32 bites .png-ben van tárolva a textúrám, 8 bites alpha csatornával. Minden szép és jó, egészen addig, amíg nem nagyítom vagy kicsinyítem a sprite-ot (Scaling). Ekkor ugyanis a sprite szélein hibásan számolja az átlátszóságot, és úgy néz ki a kép, mintha "újságból lenne kivágva". Próbáltam más fájlformátumokkal is (tga,bmp,stb..), de ugyanaz a helyet, tehát nem itt a hiba. Ha jól gondolom, akkor ezt az okozza, hogy pl. egy 128-as átlátszóságú pixelt egy 0-ás átlátszóságúval interpolálva mindig 0-t ad, ami nem jó. Viszont ha már pl. egy 1-es átlátszóságú pixelt interpolál egy 128-assal, akkor már a helyes eredményt adja.
Erre azt a faramuci megoldást találtam ki, hogy a textúrám sehol sem teljesen átlátszó, hanem raktam alulra egy 1%-osan áttetsző réteget, és így gyakorlatilag megszűnt a bug...

Szóval csak annyi lenne a kérdésem, hogy tud-e valaki erre a problémára valami normálisabb megoldást?

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
fpeti - Törzstag | 1291 hsz       Online status #121527   2009.11.11 13:01 GMT+1 óra  
Idézet
T.C :
Akkor már inkább ez:
Kód:
http://www.directxtutorial.com/



Ezt nagyon szidják GameDev-en (felületes, nem foglalkozik hibalehetőségekkel)

MaximumViolence : ez tényleg nagyon jó, csak az effektezős résznél ma már picit máshogy van (beginpass endpass miegymás)
   
MaximumViolence - Törzstag | 1020 hsz       Online status #121521   2009.11.11 12:02 GMT+1 óra  
En DirectX alapokra mindig ezt a Monster3D tutorial sorozatot javaslom mindehol,en ezzel kezdtem el 3D-t tanulni,annyira szajbaragos,hogy lehetetlen nem megtanulni
Ez egy reszeg post...

   
sirpalee - Tag | 1282 hsz       Online status #121520   2009.11.11 11:52 GMT+1 óra  
Kandúrkám, ennek a fele fizetős, azt gondolom észrevetted...
raytraceisten és übermedic
   
screat - Tag | 382 hsz       Online status #121511   2009.11.11 07:53 GMT+1 óra  
[404] ERROR? Az tényleg jobb, mint a dx-tanulás.
még csak padawan...
Dont worry, be hippy - Fanni :)
   
T.C - Tag | 46 hsz       Online status #121509   2009.11.11 07:30 GMT+1 óra  
Akkor már inkább ez:
Kód:
http://www.directxtutorial.com/

Ezt a hozzászólást T.C módosította (2009.11.11 08:33 GMT+1 óra, ---)

   
fpeti - Törzstag | 1291 hsz       Online status #121466   2009.11.10 14:11 GMT+1 óra  
Ha valaki dx-et akar tanulni alapoktól:
http://thetavern.servebeer.com/?p=articles
   
Asylum - Törzstag | 5455 hsz       Online status #115079   2009.07.24 07:31 GMT+1 óra  
ninc valami egyszerü függvény amivel egy texturát át leeht másolni egy másikba? (a stretchrect nemjo mert az default poolosokra jo csak aztirja )
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #115043   2009.07.23 22:28 GMT+1 óra  
Idézet
Asylum :
én ezt azóta se értettem meg mivel nálam elég ritkán van state váltás Az egyik felmerülö probléma az volt, hogy A material beállitja X Y és Z statet, B materialnak viszont ezeket pont ki kéne kapcsolnia (mert neki nemkell, namost honnan a jóéletböl tudja, hogy A mit kapcsolgatott).



A State Object beállíthat mindent, szóval felesleges nézni az előzőnek milyen cucca volt.

Idézet
Asylum :
Esetleg leehtne egy olyat, hogy render elött minden materialra egy makestateblock()-ot meghivni egyszer ami megcsinálja ezeket.



Én is ezt mondtam korábban. De több materialnak is lehet ugyanaz a state objectje.
raytraceisten és übermedic
   
Asylum - Törzstag | 5455 hsz       Online status #115037   2009.07.23 15:53 GMT+1 óra  
én ezt azóta se értettem meg mivel nálam elég ritkán van state váltás Az egyik felmerülö probléma az volt, hogy A material beállitja X Y és Z statet, B materialnak viszont ezeket pont ki kéne kapcsolnia (mert neki nemkell, namost honnan a jóéletböl tudja, hogy A mit kapcsolgatott).
Esetleg leehtne egy olyat, hogy render elött minden materialra egy makestateblock()-ot meghivni egyszer ami megcsinálja ezeket.

Ezt a hozzászólást Asylum módosította (2009.07.23 16:01 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1291 hsz       Online status #115034   2009.07.23 14:58 GMT+1 óra  
Idézet
sirpalee :
Illendo lenne leszokni a statek ily modu allitgatasarol.

Korabban vagy itt vagy az engine programozas topicban volt szo egy jobb megoldasrol.



http://ilab.hu/jf/forums.php?m=posts&p=107287#107287
   
sirpalee - Tag | 1282 hsz       Online status #115032   2009.07.23 14:19 GMT+1 óra  
Illendo lenne leszokni a statek ily modu allitgatasarol.

Korabban vagy itt vagy az engine programozas topicban volt szo egy jobb megoldasrol.
raytraceisten és übermedic
   
fpeti - Törzstag | 1291 hsz       Online status #115025   2009.07.23 12:51 GMT+1 óra  
Idézet
dvorgaz :
Kód:
device->SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );
device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE );
device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );

Ezt egyébként mire kell visszaállítani, hogy ne barmolja el a több objektum rajzolását?



Kapiból beajánlottam volna ezt:
Kód:
device->SetTextureStageState( 0, D3DTSS_ALPHAOP,D3DTOP_DISABLE );

de most nézem az sdk-ban, hogy undefined az alpha ilyetén kikapcsolása, gondolom az alphablendet kell full kikapcsolni.
   
dvorgaz - Törzstag | 575 hsz       Online status #115012   2009.07.23 05:46 GMT+1 óra  
Kód:
device->SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );
device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE );
device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );


Ezt egyébként mire kell visszaállítani, hogy ne barmolja el a több objektum rajzolását?
   
fpeti - Törzstag | 1291 hsz       Online status #115001   2009.07.22 13:13 GMT+1 óra  
Még kéne neki az is, honnan vegye a színt, itt csak az alpha van megadva (D3DTSS_ALPHAARG1, D3DTSS_ALPHAOP), van D3DTSS_COLORARG1(-2), D3DTSS_COLOROP?
(Egyébként D3DTSS_CONSTANT -tal is meg lehetne csinálni, egy színt lehet megadni vele, abban is van alfa, de ez csak egy ötlet)
   
dvorgaz - Törzstag | 575 hsz       Online status #114979   2009.07.22 09:12 GMT+1 óra  
Kipróbáltam ezt, de valamiért nem jó, nem lesz tőle áttetsző Amit kirajzolok egy sima quad, alfa nélküli textúrával.

Kód:
D3DMATERIAL9 alphaMaterial;
ZeroMemory( &alphaMaterial, sizeof(D3DMATERIAL9) );
    alphaMaterial.Diffuse.r = 1.0f;
    alphaMaterial.Diffuse.g = 1.0f;
    alphaMaterial.Diffuse.b = 1.0f;
    alphaMaterial.Diffuse.a = 0.1f;
   

device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
device->SetMaterial( &alphaMaterial );

device->SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );
device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE );
device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );

device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
device->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);


szerk.: úgy néz ki, hogy ha a D3DRS_LIGHTING ki van kapcsolva akkor nem blendel, ha be van, akkor blendel, de csak fekete quadot rajzol.

Ezt a hozzászólást dvorgaz módosította (2009.07.22 09:22 GMT+1 óra, ---)
   
TPG - Tag | 3402 hsz       Online status #114977   2009.07.22 08:36 GMT+1 óra  
Idézet
dvorgaz :
Szeretnék egy modellt alphablendelni, úgy, hogy folyamatosan egyre áttetszőbbé válik, majd eltűnik; hogy lehet ezt megoldani DX9-ben shaderek nélkül? Ami blendelős tutorialokat találtam, ott egy textúra alfáját használta, de nekem itt egy kódból generált időfüggő alfa érték kellene.


RenderState: D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL
TextureStageState: D3DTSS_ALPHAARG1, D3DTA_DIFFUSE
D3DTSS_ALPHAOP, D3DTOP_SELECTARG1

Ezekkel a beállításokkal ( + az alpha szükséges beállításaival ) elvileg meg tudod ezt csinálni. Fogsz, kreálsz egy material-t, majd annak a diffuse paraméterét módosítgatod. Aztán SetMaterial.
Reality is almost always wrong. - House

   
sirpalee - Tag | 1282 hsz       Online status #114976   2009.07.22 08:35 GMT+1 óra  
Ha egy tetszőleges textúra alfájából ki tudod venni, akkor csak azt a textúrát kell mappelni / blendelés. Vagy fogsz és előre letárolsz különböző alfájú textúrákat (szám szerint 256-t) és mindig azt rakod rá ami éppen kell, persze itt elég a lehető legkisebb textúrákat használni. Nézegettem a DX9 device utasításait, de nem volt hasonló sem (ami nem jelenti hogy nincsen).

A legegyszerűbb shaderrel lenne, annak mi az akadálya?
raytraceisten és übermedic
   
dvorgaz - Törzstag | 575 hsz       Online status #114974   2009.07.22 08:17 GMT+1 óra  
Szeretnék egy modellt alphablendelni, úgy, hogy folyamatosan egyre áttetszőbbé válik, majd eltűnik; hogy lehet ezt megoldani DX9-ben shaderek nélkül? Ami blendelős tutorialokat találtam, ott egy textúra alfáját használta, de nekem itt egy kódból generált időfüggő alfa érték kellene.
   
sirpalee - Tag | 1282 hsz       Online status #113998   2009.07.01 23:47 GMT+1 óra  
Nem hiszem, mert pl újabban már nincs is ilyen paraméter.

void DrawIndexed(
UINT IndexCount,
UINT StartIndexLocation,
INT BaseVertexLocation
);

Így néz ki és kész.

(amúgy elvileg lehet vele optimizáció, de gyakorlatilag nem hiszem hogy érezhető lehetne)
raytraceisten és übermedic
   
Asylum - Törzstag | 5455 hsz       Online status #113995   2009.07.01 18:26 GMT+1 óra  
a DrawIndexedPrimitive() meghivásakor van-e jelentösége annak, hogy a MinVertexIndex paraméter nulla vagy nemnulla? Például ha a rajzolandó rész csak 15-töl használja a vertexeket és 15 öt adom meg akkor az hatékonyabb lesz-e mintha 0-t adnék meg?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #113391   2009.06.21 13:11 GMT+1 óra  
Idézet
Asylum :
jól látom, hogy a trianglefan dx10 töl felfelé már nincs? Akkor ezexerint a trianglestrip a leghatékonyabb? (na ezé nem rohanok átirni a betöltöt).



Bizonyám. Van list, strip, list adjency és strip adjency (line, triangle-re). Meg vannak patchek 1-32 control ponttal.
raytraceisten és übermedic
   
Asylum - Törzstag | 5455 hsz       Online status #113390   2009.06.21 13:00 GMT+1 óra  
jól látom, hogy a trianglefan dx10 töl felfelé már nincs? Akkor ezexerint a trianglestrip a leghatékonyabb? (na ezé nem rohanok átirni a betöltöt).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dvorgaz - Törzstag | 575 hsz       Online status #113389   2009.06.21 11:26 GMT+1 óra  
Így működik, köszi.
   
Asylum - Törzstag | 5455 hsz       Online status #113388   2009.06.21 11:24 GMT+1 óra  
ha jól értelmezem akkor a visszaállitás után csak a textura szinét rakja rá a modellre, nem szorozza be a fénnyel.

Probáld meg igy:

Kód:
device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CURRENT);
device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);

device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dvorgaz - Törzstag | 575 hsz       Online status #113387   2009.06.21 11:07 GMT+1 óra  
Ha a device-omban átbarmolom így a beállításokat:
Kód:
device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);

device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);

device->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
device->SetSamplerState(1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);

device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);

device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);

aztán visszaállítom így:
Kód:
device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);

device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);

Akkor mit kell még csinálni, hogy legyenek fények?
Ha nem allítok át semmit, akkor vannak fények, tehát azok jók, csak a texturestagestate-tel kéne még valamit csinálni (nincs neki valami reset to default?).

szerk.: "fények" alatt azt értem, hogy árnyalva legyenek a modellek
   
sirpalee - Tag | 1282 hsz       Online status #113171   2009.06.18 01:07 GMT+1 óra  
Volume texture szerintem nem lesz jó ilyen esetre, főleg ha lod-olni szeretnénk.
raytraceisten és übermedic
   
fpeti - Törzstag | 1291 hsz       Online status #113167   2009.06.17 16:03 GMT+1 óra  
Volume texture-el mi van? Én még nem használtam, de ilyesmire jó lehet dx9 alatt, feltéve, ha a textúrák ugyanolyan méretűek.
   
sirpalee - Tag | 1282 hsz       Online status #113160   2009.06.17 15:04 GMT+1 óra  
Ah bocs, az lemaradt. Este van már nagyon

Igan szóval texture array, azt elvileg simán a texture2D létrehozásánál kell beállítanod az array méretet. Ha jól emlékszem ott is 128 a limit.

Ezt a hozzászólást TheProGamer módosította (2009.06.17 15:06 GMT+1 óra, ---)
raytraceisten és übermedic
   
TPG - Tag | 3402 hsz       Online status #113157   2009.06.17 14:53 GMT+1 óra  
És azt tudja valami tömbként indexelni is? Mert a kérdésnek ez volt a másik része.
Reality is almost always wrong. - House

   
sirpalee - Tag | 1282 hsz       Online status #113156   2009.06.17 14:49 GMT+1 óra  
Nem kell feltétlen texture array, 128 texture registered van minden shader stagenel oda akár berakhatod egyesével is.
raytraceisten és übermedic
   
TPG - Tag | 3402 hsz       Online status #113154   2009.06.17 14:39 GMT+1 óra  
Idézet
Matzi :
Hogyan (illetve milyen DX verzió alatt) lehet megcsinálni legegyszerűbben azt, hogy mondjuk betöltök a shadernek sok-sok textúrát (mondjuk 50-100 darabot), és én abból valami indexelés segítségével a megfelelőből (csak az egyikből) olvasok ki egy pixelt? Egy mesh és egy pixelshader futna le csak sok textúrából az egyikből mintavételezne.

Egyáltalán milyen korlátozások élnek erre?


Van egy olyan halvány gyanúm hogy ilyet D3D9-ig nem lehet csinálni, viszont D3D10-től meg mintha erre lenne a Texture Array intézménye. Utóbbiről majd sirpalee esetleg beszél, én ahhoz megfelelő technológiai háttér hiányában még nem értek (nincs D3D10-es VGA-m).
Reality is almost always wrong. - House

   
sirpalee - Tag | 1282 hsz       Online status #113153   2009.06.17 14:38 GMT+1 óra  
DX10 kell minimum, ott tudsz akár 128 textúrát is egyszerre besettelni egy shadernek, azalatt jóval kevesebbet (8 vagy 16, vertex shaderben meg max 4).
raytraceisten és übermedic
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] > 10 < [15] [20] [25] [30] [31]