mentar ray - الگوریتم های رندرینگ-بخش اول



الگوریتم های رندرینگ در منتال ری- بخش اول


گرداورنده و مترجم : مریم ثابت قدم اصفهان


Introducing to  synthetic  Lighting

در توصیف الگوریتم های رندرینگ ، آنچه حائز اهمیت است؛ یادآوری این نکته می باشد که هدف نهایی رندرینگ تصاویر کامپیوتری ، خلق رئالیستیکی ( واقع گرایانه ) و شبیه سازی رفتار نور در جهان واقعی و تأثیر آن بر نما ( Surface ) است. در CG ، فرایند شیدینگ  ( Shading ) نما مبتنی بر دو مؤلفه است : شیدرهای نوری ( Lights ) و برهمکنش آنها با شیدرهای متریال نما .


به هر جهت  نور واقعی ، بسیار کاملتر و بدیهی تر از نور CG است. در CG به جهت حل مبحث چالش برانگیز شیدینگ های  واقع گرایانه ، الگوریتم های رندرینگ مختلفی و مدلهای شیدینگ پیچیده ای  در رندرهای سه بعدی  به جهت خلق واقع گرایانه تر مورد استفاده قرار می گیرند. رفتار پیچیده می تواند بخشی از شیوه بکار رفته در الگوریتم های raytracing پیشرفته نظیر رندرینگ روشنایی غیر مستقیم تصاویر HDR ) high dyanamic range ) باشد.


تفاوت اصلی میان ایجاد تصاویر سه بعدی Synthetic و مشاهده واقع گرایانه ، در زندگی حقیقی ما نمود می یابد. تشعشعات نوری که از یک منبع نوری به محیط گسیل شده و بر نما تأثیر می گذارد ؛ چه در نور مستقیم و چه در نور غیر مستقیم ، تعیین گر فرم شئ  و یا ابزار مشاهده است. ما همواره معتقدیم که روشنایی از یک منبع نوری به محیط گسیل می شود و در واقع ، نوری که از اشیاء مختلف انعکاس یافته ؛ جذب لنز یا سنسور دیجیتال دوربین یا فیلم می شود. در نمود واقعی از رندرینگ سه بعدی می توان به توصیفاتی از محیط پیرامون که توسط لنز دوربین گرداوری شده ( regardless of algorithms ) دست یافت.



Rendering under the Hood
رندرینگ ، فرایند خط پویش سازی( rasterizing)  اطلاعات بُرداری و گرافیکی سه بعدی به گرافیک دو بعدی پیکسلی به جهت خلق یک تصویر raster  است. برای خلق چنین تصویری از یک تصویر سه بعدی ، ابتدا نرم افزار مورد نظر باید از مقدار رنگ دو بعدی نمونه برداری ( Sample ) کرده و فرایند رنگی مازادی را انجام دهد و سپس میزان رنگ نهایی در هر پیکسل را مشخص کند. اصولاً نوع داده های یک تصویر raster، شامل میزان درجه خاکستری (grayscale ) است که بعنوان کانالهای رنگی همراه با نمانشان تصویری (Image viewer ) نظیر کانالهای RGB تفسیر می شوند.بطور کلی خط پویش سازی به فرایند تبدیل داده بُرداری به داده غیر برداری دو بعدی اطلاق می گردد.

در رندرینگ سه بعدی ، دو شیوه متفاوت از یکدیگر موجود است : رندرینگ مبتنی بر نرم افزار (raytarce algorithms ) و رندرینگ مبتنی بر سخت افزار ( بکارگیری یکی از دو برنامه مشترک API سه بعدی ؛ یعنی Open GL و Direct 3D به جهت بکارگیری GPU در حین انجام رندرینگ ).
در رندرینگ سخت افزاری ، نیازی به شناخت تنظیم کل صحنه نیست ؛ بلکه این GPU است که این فرایند را تحقق می بخشد.



Sampling and Filtering
منتال ری ، شیوه های متعددی جهت ارزیابی میزان رنگ پیکسل مورد توجه قرار می دهد. این ارزیابی ها بسیار حائز  اهمیت هستند ؛ زیرا از این طریق شما قادرید ویژگی رنگی نماهای مختلف را دریابید. چنین شیوه ارزیابی میزان رنگ ، ناشی از اختلاف میان انواع الگوریتم های رندری است. با این وجود ، همه آنها یک وجه اشتراک دارند : نمونه برداری ( Sampling ).


