हैलो, मुझे तीन.जेएस के साथ एक समस्या है। मैं अपने दृश्य पर एक "बड़ा" जीएलबी मॉडल आयात करता हूं जो पारदर्शी नहीं है, लेकिन अगर मॉडल कैमरे के दृश्य पर खुद से ढका हुआ है, तो अग्रभूमि पारदर्शी हो जाती है। (जैसा कि आप चित्र में देख सकते हैं, पृष्ठभूमि पर्वत अग्रभूमि पर है)
मैंने कुछ समाधानों की कोशिश की जैसे:
- GLB सामग्री पर गहराई से गलत करने के लिए परीक्षण
- असत्य को क्रमबद्ध करें
- लॉगरिदमिकडेप्थबफर का प्रयोग करें
- पारदर्शी सामग्री को असत्य में बदलें
- अल्फा टेस्ट को 0 से 1 में 0.1 चरणों में बदलें
लेकिन कुछ भी काम नहीं करता। अगर किसी के पास समाधान है :)
शुक्रिया !
2 जवाब
पारदर्शी वस्तुओं का प्रतिपादन ठीक से नहीं किया जा सकता है। आपको पहले किसी भी गैर-पारदर्शी वस्तुओं को प्रस्तुत करने की आवश्यकता है, और फिर पारदर्शी सतहों को पीछे से सामने की ओर प्रस्तुत करना होगा, ताकि कोई भी नया उसके पीछे जो था उसके ऊपर मिश्रण हो। ऐसे कई मामले हैं जहां ऐसा नहीं किया जा सकता है, खासकर पारदर्शी वस्तुओं को प्रस्तुत करते समय जो स्वयं को ओवरलैप कर सकते हैं।
इसे ठीक करने में समस्याग्रस्त वस्तुओं (यहां तक कि एकल त्रिकोण) को छोटे टुकड़ों में काटना शामिल होगा ताकि ऑर्डरिंग को संरक्षित किया जा सके, और यह अक्सर लगभग असंभव होता है। चूँकि आप Three.js के साथ काम कर रहे हैं, देखें कि क्या आप अपना डिज़ाइन बदल सकते हैं ताकि यह कोई समस्या न हो, या गलत रेंडरिंग ऑर्डर की कलाकृतियाँ बहुत अधिक ध्यान देने योग्य न हों।
donmccurdy को धन्यवाद जिन्होंने मेरे समाधान को तीन.जेएस मंच पर ढूंढ लिया है।
अंत में मेरी ग्लब फ़ाइल पारदर्शी थी :( तो दो समाधान हैं।
समाधान 1:
पता लगाएं कि मॉडल कैसे पारदर्शी है और इसे ठीक करें।
समाधान 2:
इसे वापस अपारदर्शी में बदलना, और डिफ़ॉल्ट डेप्थराइट मान को पुनर्स्थापित करना।
mesh = content.getObjectByName('mesh_0');
mesh.material.transparent = false;
mesh.material.depthWrite = true;
संबंधित सवाल
नए सवाल
three.js
थ्री.जेएस एक हल्का क्रॉस-ब्राउज़र जावास्क्रिप्ट लाइब्रेरी / एपीआई है जिसका उपयोग वेब ब्राउज़र पर एनिमेटेड 3 डी कंप्यूटर ग्राफिक्स बनाने और प्रदर्शित करने के लिए किया जाता है। एचटीएमएल 5 कैनवास तत्व, एसवीजी या वेबजीएल के साथ संयोजन में तीन.जेएस लिपियों का उपयोग किया जा सकता है।