मैं एक दृश्य में फिट विभिन्न आकारों के मॉडल प्रदर्शित करना चाहता हूं, ताकि पूरे मॉडल स्क्रीन के अंदर दिखाई दे।
ऐसा करने का सबसे अच्छा तरीका क्या है? मैं स्केलिंग की कोशिश की इस सूत्रखिड़की के अंदर फ़िट 3 डी मॉडल
scaleFactor = (screenSize/(maxModelSize * constant))
कहाँ आकार ऊंचाई या चौड़ाई है, क्या बड़ा है पर निर्भर करता है का उपयोग कर मॉडल (glScale का उपयोग)।
लगातार है 1/(length of one screen pixel in OpenGL units)
इस के साथ दो समस्याएं हैं:
1. कुछ परिवर्तनों करने के बाद, मैं पहचान का उपयोग इस प्रारंभिक पैमाने पर लौटने के लिए सक्षम होना चाहते हैं (मॉडल खिड़की के अनुसार बदल जाता है)। वर्तमान में पहचान कॉल करने से मॉडल को इसके मूल आयामों ("फिक्सिंग" स्केल से पहले) लाया जाएगा।
2. "निरंतर" परीक्षण और त्रुटि से मुझे कुछ मिला है, मुझे गलत तरीके लगता है। मुझे यह भी संदेह है कि यह बिल्कुल स्थिर नहीं है, और स्क्रीन रिज़ॉल्यूशन पर निर्भर करता है और भगवान जानता है कि और क्या है।
"कुछ परिवर्तनों करने के बाद, मैं इस प्रारंभिक पैमाने पर लौटने के लिए सक्षम होना चाहते हैं (मॉडल है खिड़की फिट करने के लिए स्केल किया गया) पहचान का उपयोग कर। वर्तमान में पहचान कॉल करने से मॉडल को इसके मूल आयामों ("फिक्सिंग" स्केल से पहले) लाया जाएगा। " यह मेरे लिए सुझाव देता है कि आप ModelView मैट्रिक्स को स्केल कर रहे हैं। शायद आपको प्रक्षेपण मैट्रिक्स को स्केल करने का प्रयास करना चाहिए? दूसरे शब्दों में, एक बड़ा कैमरा बनाएं, न कि छोटे मॉडल। – Zecc