2011-06-02 9 views
7

GLSL spec, और other sources about GLSL में, नमूने के प्रकार 3 आयामों में उपलब्ध हैं: sampler1D, sampler2D, और sampler3Dनमूना 1 डी एनवीडिया जीएलएसएल में समर्थित नहीं है?

लेकिन जब मैं (दोनों नियमित रूप से, और भी कैनरी में) क्रोम में WebGL का उपयोग करने GLSL कार्यक्रमों संकलित करने के लिए प्रयास करते हैं, sampler2D और sampler3D स्वीकार किए जाते हैं लेकिन sampler1D में सिंटेक्स त्रुटि देता है। कोड:

uniform sampler1D tex1; 

त्रुटि:

FS ERROR: ERROR: 0:9: 'sampler1D' : syntax error 

यह त्रुटि तब होती है, भले ही मैं कैनरी कमांड लाइन तर्क --use-gl=desktop दे।

मैं क्रोम 12.0.742.68 बीटा-एम, और कैनरी 13.0.782.1 चला रहा हूं। मेरे पास चिपसेट एनवीडिया क्वाड्रो एनवीएस 160 एम है।

क्या यह संभव है कि Nvidia 2- और 3-आयामी बनावट नमूने की अनुमति देता है, लेकिन 1 डी नहीं? मैंने उस प्रभाव को जानकारी खोजने की कोशिश की है, लेकिन कुछ भी नहीं मिला है।

उत्तर

9

नहीं, आपकी समस्या "एनवीआईडीआईए जीएलएसएल" से संबंधित नहीं है। वेबजीएल ओपनजीएल ईएस 2.0 पर आधारित है, और ओपनजीएल ईएस 2.0 में 1 डी बनावट नहीं है, केवल 2 डी और 3 डी बनावट (एक्सटेंशन के रूप में) हैं, इसलिए आप WebGL में नमूना 1 डी का उपयोग करने में सक्षम नहीं होंगे।

समाधान? नमूना 2 डी के साथ 1 की ऊंचाई के साथ बस 2 डी बनावट का उपयोग करें।

नोट: यदि आप डेस्कटॉप ओपनजीएल (ओपनजीएल> = 2.0) का उपयोग करते हैं, तो आप 1 डी बनावट और नमूना 1 डी का उपयोग करने में सक्षम होंगे।

+1

निश्चित रूप से, आप सही हैं। रुचि रखने वाले अन्य लोगों के लिए, जीएलएसएल ईएस 2.0 स्पेक यहां है: http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf इससे पता चलता है कि 'नमूना 1 डी' और' नमूना 3 डी 'दोनों कीवर्ड हैं "भविष्य के उपयोग के लिए आरक्षित। उनका उपयोग करने से एक त्रुटि होगी।" – LarsH

+1

पीएस जवाब के लिए धन्यवाद। – LarsH

+1

2 डी बनावट वर्ग हैं, इसलिए 1 की ऊंचाई के साथ 1 की चौड़ाई भी है। आपको 2 डी बनावट बनावट की आवश्यकता है, जैसे कि 1 डी बनावट, डेस्कटॉप जीएल में उपलब्ध हैं लेकिन विस्तार के बिना जीएलएस में नहीं –

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