2013-01-01 6 views
5

मैं एक छवि के साथ शुरू करेंगे: - एरियल, बोल्ड, आकार 11बदसूरत फ़ॉन्ट, ओपन

enter image description here

ऊपर छवि दो अलग अलग तरीकों से प्राप्त पाठ प्रस्तुत करता है, दोनों फॉन्ट के एक ही प्रकार के लिए इस्तेमाल किया

नीचे एक व्यक्ति छवि संपादन कार्यक्रम में बनाया गया था, और मेरे ओपनजीएल एप्लिकेशन में शीर्ष पर एक था। अधिक सटीक होना, FTGL पुस्तकालय से FTExtrudeFont का उपयोग कर:

font_ptr font(new FTExtrudeFont(filename.c_str())); 

मेरा प्रश्न है, क्यों इसे इस तरह तैयार की है है? मुझे लगता है कि इसका कारण अलग-अलग आकार बदलने वाले एल्गोरिदम हो सकता है, लेकिन यदि हां, तो मैं अपने ओपनजीएल एप्लिकेशन में इस बेहतर दिखने वाले फ़ॉन्ट (नीचे एक) को कैसे प्राप्त कर सकता हूं?

संपादित करें:

font->Render(text,   // Text to be displayed 
      -1,   // Line length, which by default is left as -1 
      pos);   // Position in which to draw text 
+0

क्या आपको निकाले गए फ़ॉन्ट की आवश्यकता है? क्या आप एक सामान्य वेक्टर फ़ॉन्ट या एक बनावट फ़ॉन्ट आज़मा सकते हैं और देख सकते हैं कि आपको बेहतर परिणाम मिलते हैं या नहीं? – WildCrustacean

+0

@bde मैंने बनावट फ़ॉन्ट की कोशिश की, लेकिन यह एंटीअलाइज्ड है जो इस मामले में मेरे लिए अच्छा नहीं था, क्योंकि मुझे तेज, सही काले रूपरेखा की आवश्यकता है। –

उत्तर

3

यह कुछ ऐसा है ओपन में बनावट नमूने की वजह से हो जाएगा की तरह दिखता है:

एक फ़ॉन्ट प्रस्तुत करना करने के लिए, मैं इस एक समारोह फोन केवल है। ऐसा तब होता है जब आप जिस बनावट को चित्रित कर रहे हैं (एक फ़ॉन्ट, इस मामले में) उतना ही आकार नहीं है जितना आप इसे खींचते हैं।

आसान समाधान: सुनिश्चित करें कि बनावट का आकार स्क्रीन पर खींचे गए क्षेत्र से मेल खाता है। एक 12 पीएक्स फ़ॉन्ट को एक 12 पीएक्स क्षेत्र में प्रस्तुत न करें, लेकिन 12 पीएक्स फ़ॉन्ट या 14 पीएक्स क्षेत्र का उपयोग करें।

आपके प्रश्न में आप उल्लेख करते हैं कि आपका फ़ॉन्ट 'आकार 11' है। मुझे एफटीजीएल लाइब्रेरी के ब्योरे से अवगत नहीं है, लेकिन मुझे लगता है कि एक कॉल है जो आपको एक विशिष्ट स्ट्रिंग के लिए सर्वोत्तम आयाम बताएगी जो आप आकर्षित कर सकते हैं। इनकी गणना करने के लिए अपने गणित का उपयोग न करें, लाइब्रेरी का उपयोग करें। जब तक आप आयाम सही नहीं पाते हैं, तब तक जो समस्या हो रही है वह नहीं होनी चाहिए।

+0

उत्तर के लिए धन्यवाद, लेकिन मुझे लगता है कि मैं ऐसा करने में सक्षम नहीं हूं क्योंकि एकमात्र फ़ंक्शन जिसे मैं प्रतिपादन के लिए कॉल करता हूं (यह एफटीजीएल लाइब्रेरी से है): फ़ॉन्ट-> रेंडर (टेक्स्ट, -1, pos); तो मुझे नहीं लगता कि मेरे पास प्रतिपादन क्षेत्र को संशोधित करने का कोई तरीका है। –

+0

जैसा कि मैंने कहा, मुझे एफटीजीएल लाइब्रेरी के बारे में बहुत कुछ पता नहीं है, लेकिन क्या यह संभव है कि आप शायद गलत मॉडलव्यू/प्रोजेक्शन मैट्रिस का उपयोग कर रहे हों, जिसके कारण शिखर से पिक्सेल स्थानों में परिवर्तन गलत हो जाए? * कुछ * बनावट को नमूना देने का कारण बन रहा है। –

+0

मुझे नहीं पता कि मैं वास्तव में कैसे जांच सकता हूं कि मैं "गलत मॉडलव्यू मैट्रिक्स" का उपयोग कर रहा हूं या नहीं। जो कुछ मैं देखता हूं, सबकुछ सही लगता है - मैं गुई घटकों की पृष्ठभूमि को आकर्षित करने के लिए अन्य बनावट का उपयोग कर रहा हूं और उन्हें ठीक से प्रदर्शित किया जा रहा है (मेरा मतलब है, पिक्सेल सही जगहों पर हैं)। –

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