سؤال

وماذا يمكن وقف 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" الذي يعني انك توريد "تحويل وليت" القمم في المخزن المؤقت قمة الرأس، وبالتالي فإن الجهاز لن تطبيق مصفوفة التحويل لهذه القمم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top