По поводу рисования в текстуру маски - в комплекте к dx_vb есть несколько примеров, в том числе "test", там загружается текстура, копируются данные в массив с помощью GetData и выводятся на форму с помощью PSet.
к сожалению у меня нет этого примера, можеш скинуть
вот код, я так и сделал как ты писал
- Код: Выделить всё
MatrixTranslation Mt1, mXx, mYy, mZz
MatrixRotationYawPitchRoll Mt2, Ay, Ax, aZ
MatrixMultiply Mt1, Mt2, Mt1
MatrixScaling Mt2, ScalX, ScalY, ScalZ
MatrixMultiply Mtrx, Mt2, Mt1
MatrixMultiply Mtrx, Mtrx, mView
MatrixMultiply Mtrx, Mtrx, mProj
Vec4Transform vSpr, Vec4(0, 0, 0, 1), Mtrx
MatrixTranspose Mtrx, Mtrx
Dev.SetVertexShaderConstantF 0, VarPtr(Mtrx), 4
MatrixInverse Mtrx, 0, Mtrx
Vec3TransformNormal v3, DirToLight, Mtrx
v4 = Vec4(v3.x, v3.y, v3.z, 0)
Dev.SetVertexShaderConstantF 4, VarPtr(v4), 1
Dev.SetVertexShaderConstantF 5, VarPtr(Diffuse), 1
Dev.SetVertexShaderConstantF 6, VarPtr(Ambient), 1
Dev.SetVertexShaderConstantF 7, VarPtr(Specular), 1
Vec3TransformCoord v3, CamPos, Mtrx
Dev.SetVertexShaderConstantF 8, VarPtr(v3), 1
Dev.SetVertexDeclaration vDecl
Dev.SetVertexShader Shader(VS).VS
Dev.SetPixelShader Shader(PS).PS
Dev.SetStreamSource 0, vBuf, 0, vSize
Dev.SetIndices iBuf
For i = 0 To SSCnt - 1
Dev.SetTexture 0, Tekstura(Tex(i, 0)).Textures
Dev.SetTexture 1, Tekstura(Tex(i, 1)).Textures
Dev.SetTexture 2, Tekstura(Tex(i, 2)).Textures
Dev.SetTexture 3, Tekstura(Tex(i, 3)).Textures
Dev.DrawIndexedPrimitive D3DPT_TRIANGLELIST, 0, 0, AT(i).FaceStart * 3, 0, AT(i).FaceCount
Next i
If vSpr.w > 0 Then
Sprites.SpriteDraw Mouse.ic_instr(Mouse.Instrument, 0), (ScrCenterX * (1 + vSpr.x / vSpr.w)), (ScrCenterY * (1 - vSpr.y / vSpr.w)), 30, 30
End If
все работает четко2014-10-03 11-04-51 Рабочий стол.png
но спрайт под обьектом, это видно на скрине, по этому и отнимал 210 что бы приподнять спрайт над обьектом
2014-10-03 11-14-08 Рабочий стол.png
я имел в виду если
(ScrCenterX * (1 + vSpr.x / vSpr.w)) - 15, (ScrCenterY * (1 - vSpr.y / vSpr.w)) - 210-15 это половина спрайта,
-210 это поднять над мешом
2014-10-03 11-16-41.png
и если отодвинуть меш то сьежает, спрайт, сама функция получения координат, работает четко, я о том как сделать чтобы спрайт можно было выводить над обьектом, мое предположение, это нужно делать до получения координат. где то здесь
- Код: Выделить всё
Vec4Transform vSpr, Vec4(0, 0, 0, 1), Mtrx
У вас нет доступа для просмотра вложений в этом сообщении.