2010-11-27 26 views
7

पर एनालिफ 3 डी छवि बनाना मैं एचटीएमएल 5 कैनवास ऑब्जेक्ट का उपयोग कर एक साधारण 3 डी इंजन बना रहा हूं। यह अच्छी तरह से काम कर रहा है लेकिन मैं लाल/नीली एनालिफ प्रोसेसिंग को कार्यान्वित करना चाहता हूं, ताकि कोई लाल/नीले चश्मा का उपयोग करके 3 डी देख सके। फिलहाल मेरे पास 3 डी ऑब्जेक्ट दो बार प्रस्तुत किया गया है, दूसरी बार कैमरे की स्थिति से पहले कैमरे की स्थिति के बगल में।एचटीएमएल 5 कैनवास

जिस समस्या का मैं सामना कर रहा हूं वह यह है कि दो वस्तुओं को एक एनालिफ के लिए सही रंग देने के लिए कैसे जोड़ा जाता है। अब मैं globalAlpha = 0.5 का उपयोग कर रहा हूं और पहले लाल रंग में और दूसरे को नीले रंग में प्रस्तुत कर रहा हूं। हालांकि यह पूरी तरह से काम नहीं कर रहा है, क्योंकि केवल लाल वस्तु से प्रभावित पिक्सल लाल रहना चाहिए, लेकिन वे काले और लाल रंग के रूप में रंग बन रहे हैं क्योंकि मेरा पृष्ठभूमि रंग काला है।

जब एक 3 डी anaglyph पर एक नज़र लेने के आवेदन बनाने, मैंने देखा है कि लाल और नीले रंग पिक्सेल एक साथ निम्नलिखित के रूप में गणना कर रहे हैं:

255 0 0 
0 0 255 
------------- + 
255 0 255 

एचटीएमएल 5 कैनवास लेकिन अल्फा का उपयोग करके सभी पिक्सल गणना कर रहा है, इसलिए यदि पृष्ठभूमि रंग काला है एक लाल पिक्सेल अंधेरे लाल हो जाता है जबकि इसे लाल रहना चाहिए। असल में मुझे लाल ऑब्जेक्ट के पिक्सेल की आवश्यकता होती है जो प्रत्येक पिक्सेल के लाल घटक को प्रभावित करती है, और नीली वस्तु के पिक्सल प्रत्येक पिक्सेल के केवल नीले घटक को प्रभावित करते हैं।

मैं प्रति-पिक्सेल आधार पर काम कर रहा हूं लेकिन क्या यह संभव होगा और प्रदर्शन-ब्रेकिंग नहीं होगा? मैं 20 फ्रेम एक सेकेंड प्रस्तुत कर रहा हूं इसलिए मुझे लगता है कि यह किसी भी व्यावहारिक उपयोग का नहीं होगा। किसी भी सुझाव की सराहना की जाएगी।

मुझे आशा है कि इस छवि को पूरे स्पष्ट किया:

Example

उत्तर

5

कैनवास संदर्भ है कि आप इस व्यवहार को प्रभावित करने को बदल सकते हैं की एक globalCompositeOperation संपत्ति नहीं है। विशेष रूप से, इसे 'लाइटर' पर सेट करने से स्रोत छवि में किसी भी ड्राइंग ऑपरेशन के रंग जोड़े जाएंगे। यह अल्फा मूल्य का भी सम्मान करेगा। यदि यह एक जटिल दृश्य है, तो आपको दृश्य को दो बार, एक छिपे हुए कैनवास में खींचना पड़ सकता है, फिर उन्हें समग्र ऑपरेशन सेट के साथ 'लाइटर' पर दृश्य कैनवास में कॉपी करें।

+0

धन्यवाद एक लाख, ऐसा लगता है कि मैं वास्तव में क्या देख रहा हूं! लाल और नीले रंग को जोड़ने से यह गुलाबी हो जाता है, क्योंकि यह एनालिफ एप्लिकेशन में भी करता है जो मैंने भी उपयोग किया था। इसके अलावा, पृष्ठभूमि रंग किसी भी तरह से परिणाम को प्रभावित नहीं करता है। – pimvdb

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