2015-10-15 8 views
8

तोड़ता है मैं एक चमकीले जाल को निर्यात करने की कोशिश कर रहा हूं। कुछ पुनर्विक्रयों के लिए यदि मैं एक जाल में एक त्वचा क्लस्टर जोड़ता हूं तो FbxSDK सेगमेंट के किनारों पर मानक को तोड़ देता है। एक त्वचा के बिना सब कुछ ठीक दिखता है।FbxSDK मानक

उदाहरण: enter image description here

कोड:

FbxLayerElementNormal *layerElementNormal = FbxLayerElementNormal::Create(mesh, ""); 
layerElementNormal->SetMappingMode(FbxLayerElement::eByControlPoint); 
layerElementNormal->SetReferenceMode(FbxLayerElement::eDirect); 

for (int vertIndex = 0; vertIndex < vertexCount; ++vertIndex) 
{ 
    PackedNormal normal = vertices[vertIndex].normal; 
    double x,y,z; 
    x = (((normal.data)  & 0xFF)/127.5f - 1.0f); 
    y = ((((normal.data) >> 8) & 0xFF)/127.5f - 1.0f); 
    z = ((((normal.data) >> 16) & 0xFF)/127.5f - 1.0f); 
    layerElementNormal->GetDirectArray().Add(FbxVector4(x,-y,z)); 
} 

layer->SetNormals(layerElementNormal); 

मैं अलग मानचित्रण mods (। जैसे eByPolygonVertex) और संदर्भ mods, लेकिन अभी तक कोई मदद नहीं tryied। ऐसा लगता है कि जाल में त्वचा क्लस्टर होने पर मानकों को पूरी तरह नजरअंदाज कर दिया जाता है। मैंने उपरोक्त कोड पर टिप्पणी की और स्किन किए गए मॉडल को बाईं छवि पर एक जैसा दिखता था।

मैंने निर्यात किए गए मॉडल की समीक्षा के लिए विभिन्न 3 डी सॉफ़्टवेयर (माया 2015, माया 2013 और 3 डीएस मैक्स 2013) का भी प्रयास किया लेकिन उनमें से सभी मुझे एक ही परिणाम देते हैं।

पीएस यह समस्या किसी भी चमड़े के जाल को प्रभावित करती है।

संपादित लगता है इस समस्या को FBX पाइप लाइन में एक बग है: Autodesk Forum। समस्या को बाईपास करने के लिए मुझे "गुणों को स्थानांतरित करने" की आवश्यकता है। क्या कोई इसके लिए सहायता कर सकता है?

+2

तस्वीर पर चीज वास्तव में मुझे क्या लगता है, या मुझे एक संकोच की यात्रा करने की आवश्यकता है? – SergeyA

+0

यह वही है जो आपको लगता है! – VenoMKO

+0

यह अच्छा है। क्षमा करें, वास्तविक प्रश्न के साथ मदद नहीं कर सकते हैं, यद्यपि। – SergeyA

उत्तर

0

स्किनिंग एक ऐसी प्रक्रिया है जिसके लिए चार घटक की आवश्यकता होती है: x, y, z और weight। मानक के लिए, चौथा घटक (वजन) शून्य पर सेट किया जाना चाहिए। क्या आपने अपने कोड में FbxVector4 (x, -y, z, 0) आज़माया था?
w = ((((सामान्य.data) >> 24) & 0xFF)/127.5f - 1.0f) को भी आजमाएं;
और उसके बाद FbxVector4 (x, -y, z, w) का उपयोग करना;

+0

मैं क्या कहना चाहता हूं: आप सामान्य.data के पहले 8 बिट्स को छोड़ रहे हैं जिसमें उपयोगी डब्ल्यू जानकारी हो सकती है। –

+0

आपके उत्तर के लिए धन्यवाद। अंतिम बाइट अप्रयुक्त है और 0xFF स्टोर करता है। मैंने चौथे घटक के रूप में 1.0 एफ, 0.0 एफ और -1.0 एफ पास करने की कोशिश की लेकिन कुछ भी नहीं बदला। – VenoMKO

संबंधित मुद्दे