2011-10-20 13 views
5

मैं कुछ हफ्तों के लिए गहराई और सामान्य नक्शा बनावट के साथ 2.5 डी इंजन बनाने की कोशिश कर रहा हूं, यहां Linky का उपयोग करने के विपरीत नहीं। एक बनावट से टुकड़े टुकड़े में गहराई का नक्शा बनाने के विचार के बाद असंभव था ईएस 2.0 के कारण gl_fragDepth वैरिएबल मुझे आईओएस के लिए एक ट्यूटोरियल मिला जहां उन्होंने मोड GL_MIN/GL_MAX के साथ glblendEquation को "नकली" गहराई से बफर करने के लिए उपयोग किया एक फ्रेमबफर-बनावट Linky पर। दुर्भाग्य से GLES20.glBlendEquation UnsupportedOperationException के साथ मेरे फोन (एसजीएस 1/2) दोनों पर एप्लिकेशन क्रैश बनाता है। तो मैं सोच रहा हूं कि किसी ने इस समारोह का उपयोग किसी भी सफलता के लिए किया है? GL_MIN/GL_MAX एंड्रॉइड ओपनगल ES 2.0 spec से भी अनुपलब्ध प्रतीत होता है, इसलिए शायद मैं यहां भाग्य से बाहर हूं ... कोई विचार?एंड्रॉइड GLES20.glBlendEquation काम नहीं कर रहा है?

बीटीडब्लू यह GL11Ext में काम करता प्रतीत होता है लेकिन चूंकि मैं सामान्य मैपिंग के लिए खंड शेडर का उपयोग कर रहा हूं, यह मेरे द्वारा काम नहीं करेगा।

+0

क्या आपको कभी इसके लिए समाधान मिला? – Jave

+0

@jave नहीं मैंने इसे किसी और में नहीं देखा है, न ही मुझे किसी भी मंच पर कोई प्रतिक्रिया मिली है। तो मेरी धारणा यह है कि यह एंड्रॉइड ओपनजीएल ईएस 2.0 में लागू नहीं किया गया है। शायद यह ओएस के नए संस्करणों में तय किया गया है? मैंने एंड्रॉइड ओएस v2.3 का उपयोग करके इसका परीक्षण किया। –

+0

ठीक है, मैं कुछ दिनों पहले खुद को इस समस्या में भाग गया, लेकिन मुझे कोई समाधान नहीं मिला। (रास्ते में एंड्रॉइड 2.2 का उपयोग करना)। यदि आप समस्या का समाधान करते हैं, तो मैं देखना चाहता हूं कि आपने यह कैसे किया। – Jave

उत्तर

1

मैं अपने वेगा गोली (Tegra) पर प्रयोग किया गया था और यह मेरे लिए काम किया:

टुकड़ा शेडर:

#extension GL_NV_shader_framebuffer_fetch : require 
// makes gl_LastFragColor accessible 

precision highp float; 

varying vec2 v_texcoord; 

uniform sampler2D n_sampler; 

void main() 
{ 
    vec4 v_tex = texture2D(n_sampler, v_texcoord); 
    gl_FragColor = min(gl_LastFragColor, v_tex); // MIN blending 
} 

सुंदर आसान, है ना? लेकिन मुझे डर है कि यह केवल एनवी होगा।

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