Bonjour, j'essaye en vain d'avoir les coordonnées de texture de mon modèle projeter par la caméra, j'envoi donc la matrice monde*vue*projection à mon shader et procède comme suit:
Donc sans parler du 0.5 à ajouter à u et v, je me retrouve avec la texture qui se répète un grand nombre de fois qui n'a pas l'air de dépendre de la distance avec la caméra, comme si la matrice de vue était bien utilisé mais pas celle de projection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 float2 uv=mul(float4(data.position,1),matwvp); result.color=tex2D(diffuseMap, uv.xy);
Pourtant si je fait l'équivalent dans le programme:
Là ça marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CUSTOMVERTEX* pVertices; Sol->m_pSysMemMesh->LockVertexBuffer( 0L, (LPVOID*)&pVertices ); const int VertexCount= Sol->m_pSysMemMesh->GetNumVertices(); D3DXMATRIX matwvp = matworld*matView*matProj; D3DXVECTOR3 V; for( int i=0; i<VertexCount; i++ ) { D3DXVec3TransformCoord(&V,&pVertices[i].position,&matwvp); pVertices[i].u=V.x+0.5f; pVertices[i].v=V.y+0.5f; } Sol->m_pSysMemMesh->UnlockVertexBuffer();
Quel est le soucis ? Est-ce qu'il ne faut pas employer "mul" ?
Merci
Partager