2012-06-18 18 views
6

प्रत्येक बिंदु के लिए मेरे ओपनजीएल शेडर प्रोग्राम में यह एक लाल अंगूठी बनाता है जो अपारदर्शी और पूरी तरह से पारदर्शी के बीच आसानी से संक्रमण करता है। मेरा शेडर प्रोग्राम काम करता है, लेकिन बैंडिंग कलाकृतियों है।अंक के लिए मेरे ओपनजीएल शेडर प्रोग्राम में बैंडिंग कलाकृतियों क्यों हैं?

टुकड़ा शेडर नीचे है।

#version 110 

precision mediump float; 

void main() { 
float dist = distance(gl_PointCoord.xy, vec2(0.5, 0.5)); 

// Edge value is 0.5, it should be 1. 
// Inner most value is 0 it should stay 0. 
float inner_circle = 2.0 * dist; 
float circle = 1.0 - inner_circle; 

vec4 pixel = vec4(1.0, 0.0, 0.0, inner_circle * circle); 

gl_FragColor = pixel; 
} 

यहां कम दिलचस्प वर्टेक्स शेडर है जो मुझे नहीं लगता कि समस्या का कारण है।

#version 110 

attribute vec2 aPosition; 

uniform float uSize; 
uniform vec2 uCamera; 

void main() { 
// Square the view and map the top of the screen to 1 and the bottom to -1. 

gl_Position = vec4(aPosition, 0.0, 1.0); 
gl_Position.x = gl_Position.x * uCamera.y/uCamera.x; 

// Set point size 
gl_PointSize = (uSize + 1.0) * 100.0; 
} 

कृपया मेरे आंकड़ा मदद बाहर, क्यों मेरे ओपन शेडर कार्यक्रम कलाकृतियों बैंडिंग है करता है?

पीएस संयोग से यह एंड्रॉइड एसर आइकोनिया टैबलेट के लिए है।

+0

क्या आप GL_ALPHA_BITS के साथ एक glGet क्वेरी कर सकते हैं? हो सकता है कि आपकी रेंडर सतह में अल्फा बिटप्लेन्स की संख्या छोटी हो? – Tim

+0

@ टिम यह मुझे दे रहा है 0. –

+0

हाय टिम, मुझे आश्चर्य है कि क्या आपने इस मुद्दे को हल किया है। –

उत्तर

2

एंड्रॉइड के जीएलएसयूफेस व्यू डिफ़ॉल्ट रूप से एक आरजीबी 565 सतह का उपयोग करता है। या तो प्रतिबिंबित करें (glEnable(GL_DITHER)) या प्रति चैनल 8 बिट्स के साथ आरजीबीए या आरजीबीएक्स सतह कॉन्फ़िगरेशन चुनने के लिए कस्टम EGLConfigChooser इंस्टॉल करें।