[ eva01 @ 21.03.2005. 23:05 ] @
Kreirao sam vertex buffer za sledeci tip verteksa:

Code:

struct xyzuv1uv2s
{
    D3DVECTOR    tacka;        // vektor
    float        u1, v1;        // tekstura1
    float        u2, v2;        // tekstura2
};

#define vertex_xyzuv1uv2    (D3DFVF_XYZ|D3DFVF_TEX1|D3DFVF_TEX2)


Dakle xyzuv1uv2s mi je struktura koju koristim za ucitavanje verteksa a verteks_xyzuv1uv2 je opis vereteksa koji prosledjujem d3d-u prilikom kreiranja vertex buffer-a.

Osim toga prosledjujem i velicinu verteksa i to kao sizeof(xyzuv1uv2s). E sada kada god upotrebim ovaj verteks bafer za rendering necega na ekran d3d mi izbaci sledece upozorenje (debug information):

Direct3D9: (WARN) :Stream 0 stride and vertex size, computed from the current vertex declaration or FVF, are different, which might not work with pre-DX8 drivers

Ispada da mi velicina ocekivana za vertex_xyzuv1uv2 i sizeof(xyzuv1uv2s) nisu iste. Jel moze neko da mi objasni u cemu je ovde problem ? Aplikacija inace radi sasvim regularno.

Jos jedno pitanje: dali je za optimizaciju verteksa na npr. 32 bajta potrebno samo da mu povecavam velicinu a da pri tome ne menjam fvf opis ? Na osnovu gornjeg upozorenja ispada da je to ok. za d3d8 i d3d9.
[ bkaradzic @ 21.03.2005. 23:17 ] @
Mislim da je D3DFVF_TEXCOORDSIZEn problem u pitanju. Probaj ovo:

Code:
#define vertex_xyzuv1uv2 (D3DFVF_XYZ|D3DFVF_TEX1|D3DFVF_TEX2|D3DFVF_TEXCOORDSIZE2(0)|D3DFVF_TEXCOORDSIZE2(1))


ObjaĊĦenjenje:

http://msdn.microsoft.com/libr...acros/d3dfvf_texcoordsizen.asp

Branimir
[ eva01 @ 21.03.2005. 23:42 ] @
Ovo nije nista promenilo. Inace za format verteksa xyz + normala + txt sve radi ok. Tj. radi i ovako ok. samo imam ovaj warning
[ bkaradzic @ 22.03.2005. 00:10 ] @
Probaj ovo:
Code:
#define vertex_xyzuv1uv2 (D3DFVF_XYZ|D3DFVF_TEX2|D3DFVF_TEXCOORDSIZE2(0)|D3DFVF_TEXCOORDSIZE2(1))

[ eva01 @ 22.03.2005. 00:22 ] @
Hvala, proradilo je. Trebao sam pazljivije procitati dokumentaciju.
[ tosa @ 22.03.2005. 10:20 ] @
Mislim da bi i ovo bilo dovoljno

#define vertex_xyzuv1uv2 (D3DFVF_XYZ|D3DFVF_TEX2)

Flag-ovi D3DFVF_TEX2 i D3DFVF_TEX1 su mutually exclusive a dimenzija 2
za UV je default.