मेरे पास निम्न शीर्षलेख decliction है:
struct MESHVERTInstanced {float x, y, z ; // स्थिति नाव एनएक्स, एनए, एनजे; // सामान्य फ्लोट टीयू, टीवी; // टेक्सकोर्ड फ्लोट आईडीएक्स; // शीर्ष के सूचकांक! फ्लोट टेंक्स, टानी, तनज; // स्पर्शरेखा कॉन्स्ट स्थिर D3DVERTEXELEMENT9 Decl [6]; स्थिर IDirect3DVertexDeclaration9 * meshvertinstdecl; };
और मैं इस तरह के रूप में यह घोषणा करते हैं:
स्थिरांक D3DVERTEXELEMENT9 MESHVERTInstanced :: डीईसीएल [] = {{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 } {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0}, {0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0}, {0, 32, D3DDECLTYPE_FLOAT1, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1}, {0, 36, D3DDECLTYPE_FLOAT3 , डी 3 डीडीईसीएलएमईटीओडीओडीएएफएलटीटी, डी 3 डीडीईसीसीयूआरटीएनजीएनटीटीटी, 0}, डी 3 डीडीईसीएलएडीएसएलएडी ()};
मैं आगे क्या करने की कोशिश कर रहा हूं एक नया ID3DXMesh की नई शीर्षलेख घोषणा के साथ प्रतिलिपि बनाएँ:
मॉडल-> क्लोन मेष (मॉडल- & Gt; GetOptions (), MESHVERTInstanced :: Decl, gd3dDevice, और pTempMesh);
जब मैं pTempMesh की FVF आकार प्राप्त करने की कोशिश (D3DXGetFVFVertexSize (pTempMesh-> GetFVF ())) मैं 0 'मिल हालांकि आकार 48 होना चाहिए।
पूरी बात करता है, तो मैं पिछले घोषणा, '{0, 36, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT, 0},' उस में और CloneMesh समारोह एक असफल वापस नहीं करता है की जरूरत नहीं है ठीक है। मैं भी इस तरह के D3DDECLUSAGE_TEXCOORD के रूप में विभिन्न घोषणाओं का उपयोग कर की कोशिश की है और यह ठीक काम किया है, 48. के आकार लौटने वहाँ D3DDECLUSAGE_TANGENT के बारे में कुछ विशिष्ट मैं नहीं जानता है?
मैं के रूप में एक पूरा नुकसान में हूँ यह क्यों काम नहीं कर रहा है ...
टीबीएच एएस डेडएमजी बताते हैं कि शीर्षलेख डीआईडी एफवीएफ नहीं है संगत। यदि आप शीर्ष बफर के आकार को प्राप्त करने का एक और तरीका है, तो आप पूछें। आप स्पष्ट रूप से पता है कि कितने कोने बफर में रहे हैं और आप, जाहिर है, जानते हैं कि कैसे बड़े शिखर संरचना है (48 बाइट्स) आप अपने शिखर घोषणा में इस तरह के रूप में यह परिभाषा के रूप में।
स्थिरांक D3DVERTEXELEMENT9 MESHVERTInstanced :: डीईसीएल [] = {{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0}, // शुरू होता है पर 0 ऑफसेट और 3 तैरता है, या आकार में 12 बाइट है। कुल = 12 बाइट्स {0, 12, डी 3 डीडीसीएलटीईपी_एफएलएटी 3, डी 3 डीडीईएलएमएथोड_डेफ्लाल्ट, डी 3 डीडीईसीसीयूआरओएलएएमएल, 0}, ऑफसेट 12 पर शुरू होता है और 3 फ्लोट्स या आकार में 12 बाइट्स हैं। कुल = 24 बाइट्स {0, 24, डी 3 डीडीसीएलटीएपी_एफएलएटी 2, डी 3 डीडीईएलएमटीएडीओडीएडीडी, डी 3 डीडीसीयूएलयूटीओडीओडीओडीओडी, 0}, ऑफसेट 24 पर शुरू होता है और 2 फ्लोट्स या आकार में 8 बाइट्स हैं। कुल = 32 बाइट्स {0, 32, डी 3 डीडीसीएलटीईपी_एफएलएटी 1, डी 3 डीडीसीएलएमएथोड_डेफाल्ट, डी 3 डीडीसीयूएलयूटीएक्सओडीओडीओडी, 1}, ऑफसेट 32 पर शुरू होता है और 1 फ्लोट या आकार में 4 बाइट्स है। कुल = 36 बाइट्स {0, 36, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT, 0}, ऑफसेट 36 पर शुरू होता है और 3 फ़्लोट्स, या आकार में 12 बाइट्स हैं। कुल = 48 बाइट्स D3DDECL_END ()};
न केवल इसका इस्तेमाल करने वाले।
Comments
Post a Comment