إضافة تأثيرات ثلاثية الأبعاد إلى كائن ثنائي الأبعاد - DirectX

StackOverflow https://stackoverflow.com/questions/3448309

  •  27-09-2019
  •  | 
  •  

سؤال

كتبت برنامجًا بسيطًا لتحميل ملف شبكة DirectX .x. يتم عرض صورتي المحملة مثل هذا .

لكن الشخص الذي يظهره meshviewer هو مثل هذا .

ما الذي يجب عمله للحصول على نظرة ثلاثية الأبعاد؟ أي مكالمة في مكتبة DirectX يجب أن أجريها؟

هل كانت مفيدة؟

المحلول

هل تقوم بتحميل نفس الملف في المشاهد كما في تطبيقك الخاص؟ لأن الأمر يبدو في الواقع أنك ليس لديك أي قواعد في الشبكة. إذا كنت تستخدم نفس الملف مثل المشاهد ، فيجب أن يكون في ملف الشبكة.

بخلاف ذلك ، فإن إضاءةك مشرقة بشكل لا يصدق (جميع القيم عند 1.0) ، أود أن أضع القيم المنتشرة على 0.0 وأحاول ضبط المحيط على 0.5 باللون الأحمر. ثم على الأقل يمكنك معرفة ما إذا كان نورك يعمل.

نصائح أخرى

يبدو أنك لم تضع أي ضوء.

يجب عليك تحميل المواد المحددة في الشبكة ، وتعيين ضوء واحد على الأقل.

بمجرد تعيين ضوء ، يبدو رمز العرض باستخدام خط الأنابيب الثابتة في DirectX 9 مثل هذا:

// NumMaterials and ShipMaterialshave already been loaded with the call to D3DXLoadMeshFromX
D3DXMATERIAL* ShipMats = (D3DXMATERIAL*) ShipMaterials->GetBufferPointer();
device->SetTexture(0, NULL); // assume a mesh with no texture
for (DWORD i = 0; i < NumMaterials; ++i) 
{
    device->SetMaterial(&ShipMats[i].MatD3D);
    this->pShipMesh->DrawSubset(i);
}

إذا كنت لا تزال لا ترى أي شيء ، فقم بتعيين مادة قمت بتعريفها بنفسك.

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