2016-02-09 4 views
12

मैं त्रुटियों के हजारों मिल (गूगल क्रोम) है:तीन js आयातित OBJ मॉडल [.CommandBufferContext] चेतावनी RENDER: प्रस्तुत गिनती या primcount 0

[.CommandBufferContext]RENDER WARNING: Render count or primcount is 0. 
निर्यात

OBJ और MTL फ़ाइलों Bledner से, OBJMTLLoader.js का उपयोग कर R73 पर जाने के बाद लोडर के रूप में।

कोई अनुभव?

+0

मैं एक जाल ब्लेंडर से निर्यात से यह त्रुटि हुई। मैंने दो चीजें जो मदद की थीं: 1. अपनी ऑब्जेक्ट का चयन करें, संपादन मोड में जाएं, सभी चेहरों का चयन करने के लिए 'ए' दबाएं, फिर 'w' दबाएं और मेनू से ** ** डबल्स निकालें ** चुनें। यह डुप्लिकेट शिखर हटा देगा। 2. अपनी ऑब्जेक्ट का चयन करें, संपादन मोड में जाएं, सभी चेहरे का चयन करने के लिए 'ए' दबाएं, फिर' स्पेस 'दबाएं और टाइप करें "लूज जियोमेट्री चुनें" टाइप करें, एंटर दबाएं, फिर चयनित कुछ भी हटाने के लिए' x' दबाएं, फिर 'vertices' पर क्लिक करें। फिर से 'x' दबाएं और' किनारों 'का चयन करें। फिर से 'x' दबाएं और' चेहरे 'का चयन करें। मुझे नहीं पता कि यह सब करना आवश्यक है या नहीं। –

+0

डुबल्स निकालें अच्छा विचार नहीं है, खासकर यदि आप EdgeSplit या विभाजित चेहरों पर निर्भर अन्य कार्यों का उपयोग करते हैं। – Martin

उत्तर

11

ऐसा तब होता है जब निम्न स्तर रेंडर कॉल शून्य अक्षरों/चेहरों को आकर्षित करने के लिए कहा जाता था। ऐसा इसलिए है क्योंकि आपके पास बहुभुज के साथ एक या अधिक मेष हैं जिनमें शून्य चेहरे/शिखर हैं, इसलिए प्रत्येक ड्रॉ पर यह त्रुटि कॉल हो जाती है।

समस्या आपका मॉडल हो सकता है या यह निर्यात/आयात प्रक्रिया हो सकती है। यदि यह मॉडल है, तो नीचे समस्याग्रस्त क्षेत्रों को कैसे ढूंढें इस बारे में एक ढीला विचार है। मैं थ्रीजेएस और ब्लेंडर के साथ ओबीजेएमटीएल लोडर का उपयोग करने की अनुशंसा नहीं करता, क्योंकि निर्यात के लिए ब्लेंडर प्लगइन वाले तीन जेएस जहाज, और यह काम करता है।

checkMesh = function(mesh, child_index) { 
 
    if (
 
    mesh.geometry.faces.length > 0 && 
 
    mesh.geometry.vertices.length > 0 
 
) { 
 
    // do stuff here with the good mesh 
 

 
    for (var i = 0; i < mesh.children.length; i++) 
 
     if (!checkMesh(mesh.children[i], i)) 
 
     i--; // child was removed, so step back 
 

 
    return true; 
 
    } else // empty mesh! this causes WebGL errors 
 
    { 
 
    if (mesh.parent != null) 
 
     mesh.parent.children.splice(child_index, 1); 
 

 
    console.log(mesh.name + " has zero faces and/or vertices so it is removed."); 
 
    mesh = null; 
 

 
    return false; 
 
    } 
 
}

0

यह कहना मुश्किल है कि आपका कोड देखे बिना क्या गलत हो सकता है, लेकिन मैं JSON निर्यात और आयात करने का प्रयास करने का सुझाव दूंगा। तीन.जेएस सोर्स में, यूटिल/निर्यातकों/ब्लेंडर पर जाएं और जेएसओएन निर्यातक स्थापित करें (readme.md की जांच करें)। फिर अपने मॉडल को JSON पर ध्यान से निर्यात करने के विकल्पों को निर्यात करें (ज्यामिति, यूवी, बनावट का प्रकार)। उसके बाद, आप इस तरह अपने मॉडल आयात कर सकते हैं:

var loader = new THREE.JSONLoader(); 
loader.load("model.json", function(geometry, material) { 
    var m = new THREE.MultiMaterial(material); 
    var o = new THREE.Mesh(geometry, m); 
    scene.add(o); 
}); 

मैं OBJ/MTL से तुलना नहीं था, लेकिन कोलाडा की तुलना में, JSON लोडर तरह से तेजी से होता है।

+0

ओबीजे फाइलों से मेरे लिए जेएसओएन में स्विच करना संभव नहीं है। – Martin

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