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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2201
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Korábbi postok
> 1 < [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [31]
Csizmás Kandur - Tag | 436 hsz       Online status #104621   2009.02.15 05:23 GMT+1 óra  
Idézet
sirpalee :
Amúgy minimalizálni kell a beépített cuccok használatát, lustává teszik az embert. A fx keretrendszer meg a legnagyobb baromság, eléggé visszafogja a lehetséges maximumot azért nem használja senki sem. (kivéve az XNA-sok de nekik talán nincs is más lehetőségük)


Általában a DX-et azért preferálják, mert a beépített dolgok miatt hatékony a fejlesztés.
Ha mindez használhatatlan, nem jó, akkor mégis miért éri meg jobban DX-et használni? (megint kicsit a "mindent írjunk újra" feeling van)
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
sirpalee - Tag | 1282 hsz       Online status #104608   2009.02.14 18:18 GMT+1 óra  
Idézet
Asylum :
1.: megszoritásokat vezetek be, pl. mindig legyen kint a szemantika, és az ien trafókat az engine magátol állitja be.
2.: csak asm shader...hát-hát...
3.: kitalálok egy saját nyelvet...ezt meg nem akarom bár a valve is megcsinálta; és tulképpen ez lenne a legértelmesebb ha tudnám mire forditsam le



2 : Semmiképp sem, mivel dx9 után megszűnt a shader asm olyan szintű elérése, mint dx9-ben.
3 : Valve nem csinálta meg, nincs saját shader nyelvük, hlsl-ben kell programoznod a shadereket, csak van egy saját leíró fájluk (piszkáltam az sdk-t és tudom). És a te esetedben pedig felesleges(nekem pl muszáj, de az más feladatú engine).

Ha kézzel állítod be melyik regisztert használja, akkor ő azt fogja végig használni, a compilelt verzió követni fogja amit te megadsz neki. Természetesen a megfelelő indexeket kell bözgetni, de ha megírtad a shader kódot, akkor ezt tudnod kell.

A legjobb megoldás, ha bevezett adott konvenciókat hogy melyik regiszterekbe milyen adatok vannak, amiket az általános számításokhoz használsz, és a maradék pedig az adott shader paraméterei. (és akkor az adott kirajzolandó entity kap egy offsetet hogy hova töltse fel az adatait)

Illetve itt bejön jópár hibalehetőség (ez is a dx9 gány szerkezete miatt). Ha például bővíted az általánosan használt adatokat, akkor a saját adatokat is át kell mozgatni, mivel akkor extra adatokat adsz hozzá, és a többi elmozog.

Azt nem csinálhatod meg, hogy visszafelé kezded indexelni a saját adatokat, mert dx9-ben nem egységes a hogy az adott shader fajtához mennyi constansod van (pl sm2.0 alatt tipikusan 256 pixelben és 128 vertexben, míg sm3.0-nál nvidiánál kb 4k, atinál kb 1.7k), tehát ez sok-sok átíráshoz vezetne.

Azt sem csinálhatod meg, hogy egy adott mennyiséget előre lefoglalsz, mivel változó a beállítható contansok hossza.

A szép megoldás, az egy verzióval magasabban van, a 0-ik constans buffer a közös adat (4096 regiszter) és a shadernek meg marad még jópár buffer.

Neked az egyszerű megoldás, amit korábban is mondtam, hogy írj pl egy constans bufferhoz hasonló osztályt, ami emulálja az egészet. Belerakhatod a paramétereket, és az szépen beállítja a megfelelő regiszterekbe és visszaad neked egy stringet (megadod a típusát és az azonosító nevét). És amikor betöltéskor fordítod a shadereket, egyrészt betöltöd az általánosan használt globális változókat, másrész a shader saját változóit, és a fájlból betöltött shader kód elé biggyeszted, és azt a stringet fordítod le shader kóddá (ez persze kilövi az fxc használatát, de ez van).

És a hlsl nem gányolt nyelv, eléggé letisztult, egyszerű, és bármit könnyen le tudsz írni vele, persze ha folyékonyan beszéled.
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104592   2009.02.14 16:32 GMT+1 óra  
azt használom ezerrel. Csak azabaj, hogy ez a hlsl elég gányolt nyelv...pl. ha csak azonsdom hogy

Kód:
matrix valami : register(c0);


akkor most az engine találja ki, hogy ez a world, view vagy proj...
meg ez hogy lehetöleg egy hivással állitsam be a közös változokat...ehhez jolenne ha mind egymásután jönne. De pl. egy harmadik shaderben nemkell valamelyik ezek közül...ez bajos...

Több ötletem van:

1.: megszoritásokat vezetek be, pl. mindig legyen kint a szemantika, és az ien trafókat az engine magátol állitja be.
2.: csak asm shader...hát-hát...
3.: kitalálok egy saját nyelvet...ezt meg nem akarom bár a valve is megcsinálta; és tulképpen ez lenne a legértelmesebb ha tudnám mire forditsam le

szerk.: ja és mivel a dx forditja le a shsdert ezért nemjo ha én belenyulkálok a constant table-be mivel a shader kódban pl. a c1 elsö floatját használja ánmeg átrakom a c0 másodikba attolmég a gépi kód nem fog megváltozni....

eddig a 2. lehetöség a leszimpibb...meg az 1-es...de naaagyon sok megszoritást kéne bevezetni

Ezt a hozzászólást Asylum módosította (2009.02.14 16:57 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104584   2009.02.14 16:06 GMT+1 óra  
De az. Próbáld meg kézzel csoportosítani

Én úgy szoktam hogy a : packoffset hozzáírásával definiálom melyik regisztert is akarom elérni.

pl matrix World : packoffset( c0 );
vagy ha egyes változó akkor így is lehet, float something : packoffset( c4.y);

Szerk :
Most néztem egy tesztet, ha packoffset nélkül írom be a dolgokat, és 2 floatot írok egymás után, akkor minden gond nélkül egy regiszterbe rakja őket, bepackolja a lehető legkisebb méretre automatikusan.

Szerintem azért van ilyen különbség, mert dx9 alatt egyesével tudsz regisztereket feltölteni, és így lehet külön pakolja őket, míg dx10-ben csak egységes buffereket tudsz feltölteni neki, és ott packel amennyire csak tud.

Ajánlom az AMD gpu shader analyzer programját, ott megnézheted ATI assemblyben, és directx assemblyben is a kódot, elemzi hány órajel különböző kártyákon (9600 tól 4870-ig) különböző shader modelleken (2.0-4.1). Tud syntax kiemelést és kiírja a hibákat is (én azt szoktam shader írásra használni).

DX9-ben tudod specifikálni a : register(c#) utánaírásával, de azt most hirtelen nem találom hogy meg tudod-e adni hogy melyik alkomponenst használja. De lehet nem.

Ezt a hozzászólást sirpalee módosította (2009.02.14 16:19 GMT+1 óra, ---)
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104580   2009.02.14 15:42 GMT+1 óra  
szerintetek nem pazarlás, hogy a shader fordito minden floatot (most sima floatra gondolok) külön regiszterbe rak? Mondjuk annyiban okos, hogy csak akkor ha használom is valahol az értéküket. Depl. egy 8 regiszteres kártyán elfér pont a worldviewproj és még marad 4 regiszter...értelmesebb lenne ezeket optimálisan kitölteni
Gondolom az 1_x -es shader compiler még igy csinálta...de arra azt irja h nincs már támogatva. Vicces.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104231   2009.02.09 04:42 GMT+1 óra  
A saját material a legkritikusabb az egész rendszerben. A megfelelő material / shader / constans állításokkal a lehető legnagyobb sebességnövekedést elérni.

Főleg dx9 alatt ahol egy set-elés nagyon költséges. (dx10 alatt már olcsóbb, de ott is minimalizálni kell, de az már teljesen más világ)

Próbáld meg azt hogy szétválasztod a shader progikat külön fájlokra, psh és vsh cuccokra, és akkor még kombinálni tudod a különböző shadereket. Pl különböző psh-k kompatibilisek lehetnek több vsh-val is ha jó elnevezési konvenciókat fektetsz le (és akkor csak cserélgeted a pixel shadert).

Ami még jó optimizáció, hogy írsz saját constans buffer osztályt, és egyszerre töltesz fel mindent a gpu-nak. Összehasonlításként, 3 mátrix feltöltése egyesével kb annyi mint egy teljes 256-os constans buffer feltöltése. 4 meg már lassabb. És akkor ugye kiszűröd azokat a paramétereket amiket sok shader használ egyszerre stb...

Egy jó trükk az tud lenni, ha nem akarsz elveszni a különböző constans indexek között, hogy a constans buffer ki tud exportálni egy constans deklarációt stringként, amit minden shader elé odabiggyesztesz mielőtt fordítod, és így menet közben (pontosabban betöltéskor) dinamikusan átírod a shadereket. És ez még csak a shaderkezelés csúcsa . Az fx ennek a töredékét sem tudja.
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104230   2009.02.09 04:32 GMT+1 óra  
hát eddig is arra törekedtem pl. a d3dx math alrendszerét (...) teljesen kigyomláltam és sajátot irtam, hasonloan most saját mesh osztályt is mert majd az instancing miatt és most akkor materialt is
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104228   2009.02.09 04:09 GMT+1 óra  
Amúgy minimalizálni kell a beépített cuccok használatát, lustává teszik az embert. A fx keretrendszer meg a legnagyobb baromság, eléggé visszafogja a lehetséges maximumot azért nem használja senki sem. (kivéve az XNA-sok de nekik talán nincs is más lehetőségük)

Update, megvolt a bug, nem szerette ha TEXCOORD1 és TEXCOORD0 néven neveztem el, hanem a semantic index-el kellett megfelelően elnevezni. (most NORMAL és TEXCOORD0 néven fut a két kiküldött adat).
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104226   2009.02.09 03:35 GMT+1 óra  
<sóhaj> éreztem én
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104225   2009.02.09 01:31 GMT+1 óra  
Idézet
Csizmás Kandur :
Idézet
Asylum :
Csak én gondolom, hogy ez a dx igen hülyén van megcsinálva?


Szar az egész dobd ki a fenébe. C + OGL a cool.



Az ogl-ben erre még lehetőség sincs, hogy regiszterekhez köss egyes változókat
raytraceisten és übermedic
   
sirpalee - Tag | 1282 hsz       Online status #104224   2009.02.09 01:30 GMT+1 óra  
Nem nincs hülyén megcsinálva a dx, ez a fix regiszteres dolog tökéletesen működik, csak az effect kavarja össze az egészet. Ezért van hogy az összes normális engine nem használ fx-eket .

Fordítsd le kézzel és töltsd be, írj rá egy saját keretrendszert. Nekem is az volt az első miután megtudtam mit művel az fx.
raytraceisten és übermedic
   
Csizmás Kandur - Tag | 436 hsz       Online status #104220   2009.02.09 00:16 GMT+1 óra  
Idézet
Asylum :
Csak én gondolom, hogy ez a dx igen hülyén van megcsinálva?


Szar az egész dobd ki a fenébe. C + OGL a cool.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
Asylum - Törzstag | 5512 hsz       Online status #104218   2009.02.08 14:57 GMT+1 óra  
köv kérdés

van az id3dxeffect és vannak a regiszterek. Azt akarom, hogy a shaderben aszondom, hogy

Kód:
matrix valamilyesnnév : World : register(c0);


és én akarom beállitani a device-on a konstanst

Kód:
device->SetVertexShaderConstantF(0, &valamilyenmátrix, 4);


azabaj, hogy az id3dxeffect ebbe belekontárkodik. Találtam egy félig-meddig megoldást, mégpedig hogy betöltéskor a D3DxCreateEffectEx() -et használom és ott megadom..hát igen a változó nevét....
pont ezt akarom elkerülni, hogy a névtöl függjön.

Csak én gondolom, hogy ez a dx igen hülyén van megcsinálva?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104215   2009.02.08 12:46 GMT+1 óra  
Idézet
Asylum :
hát az msdn szerint ha a tartományon kivülre hivatkozik akkor lehet belöle baj

szerk.: de amugy tényleg nincs (erre a konkrét meshre) baj vele



Ja hát akkor persze

Én úgy értettem hogy nem nézhet ki szarul a mesh vagy valami ilyesmi. Egyetlen apinak sem tesz jót hogy ha a határokon kívülre hivatkozik valaki .

Amúgy dx10+-nál ilyenkor nem rinyál csak nem rajzol semmit sem.
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104214   2009.02.08 12:41 GMT+1 óra  
hát az msdn szerint ha a tartományon kivülre hivatkozik akkor lehet belöle baj

szerk.: de amugy tényleg nincs (erre a konkrét meshre) baj vele
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104213   2009.02.08 12:35 GMT+1 óra  
Elvileg nem lehet belőle baj.
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104212   2009.02.08 12:01 GMT+1 óra  
kicsit más téma (majdnem).

van a vertex buffer és az index buffer, vannak nekem subsetjeim ugyebár.
mindegyik subsethez tartozik egy tartomány az index bufferben, amik hivatkoznak vertexekre.
van a DrawIndexedPrimitive() hívás aminek viszont egy vertex tartományt is meg kell adni.

és itt a baj: mi van ha a hivatkozott vertexek nem egy összefüggö tartományban vannak?
esetleg egy vertexeket több subset is használ.

nyilván erre való az id3dxmesh::optimize() pontosan ez mit is csinál? vagy van valami más módszer erre?

azon kivül hogy nem szüröm ki a duplikált vertexeket.

Ezt a hozzászólást Asylum módosította (2009.02.08 12:09 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104177   2009.02.08 00:43 GMT+1 óra  
Ehhez nem vertex deklaráció kell hanem stream output deklaráció. Az azt tudja hogy a geometry shader képes visszaírni egy megfelelő flagekkel létrehozott vertex bufferba.

A vertex deklaráció csak az input assemblernek mondja meg, hogy kell a vertex shadernek odaadnia az adatokat.

DX10-ben ez úgy volt hogy vagy egy teljes értékű vertex buffert tudtál kiküldeni, vagy 4 darab 1 eleműt.

DX11-ben már 4 teljes értékű vertex buffert ki lehet küldeni, és emiatt megváltozott az egész szintaxisa, és várhatóan még nincs hozzá elég dokumentáció.

De amúgy péntek este sejtettem mi volt a bug, csak kb most kerültem olyan gép elé amin tudom tesztelni.

Szerk : Nem az volt a bug.

Ezt a hozzászólást sirpalee módosította (2009.02.08 00:49 GMT+1 óra, ---)
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #104174   2009.02.07 16:04 GMT+1 óra  
köszi közbe énis rájöttem
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1295 hsz       Online status #104173   2009.02.07 15:56 GMT+1 óra  
Vertex deklaráció nem kéne? - abban lehet szabályozni az egyes streamekben milyen elemek és hol vannak, ha jól emlékszem.

vmi ilyesmi..(példa csak 2 streamre, de majdnem ugyanaz, itt is a mátrix benn van 4 tex4-ben)
Kód:
D3DVERTEXELEMENT9 spotlight[] =
{
{ 0, 0,     D3DDECLTYPE_FLOAT3,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_POSITION,  0 },
{ 0, 12, D3DDECLTYPE_FLOAT3,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_NORMAL,    0 },

// (stream 1 - see first column)
// TRF matrix
{ 1, 0, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  0 },
{ 1, 16, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  1 },
{ 1, 32, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  2 },
{ 1, 48, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  3 },
// pos + radius
{ 1, 64, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  4 },
// direction + anglecosine
{ 1, 80, D3DDECLTYPE_FLOAT4,     D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD,  5 },

// color
{ 1, 96,    D3DDECLTYPE_D3DCOLOR,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_COLOR,     0 },
D3DDECL_END()
};


Amúgy de utálom ezt a szintaxist, de mééér si..

Ezt a hozzászólást fpeti módosította (2009.02.07 16:02 GMT+1 óra, ---)
   
Asylum - Törzstag | 5512 hsz       Online status #104172   2009.02.07 15:41 GMT+1 óra  
storno hülye vok

Ezt a hozzászólást Asylum módosította (2009.02.07 16:03 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104120   2009.02.06 07:31 GMT+1 óra  
Nah lenne egy apró problémám, d3d10 alatt működött tökéletesen, de itt elírok valami apróságot, és nem megy az egész cucc.

UINT strides[1] = {b_desc->getByteSize(),};

this->pd3dDevice->CreateGeometryShaderWithStreamOutput(pByteCode->GetBufferPointer(), pByteCode->GetBufferSize(), psodec, num_elements, strides, 1, 0, 0, &pGeometryShader);

Próbálok egy SO képes GS-t létrehozni, rendesen beállítom a D3D11_SO_DECLARATION_ENTRY-t, persze egyelőre egyetlen kimenő streamet (többet egyelőre felesges, úgyse viszi hardveresen a kártya) és egyiket sem adom tovább a raster egységnek. De folyamatosan invalid argument-et kapok.

Elvileg ez a függvény hívásmódja :
HRESULT CreateGeometryShaderWithStreamOutput(
const void *pShaderBytecode,
SIZE_T BytecodeLength,
const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
UINT NumEntries,
const UINT *pBufferStrides,
UINT NumStrides,
UINT RasterizedStream,
ID3D11ClassLinkage *pClassLinkage,
ID3D11GeometryShader **ppGeometryShader
);

A stride elvileg az egyes SO kimenő adatok byte szélessége, vagy én értelmezem félre az egészet? (akárcsak a vertex bufferek stride méretei ugye)

Ha valaki már küzdött hasonlóval, várom az ötleteket
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #103933   2009.02.03 14:06 GMT+1 óra  
kipróbáltam de ezek se egészen azt csinálják mint kéne. Hagyjuk sztem a depth-et. Inkább valami élsimitás kellene a detektált élekre (a blur nemsegit minnyá mutitok képet).

1024x768 ban:


1280x1024-ben:


nemtom mennyire látszik...kb. 9 szeres blur az ami rendesen elsimitaná de az már nem él hanem maszat...de már 3 szoros is maszat.

nyilván a neten fellelhetö példákban nincs ilyen probléma mert azok kétszer küldenek le minden geometriát a mrt helyett és ezzel meg is ölik a posptprocess elönyét (ezek az xna fejlesztök télleg ien hülyék?)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #103930   2009.02.03 12:53 GMT+1 óra  
Asylum ezt találtam neked, nemtom azóta van-e rá megoldás, illetve itt van egy gamedev-es topic:

http://www.gamedev.net/community/forums/topic.asp?topic_id=523313

http://www.mvps.org/directx/articles/linear_z/linearz.htm
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #103881   2009.02.03 02:52 GMT+1 óra  
a8r8g8b8 de mégis akármit adok át neki alfa csatronán az 1 lesz. specular meg nincs ugyh nem kell több. Kiprobáltam külön rendertargettel, igy megy ugyan de nem dobtam hátast az eredménytöl...a z / w féle valami hihetelen dolgokat produkál, a vágósíkos módszer valamivel stabilabb de egyik se igazán detektál éleket (vagy legalábbis csak nagyon keveset).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #103866   2009.02.03 00:02 GMT+1 óra  
Jah valami akkor el lett állítva, vagy rosszul lett létrehozva abban a rendertargetben. De mélységnél illik minimum 16 bitben gondolkozni, szóval azt érdemesebb lenne a screen space normal, specular intensity mellé berakni és akkor pont kijönne egy R16B16G16A16-os rendertarget.
raytraceisten és übermedic
   
fpeti - Törzstag | 1295 hsz       Online status #103862   2009.02.02 18:21 GMT+1 óra  
Kéne, hogy legyen, ha megadtad neki. Milyen típusú? (pl A8R8G8B.
   
Asylum - Törzstag | 5512 hsz       Online status #103861   2009.02.02 17:44 GMT+1 óra  
na oké szóval MRT-nél nem rakhatom az alpha csatornára a depthet me nincs (mé nincs?).
A z bufferböl kiolvasni meg körülményes. Szóval akkor mivvannn...kirajzoljam egy külön rendertargetbe? az lesz...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
misi - Törzstag | 971 hsz       Online status #103841   2009.02.02 09:13 GMT+1 óra  
Nem tudom de így próbáltad?
OUT.normd.a = OUT.pos.z / ( 1 - OUT.pos.w);
   
sirpalee - Tag | 1282 hsz       Online status #103837   2009.02.02 08:15 GMT+1 óra  
Hát jó kérdés, nemtom megnézni, mert nálam annyi, hogy közvetlenül kiolvasom a depth bufferből .
raytraceisten és übermedic
   
Matzi - Szerkesztő | 2529 hsz       Online status #103836   2009.02.02 07:37 GMT+1 óra  
Anno amikor próbáltam a W-vel való osztással nekem sem volt jó, hanem valamit trükközni kellett. Eleve át kellett adni a távoli vágólap távolságát, és akkor asszem ment, vagy ilyesmi.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5512 hsz       Online status #103835   2009.02.02 07:24 GMT+1 óra  
persze
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #103834   2009.02.02 07:08 GMT+1 óra  
A projekciós mátrixoddal minden rendben?
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #103832   2009.02.02 06:50 GMT+1 óra  
igen épp ezért nem értem hogy pl. ebben az xnas példában hogy a tökömbe müködik
meg máshol is.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #103817   2009.02.01 23:27 GMT+1 óra  
Talán mert több lesz mint egy?
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #103815   2009.02.01 16:42 GMT+1 óra  
ezzel a depth-el csak az a baj, hogy amikor kirajzolom texturába gyönyörüen fehér lesz mindenhol

Kód:
OUT.normd.a = OUT.pos.z / OUT.pos.w;
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5512 hsz       Online status #103784   2009.02.01 07:21 GMT+1 óra  
a példát megtaláltam de kódot nem
Illetve egy 1 oldalas leirást találtam még amivel szintén nem sokat érek
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dothumour - Tag | 75 hsz       Online status #103768   2009.02.01 00:27 GMT+1 óra  
Idézet
dvorgaz :
Cel-shading-szerű körvonalat akartam vele csinálni, de ezek szerint nem lehet.


Nem te vagy az első, aki ezzel próbálkozott.
٩(͡๏̯͡๏)۶

   
sirpalee - Tag | 1282 hsz       Online status #103766   2009.01.31 23:03 GMT+1 óra  
A legcélszerűbb geoshaderrel . Úgy rendkívül egyszerű.

Multiple rendertargetet is lehet antialiasolni még dx9 alatt is, csak iszonyúan erőforrásigényes dolog. A dx9-es cell shading körvonal detektáláshoz, ne csak a normalt hanem a depth-et is figyeld, úgy sokkal szebb eredményt kapsz, ha ati oldalán kutakodsz van róla egy rad 9xxx-ekre megírt példa ami nagyon szép eredményt ad.
raytraceisten és übermedic
   
Asylum - Törzstag | 5512 hsz       Online status #103765   2009.01.31 17:11 GMT+1 óra  
postprocessel célszerübb...pl. azért mert nem függ a geometria mennyiségétöl és összetettségétöl. A problémát a multiple rendertarget jelenti, pontosabban az, hogy nincs hozzá anti alias. Én ezt ugy oldottam meg, hogy a normált rajzolom a 0. rendertargetbe, mert ott van élsimitás, a rendes képet pedig az 1 esbe mivel az éleket ott ugyis el fogják takarni a detektált élek.
Többféle algoritmust is kiprobáltam, de többnyire ugyanazokat találták vagy nem találták meg, ugyh maradt a roberts cross filter (xna honlapján van példa...mondjuk nem tökéletes...)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dvorgaz - Törzstag | 576 hsz       Online status #103764   2009.01.31 16:56 GMT+1 óra  
Cel-shading-szerű körvonalat akartam vele csinálni, de ezek szerint nem lehet.
   
fpeti - Törzstag | 1295 hsz       Online status #103762   2009.01.31 16:35 GMT+1 óra  
Ha a z-bufferbe nem kell illeszkednie, akkor azt is lehetne, hogy egy kisebb rendertarget-re rajzolod, majd ráblendeled a screenre (esetleg egy blur is mehetne rá előtte)
   
Asylum - Törzstag | 5512 hsz       Online status #103759   2009.01.31 15:47 GMT+1 óra  
hát ha azt id3dxline-al csinálja azmeg olyan cafat lassú lesz mint állat
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dothumour - Tag | 75 hsz       Online status #103757   2009.01.31 15:30 GMT+1 óra  
Idézet
Asylum :
De ö nem ezt kérdezte, hanem hogy a wireframe mód vonalvastagságát hogyan lehet változtatni.


De máshogy meg nem igen lehet. Ha nagyon kell a vastagabb vonal, sajnos saját "wireframe módot" kell írni.
٩(͡๏̯͡๏)۶

   
Asylum - Törzstag | 5512 hsz       Online status #103756   2009.01.31 15:11 GMT+1 óra  
De ö nem ezt kérdezte, hanem hogy a wireframe mód vonalvastagságát hogyan lehet változtatni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
dothumour - Tag | 75 hsz       Online status #103754   2009.01.31 14:58 GMT+1 óra  
D3DX-szel vonalrajzolás - ID3DXLine. Ami neked kell az az ID3DXLine:etWidth.
Ha pedig nem akarsz D3DX-t használni, akkor rajzolj quadokat vonal helyett - ez is azt csinálja egyébként.
٩(͡๏̯͡๏)۶

   
Asylum - Törzstag | 5512 hsz       Online status #103753   2009.01.31 14:52 GMT+1 óra  
én ugy tudom, hogy nem lehet változtatni.
Mihez kell?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1295 hsz       Online status #103751   2009.01.31 14:15 GMT+1 óra  
Antialised lines? (D3DRS_ANTIALIASEDLINEENABLE)
   
sirpalee - Tag | 1282 hsz       Online status #103750   2009.01.31 14:05 GMT+1 óra  
Csak azért kérdeztem, hátha tudok segíteni, de a 9 nem az én területem.
raytraceisten és übermedic
   
dvorgaz - Törzstag | 576 hsz       Online status #103748   2009.01.31 13:46 GMT+1 óra  
DirectX9. Vagy ez nem az a topic?
   
Korábbi postok
> 1 < [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [31]