2011-12-11 10 views
10

gamedev.SE पर हमने पाया कि flash implementation of Perlin-noise अन्य कार्यान्वयन से काफी विचलित दिखता है।फ्लर्लिन-शोर फ्लैश में कैसे लागू किया जाता है?

मुझे ऑनलाइन कोई कार्यान्वयन विवरण नहीं मिला, लेकिन मुझे आश्चर्य हुआ कि कोई भी बता सकता है कि फ़्लैश में पर्लिन-शोर के लिए कौन सी एल्गोरिदम का उपयोग किया जा रहा है।

जहां केवल numOctaves पैरामीटर बदल दिया गया है (1, 2, 4 बाएं से सही करने के लिए) bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true); इस तरह छवियों को उत्पन्न करता है का उपयोग करना:

perlin noise in flash

हालांकि पर्लिन शोर के अन्य कार्यान्वयन काफी अलग लग रहे हो। उदाहरण के लिए Wikipedia article about Perlin-noise से छवि:

Perlin noise as depicted on Wikipedia

इसके अलावा this Actionscript Implementation of Perlin-noise, काफी अलग परिणाम का उत्पादन के रूप में आप निम्न चित्रों में देख सकते हैं (Octaves 1, 2 और 4 बाएं से दाएं):

Perlin noise AS3

मुझे जो दिलचस्पी है वह केवल एक ऑक्टेट के साथ शोर का रूप है। फ्लैश कार्यान्वयन में आप स्पष्ट रूप से देख सकते हैं कि शोर अलग-अलग ब्लब्स की तरह कुछ बना रहा है।

महत्वपूर्ण: फ्लैश में उत्पन्न शोर fractalNoise पैरामीटर के लिए उपयोग करता है। यदि fractalNoisetrue पर सेट है, तो परिणाम वास्तव में विकिपीडिया और अन्य कार्यान्वयन के समान ही हैं।

एक बूलियन मान:

पैरामीटर का विवरण इस प्रकार पढ़ता है। यदि मान सही है, तो विधि फ्रैक्टल शोर उत्पन्न करती है; अन्यथा, यह अशांति उत्पन्न करता है। अशांति के साथ एक छवि ढाल में दिखाई देने वाली असंतोष है जो इसे तेज दृश्य प्रभावों जैसे कि आग और महासागर तरंगों का बेहतर अनुमान लगा सकती है।

हम देख सकते हैं, वे विधि है कि शोर उत्पन्न करता है वर्णन करने के लिए अशांति की बात करते हैं। तो मुझे लगता है कि सवाल यह है: क्या फ्लैश द्वारा उत्पन्न आउटपुट अभी भी पर्लिन-शोर है? या उस तरह के शोर के लिए कोई और नाम है? और सबसे महत्वपूर्ण बात यह है कि इस तरह शोर बनाने के लिए कोई कहां कार्यान्वयन कर सकता है?

उत्तर

1

यह एक looong समय के बाद से मैं किसी भी छवि प्रसंस्करण किया गया है, लेकिन शायद इस में से कुछ मदद मिलेगी:

संदर्भ: (और लोग हैं, जो जवाब पता ...) http://www.kelvinluck.com/assets/perlin_noise_experiments/, http://www.quasimondo.com/archives/000672.php, http://www.sjeiti.com/?p=305

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

आशा है कि कम से कम आपको सही दिशा में सेट कर देगा ...

+0

क्षमा करें, लेकिन ऐसा नहीं है। मैंने शोर की छवियों को उत्पन्न करने के लिए आपके लिंक में से किसी एक कोड का भी उपयोग किया है, जिसमें मुझे दिलचस्पी नहीं है। फ्लैश कार्यान्वयन अलग नहीं है क्योंकि यह पूर्णांक आधारित है (यह नहीं है) और यदि आप अंत में एक छवि आउटपुट करते हैं, आपके पास पूर्णांक होने जा रहे हैं, इसके आस-पास कोई रास्ता नहीं है। फ्लैश कार्यान्वयन आपको "अशांति" और "नियमित" शोर के बीच चुनने देता है। मुझे जो दिलचस्पी है वह ** अशांति ** के लिए एक एल्गोरिदम है। यदि आप "अशांति शोर" और "पर्लिन शोर" के लिए Google छवियों को खोजते हैं तो आप अंतर देखेंगे। – bummzack

4

स्पष्ट रूप से शब्दावली के बारे में कुछ भ्रम है। लेकिन तकनीकी रूप से, पर्लिन का वर्णन किया गया शोर किसी भी शिखर सम्मेलन के बिना एक एकल ऑक्टेट था। यह पहली विकिपीडिया छवि की तरह लग रहा था।

मुझे पूरा यकीन है कि लगभग कोई भी वास्तव में इसका उपयोग नहीं करता है। प्रत्येक व्यक्ति कुछ ऑक्टेट्स जोड़ता है, आमतौर पर कम आवृत्तियों पर बड़ा आयाम बना देता है। "कितना बड़ा" दृढ़ता है। वैसे भी, जब आप इसे जोड़ते हैं, तो इसे फ्रैक्टल शोर कहा जाता है।

"पर्लिन शोर" वास्तव में केवल इसका मतलब है कि आप यादृच्छिक ग्रेडियेंट का एक गुच्छा बनाते हैं, और उन्हें अलग करते हैं। लेकिन लोग पर्लिन शोर के रूप में फ्रैक्टल शोर का उल्लेख करते हैं, क्योंकि यह कई पर्लिन शोर लहरों का योग है।

ध्यान दें कि अक्सर संदर्भ कार्यान्वयन के रूप में, पर्लिन और सिंपलक्स शोर फ़ंक्शन आउटपुट मान 0 पर केंद्रित होते हैं और (कभी-कभी) [-1, +1] तक स्केल किए जाते हैं। इसके अलावा, ये समान हैं लेकिन बिल्कुल समान नहीं हैं - सिंपलक्स शोर थोड़ा अलग दिखता है। उन्हें कभी-कभी पर्लिन शोर के रूप में जाना जाता है, क्योंकि केन पर्लिन ने मूल रूप से पर्लिन शोर के बारे में सोचा था (उन्होंने इसे "शोर" कहा था), और उसके बाद बाद में कुछ अनावश्यकताओं को हटाकर इसे सरल शोर बनाया (जिसे उन्होंने "बेहतर शोर" कहा)। सिम्प्लेक्स अपने आप से थोड़ा गहरा दिखाई दे सकता है (ग्रिड अलग है इसलिए स्पष्ट रूप से यह अलग दिखता है) और उच्च-आयामी शोर के माध्यम से भी अनुभाग पर्लिन के समान व्यवहार नहीं करते हैं।

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