| Ppmforge User Manual(0) | Ppmforge User Manual(0) |
نام (NAME)
ppmforge - جعلهای فرکتالی ابرها، سیارهها و آسمانهای پر ستاره
خلاصه دستور (SYNOPSIS)
ppmforge
[-clouds] [-night] [-dimension dimen] [-hour hour] [-inclination|-tilt angle] [-mesh size] [-power factor] [-glaciers level] [-ice level] [-saturation sat] [-seed seed] [-stars fraction] [{-xsize|-width} width] [{-ysize|-height} height]
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
دستور ppmforge سه نوع «جعل فرکتالی تصادفی» تولید میکند؛ اصطلاحی که توسط ریچارد اف. واس (Richard F. Voss) از مرکز تحقیقاتی تامس جی. واتسون آیبیام برای تصاویر بهظاهر واقعگرایانه از اجسام طبیعی که توسط الگوریتمهای ساده با بهکارگیری تصادفیبودن و خودمتشابهی فرکتالی تولید میشوند، ابداع شده است. روشهای مورد استفاده توسط ppmforge اساساً همان روشهایی هستند که توسط واس[1] ارائه شدهاند، بهویژه روش سنتز طیفی که با جزئیات بیشتر توسط دیتمار زاوپه[2] (Dietmar Saupe) شرح داده شده است.
این برنامه دو نوع تصویر تولید میکند: سیارات و ابرها، که صرفاً رندرهای متفاوتی از دادههای تولیدشده به روشی کاملاً یکسان هستند و یکپارچگی ساختار فرکتالی این اشیای بسیار متفاوت را نشان میدهند. نوع سوم تصویر، یعنی یک آسمان پر ستاره، مستقیماً از اعداد شبهتصادفی سنتز میشود.
تولید سیارات یا ابرها با آمادهسازی آرایهای از دادههای تصادفی در حوزه فرکانس آغاز میشود. اندازه این آرایه، یعنی «اندازه مش» (mesh size)، میتواند با گزینه -mesh تنظیم شود؛ هر چه مش بزرگتر باشد، تصاویر واقعگرایانهتر خواهند بود اما زمان محاسبات و حافظه مورد نیاز به نسبت توان دوم اندازه مش افزایش مییابد. بُعد فرکتالی، که میتوانید با گزینه -dimension آن را تعیین کنید، زبری ناهمواریهای روی سیاره یا مقیاس جزئیات در ابرها را مشخص میکند. با افزایش بعد فرکتالی، مؤلفههای فرکانس بالای بیشتری به مش تصادفی اضافه میشوند.
پس از تولید مش، یک تبدیل فوریه دوبعدی معکوس روی آن انجام میشود. این تبدیل، دادههای تصادفی اولیه حوزه فرکانس را به دامنههای مکانی تبدیل میکند. ما مؤلفههای حقیقی حاصل از تبدیل فوریه را به اعدادی بین 0 تا 1 متناظر با هر نقطه از مش مقیاسبندی میکنیم. میتوانید این عدد را با اعمال یک «مقیاس قانون توان» از طریق گزینه -power بیشتر تغییر دهید. مقیاس خنثی (1) اعداد را بدون تغییر میگذارد؛ مقیاس توانی 0.5 جذر اعداد مش را میگیرد، در حالی که مقیاس توانی 3 اعداد مش را با مکعب آنها جایگزین میکند. مقیاسبندی قانون توان را میتوان به بهترین شکل با تجسم دادهها بهعنوان ارتفاع ناهمواریها درک کرد؛ توانهای کمتر از 1 چشماندازهایی با پرتگاههای عمودی شبیه به درههای فرسایشیافته توسط یخچالها ایجاد میکنند؛ توانهای بزرگتر از یک، منارهها و برجکهای نوکتیز قلعههای افسانهای میسازند (که برای بهترین نتیجه به اندازههای مش بزرگ و وضوح بالا نیاز دارند).
پس از این محاسبات، آرایهای با اندازه تعیینشده حاوی اعدادی در بازه 0 تا 1 خواهیم داشت. ppmforge به صورت زیر عمل میکند:
تصادفیبودن در تصویر پیش از نسخه Netpbm 10.37 (دسامبر 2006) محدود است -- اگر برنامه را دو بار در یک ثانیه یکسان اجرا کنید، ممکن است خروجی کاملاً مشابهی دریافت کنید.
- Clouds
- یک نگاشت رنگی ایجاد میشود که با افزایش آمیختگی (رنگزدایی) رنگ آبی با سفید، از آبی خالص تا سفید متغیر است. اعداد کمتر از 0.5 به رنگ آبی درمیآیند و اعداد بین 0.5 و 1.0 با درجات متناظر از رنگ سفید رنگآمیزی میشوند که مقدار 1.0 سفید خالص است.
- Planet
- مش روی یک کره تصویر میشود. مقادیر کمتر از 0.5 به عنوان آب و مقادیر بین 0.5 و 1.0 به عنوان خشکی در نظر گرفته میشوند. نواحی آبی بر اساس عمق آب و خشکیها بر اساس ارتفاعشان رنگآمیزی میشوند. از دادههای تصادفی عمق برای ایجاد ابرها بر فراز اقیانوسها استفاده میشود. جوی تقریباً مشابه زمین شبیهسازی میشود؛ جذب نور آن محاسبه میگردد تا هالهای آبیرنگ در لبههای قرص سیاره ایجاد شود. تابعی که بر اساس عرض جغرافیایی از 0 تا 1 افزایش مییابد با ارتفاع محلی تعدیل میشود تا کلاهکهای یخی قطبی را تشکیل دهد -- ناهمواریهای مرتفع، یخچالها را به فاصله دورتری از قطب امتداد میدهند. بر اساس موقعیت ستاره نسبت به ناظر، رنگ ظاهری هر پیکسل از سیاره با ردگیری پرتو (ray-tracing) از ستاره به سیاره و سپس به ناظر و با اعمال یک مدل نورپردازی که مجموع نور محیطی (ambient) و بازتاب پخشی (diffuse reflection) است محاسبه میشود (برای بیشتر سیارات نور محیطی صفر است، زیرا ستاره اولیه آنها تنها منبع تابش نور است). دادههای تصادفی اضافی برای ایجاد ستارهها در اطراف سیاره استفاده میشوند.
- Night
- دنبالهای از اعداد شبهتصادفی برای تولید ستارهها با چگالی تعیینشده توسط کاربر استفاده میشود.
تصاویر ابرها همیشه حاوی 256 رنگ یا کمتر هستند و میتوان آنها را در اکثر دستگاههای مبتنی بر نگاشت رنگی (color mapped) بدون پردازش بیشتر نمایش داد. تصاویر سیارات اغلب شامل دهها هزار رنگ هستند که باید پیش از کدگذاری در یک قالب مبتنی بر نگاشت رنگ، با pnmquant یا ppmdither فشرده شوند. اگر وضوح نمایش به اندازه کافی بالا باشد، ppmdither بهطور کلی سیارات زیباتری تولید میکند. pnmquant تمایل به ایجاد نوارهای رنگی گسسته، بهویژه در اقیانوسها دارد که غیرواقعی و نامطلوب هستند. تعداد رنگها در تصاویر آسمان شب که با گزینه -night ایجاد میشوند به مقدار مشخصشده برای -saturation بستگی دارد. مقادیر کوچک توزیع دمای رنگ ستارهها را محدود کرده و تعداد رنگهای تصویر را کاهش میدهند. اگر مقدار -saturation برابر با 0 تنظیم شود، هیچکدام از ستارهها رنگی نخواهند بود و تصویر حاصل هرگز بیش از 256 رنگ نخواهد داشت. تصاویر آسمان شب با رنگهای مختلف ستارهها اغلب زمانی بهترین ظاهر را دارند که به جای pnmquant یا ppmdither، کاهش رنگ آنها توسط pamdepth انجام شود. مقادیر newmaxval برابر با 63، 31 یا 15 را با pamdepth امتحان کنید تا تعداد رنگهای تصویر به 256 یا کمتر کاهش یابد.
علاوه بر گزینههای مشترک در تمام برنامههای مبتنی بر libnetpbm (بهویژه -quiet، به گزینههای مشترک مراجعه کنید)، ppmforge گزینههای خط فرمان زیر را تشخیص میدهد:
میتوانید هر گزینهای را به کوتاهترین پیشوند یکتای آن خلاصه کنید.
- -clouds
- تولید ابرها. تصویری از ابرهای فرکتالی تولید میشود. انتخاب clouds مقدار پیشفرض بُعد فرکتال را روی 2.15 و ضریب مقیاس توان (power scale factor) را روی 0.75 تنظیم میکند.
- -dimension dimen
- بُعد فرکتال را روی مقدار مشخصشده dimen تنظیم میکند که میتواند هر عدد حقیقی بین 0 و 5 (شامل خود آنها) باشد. ابعاد فرکتال بالاتر تصاویری «آشوبناکتر» ایجاد میکنند که برای داشتن ظاهری مناسب، به وضوح خروجی بالاتر و اندازه مش FFT بزرگتری نیاز دارند. اگر بُعدی تعیین نشود، برنامه هنگام تولید سیارات از 2.4 و برای ابرها از 2.15 استفاده میکند.
- -glaciers level
- تنظیم ممیز شناور level میزان اثرگذاری ارتفاع زمینچهر بر پدیدار شدن یخ در عرضهای جغرافیایی پایینتر را کنترل میکند. مقدار پیشفرض 0.75 باعث میشود کلاهکهای قطبی در امتداد مناطق مرتفع به سمت خط استوا گسترش یابند و مانند زمین، یخچالهای طبیعی را در بلندترین کوهها تشکیل دهند. مقادیر بالاتر صفحات یخی ایجاد میکنند که بخشهای بیشتری از سطح خشکی را میپوشانند و سیاراتی را در میانه یک عصر یخبندان شبیهسازی میکنند. مقادیر پایینتر کسلکننده هستند و منجر به مرزهای کلاهک یخی غیرواقعی با دقت هندسی بیش از حد میشوند.
- -hour hour
- هنگام تولید یک سیاره، ppmforge از hour به عنوان «زاویه ساعتی در نصفالنهار مرکزی» استفاده میکند. برای نمونه، اگر -hour 12 را مشخص کنید، سیاره کاملاً روشن خواهد بود که معادل ظهر در نصفالنهار واقع در مرکز تصویر است. میتوانید هر مقدار ممیز شناوری بین 0 و 24 را برای hour مشخص کنید، اما مقادیری که بیشتر سیاره را در تاریکی قرار میدهند (0 تا 4 و 20 تا 24) منجر به ایجاد هلالهایی میشوند که با وجود زیبایی، در برابر حجم محاسبات مورد نیاز، پیکسلهای روشن چندانی به دست نمیدهند. اگر هیچ گزینه -hour مشخص نشود، یک زاویه ساعتی تصادفی با این سوگیری انتخاب میشود که تنها 25٪ از تصاویر تولید شده هلال باشند.
- -ice level
- وسعت کلاهکهای یخی قطبی را بر اساس مقدار ممیز شناور level دادهشده تنظیم میکند. مقدار پیشفرض 0.4 کلاهکهای یخی شبیه به زمین ایجاد میکند. مقادیر کوچکتر حجم یخ را کاهش میدهند، در حالی که مقادیر بزرگتر -ice کلاهکهای یخی برجستهتری میسازند. مقادیر به اندازه کافی بزرگ، مانند 100 یا بیشتر، همراه با مقادیر کوچک برای -glaciers (مثلاً 0.1) «گویهای یخی» مانند قمر اروپا ایجاد میکنند.
- -inclination|-tilt angle
- زاویه انحراف محوری سیاره نسبت به ستاره مادرش روی angle تنظیم میشود که میتواند هر مقدار ممیز شناوری از -90 تا 90 باشد. زاویه انحراف را میتوان مشخصکننده «فصل» فعلی سیاره بر حسب درجه در نظر گرفت، یا دقیقتر، عرض جغرافیایی که در آن ستاره در ظهر محلی از سرسو (سمتالرأس) عبور میکند. اگر 0 باشد، سیاره در اعتدالین قرار دارد و ستاره مستقیماً بالای خط استوا است. مقادیر مثبت نشاندهنده تابستان در نیمکره شمالی و مقادیر منفی نشاندهنده تابستان در نیمکره جنوبی هستند. برای نمونه، زاویه انحراف زمین در انقلاب ژوئن حدود 23.5، در اعتدالین مارس و سپتامبر 0، و در انقلاب دسامبر -23.5 است. اگر زاویه انحرافی مشخص نشود، مقداری تصادفی بین -21.6 و 21.6 درجه انتخاب میشود.
- -mesh size
- یک مش از اندازه size در size برای تبدیل فوریه سریع (FFT) استفاده خواهد شد. توجه داشته باشید که میزان حافظه مورد نیاز و زمان محاسبات با مجذور size افزایش مییابند؛ اگر اندازه مش را دو برابر کنید، برنامه چهار برابر حافظه مصرف کرده و زمان اجرای آن چهار برابر خواهد شد. مش پیشفرض 256x256 است که تصاویری با ظاهر معقول تولید میکند و برای آرایه 256x256 از اعداد مختلط با دقت یگانه مورد نیاز FFT، نیم مگابایت حافظه مصرف میکند. در سیستمهایی با ظرفیت حافظه محدود، ممکن است لازم باشد اندازه مش را کاهش دهید تا با کمبود RAM مواجه نشوید. افزایش اندازه مش تصاویر زیباتری تولید میکند؛ این تفاوت بهویژه هنگام تولید تصاویر با وضوح بالا و ابعاد فرکتال نسبتاً بزرگ (بین 2.2 و 3) بسیار محسوس میشود.
- -night
- یک آسمان پرستاره تولید میشود. ستارهها با همان الگوریتمی ساخته میشوند که برای ستارههای اطراف تصاویر سیارات استفاده میشود، اما خروجی منحصراً شامل ستارهها خواهد بود.
- -power factor
- «ضریب توان» (power factor) مورد استفاده برای مقیاسبندی ارتفاعات سنتزشده از FFT را روی factor تنظیم میکند که میتواند هر عدد ممیز شناور بزرگتر از صفر باشد. اگر ضریبی مشخص نشود، در صورت تولید سیاره مقدار پیشفرض 1.2 و در صورت انتخاب ابرها با گزینه -clouds مقدار 0.75 استفاده میشود. نتیجه سنتز تصویر FFT، آرایهای از مقادیر ارتفاع بین 0 و 1 است. یک ضریب توان غیر از یک، هر یک از این ارتفاعات را به توان مشخصشده میرساند. برای نمونه، ضریب توان 2 هر مقدار را به توان دو میرساند (مربع میکند)، در حالی که ضریب توان 0.5 هر مقدار را با جذر آن جایگزین میکند. (توجه داشته باشید که به توان رساندن مقادیر بین 0 و 1، مقادیری تولید میکند که همچنان در همان بازه باقی میمانند.) ضریبهای توان کمتر از 1، تغییرات ارتفاعی در مقیاس بزرگ را به قیمت تغییرات جزئی برجسته میکنند. ضریبهای توان بزرگتر از 1، ناهمواری زمینچهر را افزایش میدهند و مانند ابعاد فرکتال بالا، ممکن است برای داشتن ظاهری مطلوب به اندازه مش FFT بزرگتر یا وضوح صفحه بالاتر نیاز داشته باشند.
- -saturation sat
- میزان
اشباع رنگ
ستارههایی
را کنترل
میکند که
اطراف
تصاویر
سیارات را
احاطه کرده
یا
آسمانهای
پرستاره
تولیدشده
با گزینه -night
را پر
میکنند.
مقدار
پیشفرض 125
ستارههایی
شبیه به
نمای آسمان
با چشم
غیرمسلح از
سطح زمین
ایجاد
میکند.
ستارهها
کمنور
هستند؛
تنها
درخشانترین
آنها
سلولهای
مخروطی
شبکیه چشم
انسان را
فعال
میکنند و
باعث درک
رنگ
میشوند.
مقادیر
بالاتر sat
نمای
ستارهها
را از مدار
زمین تقریب
میزنند،
جایی که
انطباق
بهتر با
تاریکی،
نبود تابش
آسمان شب (skyglow)
و تمرکز نور
ستاره روی
ناحیه
کوچکتری
از شبکیه به
لطف عدم
وجود تلاطم
جوی، درک
رنگ را
بهبود
میبخشد.
مقادیر
بزرگتر از
250
آسمانهای
«علمیتخیلی»
ایجاد
میکنند که
اگرچه زیبا
هستند، اما
در این
کیهان رخ
نمیدهند.
به لطف قانون عکس مجذور توأم با گرایش طبیعت به میانهروی، به ازای هر ستاره درخشان، ستارههای بسیار بسیار زیادی از نوع کمنور وجود دارد. این رابطه جمعیتی بهطور دقیق در آسمانهای ایجاد شده توسط ppmforge بازتاب یافته است. ستارههای کمنور و کمجرم بسیار بیشتر از ستارههای پرنور و پرجرم عمر میکنند، بنابراین به ازای هر غول آبی، تعداد بسیار زیادی ستاره متمایل به قرمز وجود دارد. این رابطه توسط ppmforge حفظ میشود. میتوانید با تعیین یک مقدار منفی برای sat، این نسبت را معکوس کرده و آسمان را آنگونه که در یک کهکشان ستارهفشان دیده میشود، شبیهسازی کنید.
- -seed num
- دانه (seed) مولد اعداد تصادفی را روی عدد صحیح num تنظیم میکند. دانهای که برای ساخت هر تصویر استفاده میشود در خروجی استاندارد نمایش داده میشود (مگر اینکه با گزینه -quiet خاموش شده باشد). تصاویری که با همان دانه تولید شوند کاملاً یکسان خواهند بود. اگر گزینه -seed تعیین نشود، یک دانه تصادفی مشتقشده از تاریخ و زمان انتخاب خواهد شد. مشخص کردن یک دانه به صورت صریح به شما امکان میدهد تصویری را که مورد پسندتان واقع شده است، با وضوح بالاتر یا پارامترهای نمایشی متفاوت دوباره رندر کنید.
- -stars fraction
- درصد پیکسلها (بر حسب دهم درصد) را که به صورت ستاره پدیدار میشوند، خواه در اطراف یک سیاره یا در تمام کادر تصویر (در صورت مشخص شدن -night)، تعیین میکند. مقدار پیشفرض fraction برابر 100 است.
- -xsize|-width width
- عرض تصویر تولید شده را روی width پیکسل تنظیم میکند. عرض پیشفرض 256 پیکسل است. عرض تصاویر حداقل باید به اندازه ارتفاع آنها باشد؛ اگر عرضی کمتر از ارتفاع مشخص شود، به اندازه ارتفاع افزایش مییابد. اگر حتماً به یک تصویر باریک و کشیده نیاز دارید، تصویری مربعشکل با ppmforge ایجاد کنید، سپس از pamcut برای استخراج بخشی با شکل و اندازه مورد نظرتان بهره بگیرید.
- -ysize|-height height
- ارتفاع تصویر تولید شده را روی height پیکسل تنظیم میکند. ارتفاع پیشفرض 256 پیکسل است. اگر ارتفاع مشخصشده بیش از عرض باشد، عرض افزایش مییابد تا برابر با ارتفاع شود.
الگوریتمها نیازمند آن هستند که عرض تصویر خروجی حداقل برابر با ارتفاع آن باشد، و عرض عددی زوج از پیکسلها باشد. این محدودیتها در صورت نیاز با افزایش اندازهٔ تصویر درخواستی اعمال میشوند.
ممکن است مجبور شوید در سیستمهایی با اعداد صحیح ۱۶ بیتی و معماریهای اشارهگر بخشبندیشده (segmented pointer)، اندازهٔ مش FFT را کاهش دهید.
همچنین ببینید (SEE ALSO)
pamcut(1)، pamdepth(1)، ppmdither(1)، pnmquant(1)، ppm(1)
- [1]
- Voss, Richard F., ``Random Fractal Forgeries,'' in Earnshaw et. al., Fundamental Algorithms for Computer Graphics, Berlin: Springer-Verlag, 1985.
- [2]
- Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images, New York: Springer Verlag, 1988.
نویسندگان (AUTHORS)
John Walker
Autodesk SA
Avenue des Champs-Montants 14b
CH-2074 MARIN
Suisse/Schweiz/Svizzera/Svizra/Switzerland
Usenet:kelvin@Autodesk.com
Fax:038/33 88 15
Voice:038/33 76 33
بدینوسیله اجازهٔ استفاده، کپی، تغییر و توزیع این نرمافزار و مستندات آن برای هر مقصودی و بدون پرداخت هزینه، بدون هیچگونه شرط یا محدودیتی اعطا میشود. این نرمافزار «همانگونه که هست» (as is) و بدون هرگونه ضمانت صریح یا ضمنی ارائه میگردد.
تبلیغ نرمافزاری (PLUGWARE!)
اگر به این دست موضوعات علاقهمندید، ممکن است از «James Gleick's Chaos--The Software» برای MS-DOS نیز لذت ببرید، که به قیمت ۵۹٫۹۵ دلار از فروشگاههای نرمافزاری محلی یا مستقیماً از Autodesk, Inc.، به نشانی Attn: Science Series, 2320 Marinship Way, Sausalito, CA 94965, USA قابل تهیه است. تلفن: (800) 688-2344 (رایگان) یا از خارج ایالات متحده (415) 332-2344 داخلی 4886. نمابر: (415) 289-4718. نرمافزار «Chaos--The Software» شامل یک تولیدکنندهٔ جامعتر جعل فراکتالی است که چشماندازهای سهبعدی و همچنین ابرها و سیارات را ایجاد میکند، بهعلاوهٔ پنج ماژول دیگر که جنبههای دیگر آشوب را بررسی میکنند. راهنمای کاربرِ بیش از ۲۰۰ صفحهای آن شامل مقدمهای از James Gleick و توضیحات مفصل Rudy Rucker دربارهٔ ریاضیات و الگوریتمهای استفادهشده در هر برنامه است.
منبع سند (DOCUMENT SOURCE)
این صفحهٔ راهنما توسط ابزار «makeman» از Netpbm و بر اساس منبع HTML تولید شده است. مستندات اصلی در نشانی زیر در دسترس است:
| 27 March 2021 | netpbm documentation |