غير قادر على استخدام SetTransform في D3D9
سؤال
وماذا يمكن وقف IDirect3DDevice9 :: SetTransform من العمل؟ لقد ألقيت نظرة على الكثير من الدروس لاستخدام المصفوفات التحول في Direct3D9، بما في ذلك <وأ href = "http://www.riemers.net/eng/Tutorials/DirectX/C++/Series1/tut8.php" يختلط = "noreferrer نوفولو "> هذا واحد هنا . وبقدر ما أستطيع أن أقول، وأنهم جميعا تفعل ذلك بنفس الطريقة.
وأنا أحاول أن أكتب بعض التعليمات البرمجية فقط لترجمة مضلع texured. أدعو SetTransform مع مصفوفة تهيئة مع D3DXMatrixTranslation، وتقوم بإرجاع S_OK. ومع ذلك المضلعات الفعلية الانتباه إلى الشاشة لا تحصل على تحويلها.
D3DXMATRIX m_Translation;
D3DXMatrixTranslation(&m_Translation,100,100,0);
d3dDevice->SetTransform(D3DTS_WORLD, &m_Translation);
d3dDevice->SetFVF(D3DFVF_TLVERTEX);
d3dDevice->SetStreamSource(0, vertexBuffer, 0, sizeof(TLVERTEX));
HRESULT hr = d3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 2);
المحلول
ويمكنك تعيين "D3DFVF_TLVERTEX" الذي يعني انك توريد "تحويل وليت" القمم في المخزن المؤقت قمة الرأس، وبالتالي فإن الجهاز لن تطبيق مصفوفة التحويل لهذه القمم.
لا تنتمي إلى StackOverflow