hm, wieso gehst du bei den Vertex 2 und 3 um 0.1 in - x-Richtung, auf deiner Zeichnung wäre es ja 0.2f! Ansonsten würde alles stimmen!
...
Edit: Du musst doch D3DPT_TRIANGLELIST verwenden?
cya,
Stefan
0.1f weil ich eben 10 frames hab ( die 5 waren nur fürs beispiel ).
würde ich trianglelist verwenden, bräuchte ich entweder 6 vertices oder einen indexbuffer. mit tristrip kann ich mit 4 vertices in einem einzigen DrawPrimitive call ein quad zeichnen ohne indexbuffer...
also so:
|
Quellcode
|
1
|
pdev->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
|
angenommen mein sprite vertex hat 32 bytes
also entweder * 6 gibt 192 bytes für ein quad.
oder * 4 + 4 * 2 ( 4 indices a 16 bit ) für den indexbuffer gibt 136 bytes für ein quad
oder mit als tristrip nur * 4 gibt 128 bytes für ein quad.
ist ein wenig speicherschonender
zum rendern verwend ich folgende shader:
VertexShader:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
vs_1_1
dcl_position v0
dcl_normal v1
dcl_texcoord v2
m4x4 oPos, v0, c0
mov oT0, v2
|
VertexDeclaration:
|
Quellcode
|
1
2
3
4
5
|
D3DVERTEXELEMENT9 decl[] = {
{ 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
{ 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 },
{ 0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
D3DDECL_END() };
|
PixelShader:
|
Quellcode
|
1
2
3
4
5
|
ps_1_1
tex t0
mov r0, t0
|
ganz einfache shader also.
im prinzip will ich bei meinem normalmapping sample die lichquellen durch ein paar schöne sprites anstatt der farbigen kugeln sichtbar machen...
leider erschließt sich mir immer noch nicht was ich falsch mach ???