2009-05-06 14 views
14

मैं सोच रहा था कि बनावट मिपमैप्स की गुणवत्ता बेहतर होगी अगर मैंने अपने स्वयं के एल्गोरिदम का उपयोग पूर्व-निर्मित स्वचालित के बजाय पूर्व-उत्पन्न करने के लिए किया था। मैं शायद एक धीमी लेकिन सुंदर एल्गोरिदम का उपयोग करूंगा, जैसे लांज़ोस रीसाम्प्लिंग।क्या ओपनजीएल बनावट के लिए अपने एमपमैप निर्माण एल्गोरिदम का उपयोग करना समझ में आता है?

क्या यह समझ में आता है? क्या मुझे आधुनिक ग्राफिक्स कार्ड पर कोई गुणवत्ता लाभ मिलेगा?

+0

यूनिटी मिपमैप श्रृंखला उत्पन्न करने के लिए या तो 'बॉक्स' या 'कैसर' फ़िल्टर का प्रस्ताव करती है। यह निश्चित रूप से एक कानूनी सवाल है। –

+0

मुझे लगता है कि आप दो चीजों को एक साथ मिला रहे हैं। इंटरपोलेशन है, जब आपको अपने से अधिक डेटा चाहिए। मिपमैप्स इस मामले के लिए हैं, जब आपको अपने से कम डेटा चाहिए। लांज़ोस इंटरपोलेशन एल्गोरिदम है, इसमें मिपमैप्स के साथ कुछ लेना देना नहीं है। –

उत्तर

2

आपको कोशिश करने के लिए क्या प्रेरित कर रहा है? क्या आप मिपमैप्स को वर्तमान में खराब तरीके से उत्पन्न कर रहे हैं? (यानी आपने देखा है?) ध्यान रखें कि आपके परिणाम अक्सर (त्रि) रैखिक रूप से इंटरपोलेट किए जाएंगे, इसलिए उसमें एक गति के बीच अक्सर पुन: प्रत्यारोपण में तेजी से कमी आती है।

+0

ठीक है, वर्तमान एल्गोरिदम बहुत धीमा नहीं हो सकता है, और इसलिए यह अच्छा नहीं हो सकता है। Mipmaps को पूर्वनिर्मित करने और संग्रहीत करने की लागत कम है, लेकिन मुझे नहीं पता कि यह इसके लायक है अगर परिणाम ध्यान देने योग्य नहीं हैं। – GhassanPL

+0

मुझे यकीन नहीं है कि आप इसे अभी कैसे कर रहे हैं, लेकिन इन दिनों आप जीपीयू उत्पन्न कर सकते हैं, जो तेज़ और बहुत अच्छा हो सकता है। सबसे महत्वपूर्ण बात यह है कि, आप या तो गलत रिज़ॉल्यूशन पर देख रहे हैं, या अधिक संभावना है, उनके बीच रैखिक रूप से interpolating। तो आपके खूबसूरती से तैयार किए गए हैंड-रीसाम्प्लेड संस्करण आमतौर पर नहीं देखे जाते हैं ... इसलिए रिटर्न कम हो जाता है। क्या आप वास्तव में कलाकृतियों को देख रहे हैं, या यह पूरी तरह अकादमिक है? – simon

+0

आपके buisness बजट पर निर्भर करता है। खाली समय की बात? निवेशक वित्त पोषित? आपका वेतन इत्यादि ... यदि उस पर काम करने में एक सप्ताह लगते हैं, तो कंपनी के लिए इसकी कीमत 1000 डॉलर या उससे अधिक होगी, क्या यह वास्तव में इसके लायक है? –

10

अपने स्वयं के mipmaps उत्पन्न करने के अच्छे कारण हैं। हालांकि, डाउनसमलिंग की गुणवत्ता उनमें से एक नहीं है।

गेम और ग्राफिक प्रोग्रामर ने अतीत में सभी प्रकार के डाउनसमल्पिंग एल्गोरिदम के साथ प्रयोग किया है। अंत में यह पता चला कि बहुत ही सरल "औसत चार पिक्सल" -माथ सर्वोत्तम परिणाम देता है। सिद्धांतों में भी अधिक उन्नत तरीके गणितीय अधिक सही हैं, वे मिपमैप्स से बहुत तेजता लेते हैं। यह एक फ्लैट देखो देता है (इसे आजमाएं!)।

कुछ के लिए (मुझे समझ में नहीं आता) कारण सामान्य औसत विधि में एंटीअलाइजिंग और मिपमैप्स को तेज रखने के बीच सबसे अच्छा व्यापार होता है।

हालांकि, आप गामा-सुधार के साथ अपने mipmaps की गणना करना चाह सकते हैं। ओपनजीएल इसे अपने आप नहीं करता है। यह विशेष रूप से गहरे बनावट के लिए, वास्तविक दृश्य अंतर बना सकता है।

ऐसा करना आसान है। इस तरह एक साथ चार मूल्यों औसत के बजाय:

float average (float a, float b, float c, float d) 
{ 
    return (a+b+c+d)/4 
} 

यह करें:

float GammaCorrectedAverage (float a, float b, float c, float d) 
{ 
    // assume a gamma of 2.0 In this case we can just square 
    // the components. 
    return sqrt ((a*a+b*b+c*c+d*d)/4) 
} 