شکل زیر نمایانگر فرایند نمونه برداری رندرینگ نرم افزاری است.

 



ارزیابی قسمتی از نما ( Surface point ) شامل نمونه برداری میزان رنگ نسبت به صحنه سه بعدی (label  E ) و مبتنی بر سطح منظر دوربین ( label A ) است که با فریم بافرهای ( label B ) پیکسل مورد نظر  ) label C ) مطابقت دارد.


در رندرینگ نرم افزاری ، نمونه برداری لزوماً محدود به اندازه پیکسل مورد نظر و معرف میزان نهایی پیکسل نیست ؛ بلکه مرحله ای به سمت جستجوی مقدار پیکسل نهایی از طریق میزان آمیزش رنگ در انواع نمونه برداری ها است. بنابراین این نمونه برداری می تواند در یک سطح Sub – pixel رخ دهد ( Super Sampling ) ؛ و انواع پیکسل ها نیز می توانند در یک نمونه موجود باشند (Infra Sampling ) که دراین شرایط تنها یک نمونه در نظر گرفته می شود. در اینصورت مقداری رنگ در n.n پیکسل فراهم می آید که قطعاً نتیجه آن با کیفیت کمتر و زمان رندر سریع تری همراه است. این روش برای رندرگیری پیش نمایش سریع مورد استفاده قرار می گیرد.


Frame Buffers and Output
پس از تکمیل نمونه برداری و فیلترینگ ، این ارزیابی ها بعنوان یک raster data  درون فریم بافر ذخیره می شوند.فریم بافر این اطلاعات را تا زمان تکمیل رندرینگ نگاه می دارد تا به صورت یک فایل تصویری جهت ذخیره در یک دیسک آماده باشند. قبل از رایت این تصاویر بر روی یک دیسک ، ممکن است فریم بافر این داده را در هر پیکسل به افکت های پیش فرایند (post processing ) نظیر افکت های تابناک ( glow effects ) و افکت های کدر (blurring effects  ) تغییر دهد.
شکل بالا نمایانگر رابطه میان دروبین ، فریم بافر ، نمونه برداری و صحنه سه بعدی است. حتی بیانگر این مطلب است که می توان از تعداد بیشتری پیکسل نمونه برداری کرد.



Mental ray Rendering  Algorithms

سه الگوریتم رندرینگ اولیه وجود دارند که ممکن است با منتال ری و با آپشن های مختلف موجود در هر یک از الگوریتم ها مورد استفاده قرار گیرند. این الگوریتم ها اغلب، شیوه های مبتنی بر نرم افزار هستند ؛ زیرا ما نیز برای تحقق چنین رندرگیری وابسته به نرم افزار هستیم.


•    رندرینگ Scanline  که در برگیرنده سه الگوریتم scanline است.
-    الگوریتم رندر  scanline برگزیده که مبتنی بر نرم افزار است.
-    rasterizer  پیش از این بعنوان Rapid Motion مبتنی بر نرم افزار شناخته می شد.
-    OpenGl که به رندرینگ سرعت می بخشد و با کمک سخت افزار ، مبتنی بر نرم افزار است.
•    رندرینگ Raytracing که مبتنی بر نرم افزار است.
•    رندرینگ سخت افزاری که با کمک نرم افزار ، مبتنی بر سخت افزار است.

در ادامه مطالب ؛ بر شیوه های مبتنی بر نرم افزار و تفاوت هایشان معطوف شده و سپس رندرینگ سخت افزاری را مجدداً مورد توجه قرار می دهیم.
نرم افزار ، ارزیابی صحنه اش را به جهت الگوریتم مشخص می کند و اینکه چه الگوریتمی در ورودی (Input ) مورد استفاده قرار گیرد.


