2010-11-08 13 views
13

मैं इस समस्या से कड़ी मेहनत कर रहा था, यह प्रस्तुत करना असंभव प्रतीत होता है।ओपनजीएल: एक दूसरे को छेड़छाड़ करने वाले दो पारदर्शी विमानों को प्रस्तुत करना: असंभव या नहीं?

कोई समस्या कैसे हल कर सकती है? मैं ओपन यह प्रस्तुत करना है जैसे कि यह नीचे इस छवि के दाईं ओर पर लग रहा है चाहता हूँ:

alt text

उत्तर

10

आप जबकि गहराई परीक्षण को अक्षम और एक आदेश स्वतंत्र सम्मिश्रण सूत्र का उपयोग कर अपने विमानों रेंडर करने के लिए की जरूरत है।

यदि आपके पास पीठ पर कुछ अपारदर्शी ज्यामिति हैं, तो उनको आकर्षित करें, गहराई परीक्षण को अक्षम करने के बजाय गहराई बफर डालें, और पारदर्शी वाले को प्रस्तुत करें।

गहराई छीलने जैसी सामान्य समस्या से निपटने वाली उन्नत तकनीकें भी हैं।

संपादित

आप में केवल पढ़ने के लिए का उपयोग कर गहराई बफर डाल सकते हैं: glDepthMask(GL_FALSE)

समझाते हुए एक अच्छा आलेख यहां दिया गया है कि आप सही पारदर्शिता क्यों प्राप्त नहीं कर सकते: Transparency SortingOrder Independent Transparency with Dual Depth Peeling आलेख को भी देखें, जिसमें दो विधियां शामिल हैं (एक काफी सरल और एकल पास है) सटीक (या अनुमानित) ऑर्डर स्वतंत्र पारदर्शिता के लिए उपयोग किया जाता है।

मैं Alpha to Coverage का उल्लेख करना भूल गया।

+1

गहराई से परीक्षण चाल केवल तब तक काम करती है जब तक कि सभी विमानों में बिल्कुल 0.5 अस्पष्टता नहीं है ...? या मैं अब पूरी तरह से पागल हूं – Newbie

+0

भी, मैं गहराई बफर केवल पढ़ने के लिए कैसे रखूं? पिछली बार मैंने जांच की थी कि यह ओपनजी ओ_ओ पर संभव नहीं था या यह केवल इतना लिखना था कि संभव नहीं था ... – Newbie

+0

सोचने के लिए अब बहुत थक गया है, इसलिए इसे करने का कोई तरीका नहीं है – Newbie

1

एक गैर-मामूली समाधान विमानों को भागों में विभाजित करना है, उन्हें सॉर्ट करना और फिर उन्हें आगे प्रस्तुत करना है। हालांकि सही सॉर्टिंग हासिल करना मुश्किल है। अन्य उत्तर में पोस्ट किए गए आलेख की तरह: Transparency Sorting: Depth Sorting

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