इस कोड को मान लिया गया है अपने रंग घटकों के लिए 1.

+12

दरअसल, "औसत चार पिक्सल" मिपमैप्स बनाने का सबसे अच्छा तरीका नहीं हो सकता है। http://www.number-none.com/product/Mipmapping,%20Part%201/index.html –

2

यह निर्भर करता है 0 की श्रेणी में होना करने के लिए सामान्यीकृत होते हैं आपके द्वारा प्रदर्शित संपत्तियों की तरह। लांज़ोस फ़िल्टर आदर्श कम-पास फ़िल्टर के करीब आता है और यदि आप मिप मैप्स की तरफ से तुलना करते हैं तो परिणाम ध्यान देने योग्य होते हैं। अधिकांश लोग तीखेपन के लिए अलियासिंग गलती करेंगे - फिर यह निर्भर करता है कि आपकी संपत्ति में उच्च आवृत्तियों को शामिल किया गया है - मैंने निश्चित रूप से उन मामलों को देखा है जहां बॉक्स फ़िल्टर एक अच्छा विकल्प नहीं था। लेकिन चूंकि मिप मैप तब रैखिक रूप से इंटरपोलेट किया जाता है, वैसे भी लाभ यह ध्यान देने योग्य नहीं हो सकता है। उल्लेख करने की एक और बात है - अधिकांश लोग बॉक्स फ़िल्टर का उपयोग करते हैं और आउटपुट को अगले चरण में इनपुट के रूप में पास करते हैं - इस तरह आप सटीकता और दृश्य ऊर्जा दोनों खो देते हैं (हालांकि गामा इस में मदद करेगा)। यदि आप कोड के साथ आ सकते हैं जो मनमाने ढंग से फ़िल्टर का उपयोग करता है (आपको लगता है कि उनमें से अधिकतर दो पास में विभाजित हैं) तो आप आम तौर पर फ़िल्टर कर्नेल को स्केल करेंगे और आधार बनावट से मिप मानचित्र स्तर का उत्पादन करेंगे, जो एक अच्छी बात है।

+0

उच्च रिज बनावट को सभी मिपमैप्स के स्रोत के रूप में रखने का अच्छा विचार। बस एक चीज जोड़ने के लिए: लांज़ोस और सीई बड़े कर्नेल के साथ रिंगिंग जोड़ते हैं। यहां ले जाने की परवाह है। –

1

इस प्रश्न के अतिरिक्त, मैंने पाया है कि कुछ पूरी तरह से अलग मिपमैपिंग (उन लोगों की बजाय जो सबसे अच्छा नीचे-स्केलिंग गुणवत्ता प्राप्त करने की कोशिश कर रहे हैं, जैसे लैंकोज़ फ़िल्टरिंग) एल्गोरिदम के कुछ बनावट पर अच्छे प्रभाव पड़ते हैं।

उदाहरण के लिए, कुछ बनावट जो उच्च आवृत्ति जानकारी का प्रतिनिधित्व करने वाले हैं, मैंने एक एल्गोरिदम का उपयोग करने का प्रयास किया है जो प्रत्येक पुनरावृत्ति के लिए चारों में से एक यादृच्छिक पिक्सेल लेता है। परिणाम बनावट पर निर्भर करते हैं और इसे क्या व्यक्त करना है, लेकिन मुझे पता चला है कि इससे कुछ पर बहुत प्रभाव पड़ता है; कम से कम जमीन बनावट के लिए।

मैंने कोशिश की है कि एक और विरोधाभासों को संरक्षित करने के लिए चार पिक्सल का सबसे विचलन कर रहा है। इसका भी कम उपयोग होता है, लेकिन वे मौजूद हैं।

इस तरह, मैंने प्रति बनावट मिपमैपिंग एल्गोरिदम चुनने का विकल्प लागू किया है।

संपादित करें: मैंने सोचा कि मैं अभ्यास में मतभेदों के कुछ उदाहरण प्रदान कर सकता हूं। यहाँ जमीन पर घास बनावट का एक टुकड़ा, वाम-पंथी चित्र मानक औसत mipmapping साथ किया जा रहा है, और सबसे दायीं ओर बेतरतीब mipmapping साथ किया जा रहा है:

Average mipmapping, trilinear filtering Random mipmapping, trilinear filtering

मुझे आशा है कि दर्शक कितना "स्पष्ट विस्तार" सराहना कर सकते हैं औसत mipmap में खो गया है, और इस तरह के बनावट के लिए यह कितनी चापलूसी दिखता है।

भी संदर्भ के लिए, यहाँ के साथ 4 × एनिस्ट्रोपिक फिल्टरिंग चालू ही नमूने (ऊपर जा रहा है त्रि-लीनियर) कर रहे हैं:

Average mipmapping, 4× anisotropic filtering Random mipmapping, 4× anisotropic filtering

एनिस्ट्रोपिक फिल्टरिंग अंतर कम स्पष्ट करता है, लेकिन यह है अभी तक वहीँ।

+0

अच्छा विचार। 'एक यादृच्छिक' 'निकटतम 'की तरह है लेकिन यादृच्छिकता के साथ अलियासिंग तोड़ने की कोशिश कर रहा है। 'निकटतम 'हमेशा तेज परिणाम देता है। –

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

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