رندرر مسئول ارزیابی میزان رنگ و شیدر نما و خیلی چیزهای دیگر است که با هر یک ، منتال ری قادر به اتخاذ تصمیمی مبنی بر آن است که چگونه نما را تفسیر نموده و بر اساس آن ، تنظیم رندر خاص توسط کاربر را فراهم آورد. همچنین رندرر می تواند تصمیم بگیرد که در کجا و به چه شکل رندرینگ Raytracing یا رندرینگ Scanline را بکار برد.
آپشن های دیگری نیز هستند که به قابلیت های رندرر منتال ری وابسته اند . در اینجا برخی از آنها به صورت قطعه کوچکی از دگرش ( Conversion ) فایل تصویری از طریق بلاک آپشن XSI قابل مشاهده است.

 



تنظیم های منتال ری به همراه بلاک آپشن های درونی mi file مشخص شده اند. این آپشن ها بطور اخص ، تنظیمات مختلف رندر را کنترل می کنند. این تنظیمات می توانند قبل از رندرینگ بر روی خط فرمان ( Command line ) بنشینند .


گاهی الگوریتم های رندری مختلف منتال ری در کنار یکدیگر عمل رندر را انجام می دهند و یا ممکن است بعنوان الگوریتم های رندری یگانه مورد استفاده قرار گیرند. ممکن است منتال ری نیز تنها رندرینگ raytracing و یا رندرینگ Scanline و یا هر دو را بکار برد. این امر گاهی به استفاده از رندرینگ سخت افزاری برای افزایش کارایی نرم افزار می انجامد.در عین حال ممکن است شما یک رندر مبتنی بر سخت افزار را مشخص کنید . در اینصورت منتال ری بر استفاده از GPU برای پشتیبانی از فیچرهای سخت افزاری نظیر رندرینگ و شیدینگ پایه (basic shading ) تأکید می ورزد.


با مد نظر قرار دادن نرم افزار ، می توانید از فیچرهای پیشرفته تری نظیر روشنایی غیر مستقیم ( indirect illumination ) که توسط سخت افزار پشتیبانی نمی شوند ؛ استفاده کنید. آمیختن الگوریتم های مختلف مبتنی بر نرم افزار به جهت بکارگیری رندرینگ سخت افزار در کنار یکی از رندرینگ های raytracing یا scanline ، بسیار عمومیت دارد.


بطور کلی ، منتال ری شیوه ای را اتخاذ می کند که شما را در تعیین و انجام آخرین تغییرات (tweak ) الگوریتم های رندری به جهت کنترل رندرینگ مؤثر تر یاری می رساند. این به شما کمک می کند تا در هر پروژه یا صحنه ای ، بهترین شیوه را برگزینید. با تعیین یک الگوریتم و تنظیمات آن ، قادر هستید شیوه ای را بکار گیرید تا از کل امکانات و موجودیت مختلف یک صحنه نظیر انعکاس ، انکسار ، موشن بلور ، لنز دوربین ، روشنایی و خیلی چیزهای دیگر که تحت بلاک آپشن ها قابل دسترس اند و پشتیبانی الگوریتم شان را فراهم می آورند ؛ برخوردار شوید.



Choosing a Method : Scanline or Raytracing

زمانی که منتال ری ، آماده رندرگیری می شود ؛ همواره الگوریتم رندری scanline را بکار می برد ( مگر آنکه این الگوریتم غیرفعال باشد ). اگر در طی رندر ، منتال ری نشان داد که به raytrace نیاز است ؛ ( بطور مثال برای برطرف کردن یک بازتاب ) در اینصورت منتال ری به طور خودکار بر رندرینگ raytracing سوییچ می شود.


رندرینگ scanline ، نخستین پرتوهای اولیه  را از طریق پرسپکتیو دوربین درون صحنه ارزیابی می کند. به هر جهت ، این نخستین پرتوها  raytraced نیستند. بطور کلی ، تنها زمانی که  دومین پرتو به ردگیری (trace ) نیاز داشته باشد ؛ retracing شروع می شود. سپس با تکمیل ارزیابی پرتوی  raytrace  ، منتال ری تا زمانی که به raytrace بعدی نیاز باشد ؛ رندرینگ scanline را از سر می گیرد. در برخی رندرها حتی با فعال سازی scanlineنیز احتمال دارد که رندرینگ scanline هرگز مورد استفاده قرار نگیرد.لذا این منتال ری است که برای خود تصمیم می گیرد که چه وقت یک پرتو را ردگیری کرده و چه وقت رندرینگ scanline را که شما قابلیت هایش را تحت تنظیمات رندری فراهم کرده اید ؛ مورد استفاده قرار دهد.


