के भीतर एक मनमानी रेक्ट पर ज़ूम इन करने का प्रयास कर रहा है मुझे एक स्क्रीन-गठबंधन ट्रैक्टर मिला है, और मैं उस ट्रैक्टर के भीतर एक मनमाना आयत में ज़ूम करना चाहता हूं, लेकिन मुझे अपना गणित नहीं मिल रहा है सही।स्क्रीन-गठबंधन क्वाड
मुझे लगता है कि मुझे अनुवाद का काम मिला है, सिर्फ स्केलिंग नहीं। असल में, मेरा कोड निम्न है:
//
// render once zoomed in
glPushMatrix();
glTranslatef(offX, offY, 0);
glScalef(?wtf?, ?wtf?, 1.0f);
RenderQuad();
glPopMatrix();
//
// render PIP display
glPushMatrix();
glTranslatef(0.7f, 0.7f, 0);
glScalef(0.175f, 0.175f, 1.0f);
RenderQuad();
glPopMatrix();
किसी के पास कोई सुझाव है? उपयोगकर्ता एक रेक्ट क्षेत्र का चयन करता है, और उसके बाद वे मान मेरे प्रतिपादन ऑब्जेक्ट को [x, y, w, h] के रूप में पास किए जाते हैं, जहां वे मान व्यूपोर्ट की चौड़ाई और ऊंचाई के प्रतिशत होते हैं।
मैं ग्लोथो (0, 1, 0, 1, 0, 1) का उपयोग कर रहा हूं। मैंने इसे नीचे-बाएं रेक्ट पर ज़ूम करने के अनुकरण के लिए ग्लोथो (0, 0.5, 0, 0.5, 0, 1) में बदलने की कोशिश की, लेकिन मुझे अभी मौत की एक ब्लैक स्क्रीन मिली। – moswald
@mos: मैं थोड़ा सा खो गया हूं कि यह कैसे हो सकता है, जब तक कि आप कुछ और भी नहीं बदलते (या, ज़ाहिर है, उस चतुर्भुज में कुछ भी नहीं खींचा था)। संभवतः आप इसे 'glMatrixMode (GL_Projection) के बाद बुला रहे हैं; glLoadIdentity(); '? –
एएके! क्षमा करें, जब मैंने अपना परीक्षण किया, तो मैंने अपने वर्तमान कोड पर टिप्पणी की। ... RenderQuad को कॉल सहित। उस भाग को वापस रखकर इसे काम करना पड़ा। – moswald