معرفی فرایند رندر سه بعدی – 3D Rendering
معرفی فرایند رندر سه بعدی – 3D Rendering
رندر سه بعدی ( 3D Rendering )، یک فرایند گرافیک سه بعدی کامپیوتری است که طی آن مدل های سیمی سه بعدی تبدیل به تصاویر دو بعدی می شوند و دارای افکت های واقع گرایانه سه بعدی یا رندر غیرواقعی روی یک کامپیوتر هستند.
روش های رندر سه بعدی – 3D Rendering
رندر، فرایند نهایی در ایجاد تصاویر دو بعدی یا انیمیشن از یک صحنه است. این فرایند را می توان با گرفتن عکس یا فیلم از صحنه بعد از انجام دکوراسیون مقایسه کرد. چندین روش مختلف و خاص توسعه یافته است. این روش ها شامل رندر سیمی غیر واقع گرایانه از طریق رندر چندضلعی و تکنیک های پیشرفته مانند رندر Scanline، Ray Tracing یا Radiosity هستند. عمل رندر برای یک تصویر ممکن است در کسری از ثانیه انجام شود یا روزها به طول بیانجامد. بطور کلی، روش های مختلف یا برای رندر سه بعدی واقع گرایانه مناسب هستند، یا رندر بلادرنگ.
رندر بلادرنگ
رندر سه بعدی برای رسانه های تعاملی مانند بازی ها و شبیه سازی ها به صورت فوری محاسبه شده و و با نرخ حدود 20 تا 120 فریم در ثانیه نمایش داده می شود. در رندر فوری، هدف این است که تا جای ممکن بیشترین اطلاعاتی که چشم انسان می تواند در کسری از ثانیه (در یک فریم. در یک انیمیشن با 30 فریم در ثانیه، هر فریم شامل یک سی ام ثانیه است) پردازش کند، نمایش داده شود. هدف اصلی این است که بالاترین مقدار واقع گرایی با حداقل سرعت رندر مورد قبول (معمولا 24 فریم در ثانیه است، زیرا این حداقل مقداری است که چشم انسان نیاز به دیدن دارد تا بتواند با موفقیت توهم حرکت را خلق کند) بدست آید. در واقع به صورتی که چشم انسان دنیا را می بیند می توان بهره برداری کرد، در نتیجه تصویر نهایی لزوما تصویری از دنیای واقعی نیست، بلکه تصویری بسیار نزدیک به آن است که چشم انسان می تواند آن را تحمل کند. نرم افزار رندر می تواند اینچنین جلوه های بصری را به صورت نور لنز، عمق میدان یا موشن بلور شبیه سازی کند. اینها تلاش هایی برای شبیه سازی پدیده بصری ناشی از خصوصیات نوری دوربین و چشم انسان است. این افکت ها می توانند صحنه را طبیعی تر جلوه دهند، حتی اگر این افکت تنها از دوربین تولید شده باشد. این روش پایه ای است که در بازی ها، دنیاهای تعاملی و زبان مدل سازی واقعیت مجاری (VRML) مورد استفاده قرار می گیرد. افزایش روز افزون قدرت پردازش کامپیوترها باعث شده است مقدار واقع گرایی بیشتری حتی برای رندر فوری و در زمان حقیقی بدست آید، از جمله تکنیک هایی مانند رندر HDR. رندر فوری معمولا از روش چندضلعی است و کارت گرافیک کامپیوتر به آن کمک می کند.
رندر غیر بلادرنگ
انیمیشن هایی که برای رسانه های غیر تعاملی مانند فیلم و ویدئو هستند، بسیار آهسته تر رندر می شوند. با استفاده از رندر غیر فوری می توان با قدرت پردازش محدود، کیفیت تصویر بالاتری بدست آورد. زمان مورد نیاز برای رندر کردن یک فریم ممکن است بین چند ثانیه تا چند روز برای صحنه های پیچیده باشد. فریم های رندر شده روی یک دیسک سخت ذخیره می شوند و سپس می توان آنها را به رسانه های دیگر مانند نوار فیلم انیمیشنی یا دیسک نوری انتقال داد. سپس این فریم ها با نرخ فریم بالای 24، 25 یا 30 فریم در ثانیه پشت سر هم نمایش داده می شوند تا توهم حرکت بدست آید.
وقتی هدف واقع گرایی باشد، از تکنیک هایی مانند Ray Tracing یا Radiosity استفاده می شود. این روش اصلی استفاده شده در رسانه دیجیتال و آثار هنرمندان است. تکنیک هایی برای شبیه سازی افکت های طبیعی نیز توسعه یافته اند، مانند تعامل نور با انواع مواد. نمونه هایی از این تکنیک ها شامل particle systems (سیستم ذرات – که می تواند باران، دود یا آتش را شبیه سازی کند)، volumetric sampling (نمونه برداری حجمی – برای شبیه سازی مه، غبار و دیگر افکت های جوی و فضایی دیگر)، caustics (برای شبیه سازی تمرکز نور روی سطوح ناهموار شکننده نور، مانند موج های نوری که در کف استخر شنا دیده می شود) و subsurface scattering (پراکندگی زیرسطحی – برای شبیه سازی نور بازتاب شده در داخل حجم اشیای جامد، مانند پوست انسان) است.
به دلیل تنوع پیچیده فرایند های فیزیکی که شبیه سازی می شوند، فرایند رندر سه بعدی از نظر محاسباتی بسیار سنگین است. در طی سال های اخیر، قدرت پردازش کامپیوترها به طور فزاینده ای افزایش یافته است و راه را برای سطح بالاتری از رندرهای واقع گرایانه هموار کرده است. استودیوهای فیلم که انیمیشن های کامپیوتری تولید می کنند معمولا از Render Farm استفاده می کنند تا تصاویر را با ترتیب زمانی تولید کنند. هرچند کاهش قیمت های سخت افزار باعث شده است ساخت مقادیر کوچک انیمیشن های سه بعدی روی یک سیستم کامپیوتری خانگی امکان پذیر شود. خروجی رندرر اغلب تنها به عنوان بخش کوچکی از یک صحنه کامل انیمیشنی استفاده می شود. بسیاری از لایه های متریال را می توان به صورت جداگانه رندر کرد و با استفاده از نرم افزارهای ترکیب، در تصویر نهایی ادغام کرد.
مدل های انعکاس و سایه زنی
از مدل های Reflection، Scattering و Shading برای توصیف ظاهر یک سطح استفاده می شود. گرچه این مسائل ممکن است به خودی خود مسئله جداگانه ای به نظر برسند، اما تقریبا همیشه در محتوای رندرینگ مورد مطالعه قرار می گیرند. گرافیک های کامپیوتری سه بعدی مدرن به شدت روی یک مدل انعکاس ساده به نام مدل انعکاس Phong تکیه دارند (نباید آن را با سایه زنی Phong اشتباه گرفت). یک مفهوم مهم در انعکاس نور، ضریب شکست است. در اکثر برنامه نویسی های سه بعدی، از عبارت “index of refraction” (به اختصار IOR) استفاده می شود. سایه زنی را می توان به دو مسئله متعامد تقسیم کرد که معمولا به صورت جداگانه مورد مطالعه قرا می گیرند:
انعکاس/پراکندگی – طریقه تعامل نور با سطح در یک نقطه معین.
سایه زنی – تنوع خصوصیات اجناس روی سطح.
انعکاس
انعکاس یا پراکندگی رابطه بین روشنایی ورودی و خروجی در یک نقطه معین است. پراکندگی معمولا بر حسب تابع توزیع پراکندگی دوطرفه یا BSDF توصیف می شود. تکنیک های محبوب رندر انعکاس در گرافیک سه بعدی کامپیوتری شامل موارد زیر است:
Flat shading: یک تکنیک که هر ضلع از شیء را بر مبنای منبع نور عمود بر ضلع و موقعیت و شدت آن سایه زنی می کند.
Gouraud shading: این تکنیک که در سال 1971 توسط H. Gouraud ابداع شد، یک تکنیک سایه زنی بردار منبع-آگاه است که سطوح سایه دار یکدست را شبیه سازی می کند.
Texture mapping: یک تکنیک برای شبیه سازی مقدار زیادی از جزئیات سطح توسط تصاویر Mapping (تکسچرها) روی اضلاع است.
Phong shading: توسط Bui Tuong Phong ابداع شده است و برای شبیه سازی هایلایت های براق و سطوح سایه دار یکدست استفاده می شود.
Bump mapping: توسط Jim Blinn ابداع شده است و یک تکنیک اختلال طبیعی است که برای شبیه سازی سطوح دارای چین و چروک استفاده می شود.
Cel shading: یک تکینک که برای شبیه سازی ظاهر انیمیشن کشیده شده با دست مورد استفاده قرار می گیرد.
سایه زنی
سایه زنی یا Shading مربوط به توزیع انواع پراکندگی ها روی سطح است (مثلا کدام تابع پراکندگی در کجا اعمال شود). توضیحات این نوع معمولا توسط یک برنامه به نام Shader بیان می شود. توجه داشته باشید که کمی ابهام وجود دارد، زیرا کلمه “shader” گاهی اوقات برای برنامه هایی به کار می رود که تنوع هندسی محلی را توصیف می کنند) یک نمونه ساده از سایه زنی، Texture mapping است که با استفاده از یک تصویر، رنگ Diffuse هر نقطه از سطح را تعیین می کند و جزئیات بیشتری به آن می دهد.
انتقال
انتقال یعنی طریقه حرکت روشنایی در یک صحنه از جایی به جای دیگر. قابلیت رویت، یک مولفه اصلی در انتقال نور است.
تصویر سازی یا Projection
اشیای سه بعدی سایه دار باید مسطح شوند تا دستگاه نمایش – مثلا یک مانیتور – بتواند آن را در دو بعد نشان دهد. به این فرایند، 3D Projection گفته می شود. این کار از طریق Projection و برای بیشتر برنامه ها، از طریق Perspective Projection یا تصویر پرسپکتیو صورت می گیرد. ایده اصلی Projection پرسپکتیو این است که اشیایی که دورتر از چشم قرار دارند کوچکتر از اشیایی که نزدیک تر هستند دیده می شوند. برنامه ها با ضرب کردن یک ثابت اتساع به توان منفی فاصله از ناظر، تصویر پرسپکتیو را تولید می کنند. ثابت اتساع 1 یعنی هیچ پرسپکتیوی وجود ندارد. ثابت اتساع بالا می تواند اثر چشم ماهی یا Fish-Eye ایجاد کند که باعث آغاز اعوجاج تصویر می شود. تصویر ارتوگرافیک عموما در برنامه های CAD و CAM مورد استفاده قرار می گیرد که مدل سازی علمی نیاز به اندازه گذاری دقیق و حفظ بعد سوم دارد.
منابع: ویکی پدیا انگلیسی ، آریا گستر و …
توجه : مطالب و مقالات وبسایت آریاگستر تماما توسط تیم تالیف و ترجمه سایت و با زحمت فراوان فراهم شده است . لذا تنها با ذکر منبع آریا گستر و لینک به همین صفحه انتشار این مطالب بلامانع است !
دوره های آموزشی مرتبط
350,000 تومان
350,000 تومان
390,000 تومان
390,000 تومان
350,000 تومان
390,000 تومان
350,000 تومان
390,000 تومان
قوانین ارسال دیدگاه در سایت