فرایند scanline در صورت فعال سازی رندرینگ سخت افزاری ، شیوه های سخت افزاری را به جهت ارزیابی بهتر کل فیچرهایی که توسط سخت افزار پشتیبانی می شوند ؛ بکار می گیرد و میزان رنگ در فریم بافر را لود می کند. در صورت نیاز به raytracing ، ممکن است این فیچرهای raytrace نمونه ، رندرینگ  raytrace نرم افزاری را بکار گیرند . این ارزیابی به GPU و سپس به فریم بافر انتقال یافته و به شکل ریاضی به ارزیابی موجود اضافه می شود. به طور مثال ، میزان رنگی که برای انعکاس ها محاسبه شده به میزان رنگ غیرانعکاسی ( non reflective ) که پیش از این ، توسط سخت افزار مشخص شده است ؛ اضافه می شود.



Advantages and Disadvantages

رندرینگ raytracing و scanline در کیفیت دقت و شیوه ارزیابی  رنگ هر نمونه متفاوت هستند.
رندرینگ scanline تنها در تعیین مستقیم پلی گان ها در جلوی دوربین مورد نیاز است ؛ در حالی که رندرینگ raytracing می تواند نما را از طریق تابش مسیر نور خط  منظر  (line of sight ) همراه با انعکاس و انکسار آن بررسی نماید.


بنابراین منتال ری با رندرینگ scanline ، دیگر نیازی به شناخت اینکه در کجا نماهای اضافی قرار گرفته اند ؛ ندارد. بطور مثال در زمانی که raytracing غیر فعال است ؛ نماهای پشت دوربین هیچ تأثیری بر نقاط نمونه ندارند.ولی اگر raytracing فعال باشد ؛ این نماها ، رنگهای انعکاسی را ایجاد می کنند.


از آنجا که raytracing نیازمند اطلاعات بیشتری در مورد این نماهای مازاد خارج از دوربین است ؛ لذا بدیهی است که زمان مورد نیاز برای رندرینگ افزایش یابد. اینچنین در زمانی که شما تنها ملزم به ارزیابی نقطه به نقطه یک صحنه بدون در نظر گرفتن کل محیط ( انعکاس یافته ) هستید ؛ رندرینگ scanline مفهوم بارزتری در بردارد.

مقایسه میان رندرینگ سخت افزاری و هر دو الگوریتم نرم افزاری ، اصولاً میان پردازش CPU نرم افزار و پردازش GPU سخت افزار انجام شده و مزایا و معایب آن بر پایه ی قابلیت های سخت افزاری و بطور کلی اجرای رندرینگ سخت افزاری بررسی می شود.


رندرینگ سخت افزاری ، از نمونه برداری sub pixel یا رندرینگ با رزولیشن بالا پشتیبانی نمی کند و تنها ، شیدینگ های پیچیده را تحت پشتیبانی کوچک خود قرا رمی دهد. به اجمال، رندرینگ سخت افزاری  در مقایسه با قابلیت های نرم افزاری ، الگوریتم با صرفه ای تلقی نمی گردد و در هنگامی که سرعت ، فاکتور مهمی باشد و یا وقتی رشد فرایند پردازش تبدیل شیدرهای منتال ری به یک زیرساخت مبتنی بر سخت افزار کمک کند ؛ مورد استفاده قرار می گیرد.

 

©  Copyright 2010/ Animationdata.com & Partners


پی نوشت :


Raytracing:
محاسبه مسیرهای نوری طی شده توسط شعاع های نور در سیستم نوری با استفاده از قانون اسنل و فرمولهای مثلثات

Raster :
محل تصویر
 یک شبکه مختصاتی از نقاط آدرس پذیر حاوی تمام محلهای ممکنه بروی صفحه نمایش که در آن ؛ یک تصویر نمایشی می تواند ظاهر شود.

 

منبع : برگزیده ای از کتاب »

mental ray for Maya, 3D Max, and XSI

تاریخ آپلود : 19/04/2010
 

                                                               عناوین مطالب

آمار بازدیدکنندگان

آنلاین: 6
امروز: 620
دیروز: 292
ماه: 1670
سال: 9038
کل: 191197
آخرین بازدید: 21:56