मैं अपने गेम इंजन के Directx11 इंस्टेंस को लागू करने पर काम कर रहा हूं और मैं 3D गेम प्रोग्रामिंग में नौसिखिया हूं।
मैं DirectX11 ग्राफिक्स पाइपलाइन और शेडर्स के बारे में कुछ जानता हूं और वर्टेक्स बफर, इनपुट लेआउट इत्यादि क्या हैं।
एपीआई में से किसी एक को देखते समय कोड कुछ ऐसा होता है:
glBindVertexArray(current_vao);
glBindBuffer(GL_ARRAY_BUFFER, current_vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vector3) * Vertices.size(), &Vertices.front(), GL_DYNAMIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), reinterpret_cast<void*>(0));
glDisableVertexAttribArray(1);
glDisableVertexAttribArray(2);
glDisableVertexAttribArray(3);
glDisableVertexAttribArray(4);
glDisableVertexAttribArray(5);
glDisableVertexAttribArray(6);
glBindBuffer(GL_ARRAY_BUFFER, 0);
यह VAO
और VBO
DirectX11
के बराबर क्या है? यह कोड वास्तव में क्या कर रहा है?
1 उत्तर
एक "वीबीओ" सिर्फ एक शीर्ष बफर है, जो डायरेक्टएक्स 11 में एक ID3D11Buffer
है जिसमें D3D11_BIND_VERTEX_BUFFER
का बाइंड फ्लैग होता है जिसमें वर्टेक्स डेटा होता है।
ओपनजीएल "वर्टेक्स एट्रीब्यूट एरे" के बराबर कोई प्रत्यक्ष नहीं है। DirectX 11 में, आप समान राज्य सेटिंग्स (a.k.a material विशेषता) के प्रत्येक समूह के लिए बस एक अलग Draw
सबमिट करते हैं।
यदि आप DirectX 11 के लिए पूर्ण रूप से नए हैं, तो आप [DirectX टूल किट ट्यूटोरियलके माध्यम से काम करने पर विचार कर सकते हैं।.
संबंधित सवाल
नए सवाल
directx
डायरेक्टएक्स Microsoft प्लेटफॉर्म पर मल्टीमीडिया, विशेष रूप से 3 डी ग्राफिक्स और गेम प्रोग्रामिंग और वीडियो से संबंधित कार्यों को संभालने के लिए एपीआई का एक संग्रह है।