2010-08-22 4 views
5

मैं वेबजीएल में कुछ प्रयोग चला रहा हूं, उनमें से एक एक्सओआर प्रभाव खंड शेडर है। किसी कारण से सभी bitwise ऑपरेटरों जीएलएसएल में आरक्षित हैं और इस्तेमाल होने पर एक कंपाइलर त्रुटि का कारण बनता है। ये ऑपरेटर अवैध क्यों हैं? मैं इसके बजाय क्या उपयोग कर सकता हूं | इस मामले में?जीएलएसएल - बिटवाई ऑपरेटरों को आरक्षित क्यों किया जाता है? बिटवाई ऑप्स का उपयोग करने के लिए एक अच्छा विकल्प क्या है (फ्लोटिंग पॉइंट ऑप्स जो बिटवाई का अनुकरण करते हैं)

+0

आपने एक्सओआर प्रभाव का उल्लेख किया है, लेकिन फिर आपने कहा "इसके बजाय' | '" (bitwise या ऑपरेटर)। क्या आपका मतलब "^' '" के बजाय था? – LarsH

+0

ठीक है, मैं इस पोस्ट के पहले प्रभाव के बाद जा रहा था - http://mrdoob.com/blog/post/623 लेखक ने इसे 'एक्सओआर' प्रभाव कहा, तो बंदर बंदर को देखते हैं। कोड को प्रभावित करने के लिए कोड के प्रभाव के प्रभाव के साथ इसका नाम अधिक हो सकता है। – schellsan

उत्तर

3

जीएलएसएल 1.0 spec में, वे "भविष्य के उपयोग के लिए आरक्षित" थे, जो 1.3 spec था। यह स्केलर और वेक्टर दोनों, हस्ताक्षरित और हस्ताक्षरित पूर्णांक के लिए अनुमति है।

आप द्वारा

#version 130 
+1

धन्यवाद, मुझे लगता है कि वर्जन 1.3 क्रोमियम के वेबग्ल पर समर्थित नहीं है, क्योंकि मुझे त्रुटि मिल रही है 'संस्करण संख्या ईएसएसएल द्वारा समर्थित नहीं है' – schellsan

+0

अधिकांश समय, आप xor (i: 0) के साथ काम कर सकते हैं; अगर (cond1) i ++; अगर (cond2) i ++; अगर (i == 1) .... – Calvin1602

+0

लॉजिकल एक्सओआर के लिए, हाँ ... लेकिन सवाल * bitwise * XOR के लिए था; आप इसे कैसे काम करते हैं? – LarsH

2

अपने शेडर शुरू करना चाहिए मैं भी इस समस्या का सामना किया है, उदा क्रोम का उपयोग कर Shader Toy में Slisesix चलाने की कोशिश कर रहा है।

This question में दो उत्तरों हैं जो आप बिटवाईयर ऑपरेटरों के बिना bitwise XOR को कार्यान्वित कर सकते हैं। वे धीमे हो सकते हैं, लेकिन कुछ मामलों में वे पर्याप्त तेज़ होंगे। कुछ नहीं से बेहतर।

आप यह भी देख सकते हैं कि + आपकी आवश्यकताओं के आधार पर बिटवाई एक्सओआर के करीब पर्याप्त अनुमान है।

+1

धन्यवाद! काश मैं भी यह जवाब चुन सकता हूं। – schellsan

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