سایه ها در انیمیشن سه بعدی Shadows In 3D Animation

سایه ها در انیمیشن سه بعدی Shadows In 3D Animation : قسمت اول

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

به طور خلاصه، سایه ها روابط بین عناصر درون صحنه را آشکار می کنند و آرایش موضوعات را بهینه می کنند. به عنوان مثال، می توانید فضای خارج از دوربین Off Screen Space را بوسیله ی سایه ایجاد کنید. همچنین با سایه ها، می توانید چشم بیننده را به جهت خاصی هدایت کنید و کنتراست ایجاد کنید.

در دنیای واقعی، تمامی نورها سایه ایجاد می کنند. ولی در نورهایی که توسط نرم افزار های 3D ایجاد می کنید، می توانید مشخص کنید که کدامین نور سایه داشته و کدامیک سایه ایجاد نکند. در برخی موارد، سایه ها یی که توسط نورها ایجاد می شوند، روی هم Overlap می شوند که در این مورد نیز، باید تصمیم بگیرید که کدام نور، سایه داشته باشد.

در صحنه های پیچیده، لازم است چندین نور سایه ایجاد کنند، فقط داشتن نوری که سایه ایجاد کند، به رندر شما آسیب خواهد زد. برای مثال، در مواردی، موضوعاتی که در پشت هم قرار گرفته اند، به خوبی تداعی کننده ی تماس آنها با سطح را ندارند، در چنین مواردی باید با ایجاد سایه های ثانویه، این مشکل را رفع کنید.

در کل، داشتن نورهایی که سایه ایجاد نمی کنند، نوعی ریسک است. این نورها می توانند موضوعات را تا حد زیادی روشن کنند، مثلا : نور پشتی که برای کاراکتر تعبیه کرده اید، برای ایجاد Highlight روی موها و شانه های کاراکتر است، اگر سایه نداشته باشد، می تواند داخل دهان کاراکتر را نیز روشن کند !، یا در مواردی موضوعات دیگر را روشن تر از حد معمولی که تنظیم کرده اید بکند.

رنگ سایه ها : در دنیای واقعی، سایه ها بر اساس محیط، رنگ های مختلفی دارند. به عنوان مثال: سایه ها در روز آفتابی، ته مایه ای از رنگ آبی دارند، چون نور زرد روشنی که از خورشید می تابد، با ایجاد سایه بلاک می شود و سایه تحت تاثیر نور آسمان، کمی آبی رنگ می شود. برای ایجاد تغییر در رنگ سایه ها، تمامی نرم افزار ها گزینه ای با نام Shadow Color در تنظیمات نور انتخاب شده دارند. برای ایجاد تاثیر نور آسمان در سایه ، صرفا با تغییر رنگ سایه، به سختی می توانید به نتیجه ی مطلوب برسید، چون نورها از زوایای مختلف تابیده شده و سایه هایی تشکیل شده، بهترین روش رها کردن رنگ سایه به حال خود ( سیاه) است ، با ایجاد رنگ آبی ملایم برای Ambient Light می توانید این تاثیر را شبیه سازی کرده و نتیجه مطلوبتری را دریافت کنید.

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

اندازه ی سایه ها : محل قرار گیری منبع نور، ارتباط مستقیمی با اندازه ی سایه ی ایجاد شده دارد. اگر نوری ،نزدیک موضوع قرار گیرد، سایه ای بزرگ در پشت آن ایجاد می شود و برعکس، اگر منبع نوری دورتر از موضوع قرار بگیرد، سایه ای به مراتب کوچکتر خواهد داشت.

در ضمن، این قانون، در مورد نورهای Omni و Spot کار می کند . نورهای Direct و infinite همیشه سایه های یکسان ایجاد می کنند.

دو نوع از محبوبترین انواع سایه ها عبارتند از:

• Shadow Map یا Depth Map : سریعترین و کارآمد ترین نوع سایه برای رندراست.

• Raytraced Shadows : استفاده ی راحتی دارند ولی زمان زیادی برای محاسبه نیاز دارند ( افزایش زمان رندر).

در این چند خط، به مزایا و معایب این سایه ها پرداخته ایم:

Shadowmap : این سایه ها در تولیدات فیلم، و نورپردازی های حرفه ای کاربرد وسیعی دارند. این نوع سایه ها، قبل از مرحله ی رندر تصویر، از نقطه نظر هر نور و پرتو های آن، محل تشکیل سایه را محاسبه می کند. در هر زاویه ای که پرتو های نور تابش دارند، تصویر سایه، بر اساس فاصله ی میان موضوع و منبع نوری ، محاسبه و تشکیل می شود، که این خود بر اساس کیفیتی خوهد بود که در مقابل Resolution معین کرده اید. در جدول زیر، می توانید مقادیر کیفیت بر اساس Pixel را مشاهده و مقدار RAM مورد نیاز برای محاسبه ی آن را ببینید.

مقدار کیفیت سایه Shadow Map مقدار RAM مورد استفاده

128 0.06 MB

256 0.25 MB

512 1 MB

1024 4 MB

2048 16 MB

4096 64 MB

همانطور که می بینید، افزایش مقدار کیفیت سایه های ایجاد شده، سریعا حافظه ی سیستم را درگیر خواهد کرد. اگر برای انیمیشن تلوزیونی کار می کنید، مقادیر 512 پاسخگو خواهد بود. مقدار 1024 برای یک فیلم بلند انیمیشن، گزینه ی خوبی است. این مقادیر بر اساس یک نور پیشنهاد شده، مطمئنا اگر 10 منبع نوری با مقدار 1024 برای سایه ها داشته باشید، به طرز فجیعی زمان رندر افزایش خواهد یافت ، در حالی که شما برای قطع تلوزیونی (720*576) کار می کنید! . پس باید نوع تولید و ارائه ی رندر را نیز مد نظر داشته و سایه ها را بر اساس آن ایجاد کنید.

یک مثال دیگر: اگر در حال نورپردازی با نورهای Spot هستید، مطمئن باشید که مخروط نور، محدوده ی کمی از اطراف سوژه را احاطه کرده، در این صورت سایه هایی با کیفیت خوب ایجاد خواهد شد، اگر این مخروط، شعاع بیشتری از سوژه را در بر گیرد، خواهید دید که کیفیت سایه ی ایجاد شده افت داشته، و مجبور به افزایش Resolution و در نتیجه افزایش زمان رندر خواهید بود. ( ممکن است این افزایش زمان رندر، در یک فریم و با یک نور، محسوس نباشد! )

معمولا، هنگامی که با صجنه های وسیعی مثل خیابان، کار می کنید و نیاز دارید که سایه های با کیفیتی در تمامی موضوعات کوچک و بزرگ صحنه داشته باشید، نمی توانید با ایجاد یک نور و تنظیم مقادیر کیفی زیاد، نتیجه ی خوبی بگیرید، یا نرم افزار کرش خواهد کرد یا زمان رندر بسیار طولانی شده و سایه ها درست رندر نخواهند شد. برای به دست آوردن نتیجه ی مطلوب، یکی از روش های زیر را انتخاب کنید :

• صحنه را تفکیک کرده و برای هر قسمت Spot Light های مجزا تعیین کنید که هر کدام مساحت کوچکی را تحت پوشش داشته باشند. این تعدد، تغییرات طبیعی خوبی را به صحنه اضافه می کند.

• سایه ی نور اصلی را خاموش کرده، با ایجاد نورهایی، فقط سایه هایی زیر موضوعات ایجاد کنید.

• با احتیاط کامل، مقدار Resolution را افزایش دهید. اگر مقادیر را بالای 2048 وارد کنید، نتیجه ای مشابه Raytraced Shadows خواهید گرفت.

• از نورهای متفاوت Spot متمرکز شده برای ایجاد سایه بهره بگیرید و سپس سایه ها را در Pass های جدا رندر کرده و در نرم افزار کامپوزیت نتیجه را ببینید.

در برخی موارد، نورها از میان موضوعات عبور کرده و کناره ی اتصالات ( مثل گوشه ی دیوار) باریکه ای از نور ایجاد می شود. برای رفع این مشکلات، چند روش وجود دارد :

• تمامی نورهای صحنه را مخفی کرده و با یک نور، صحنه را تست کنید.

• اگر نور Spot دارید، مطمئن باشید که فقط محدوده ی مورد نیازتان را روشن کرده است.

• مقدار Bias برای سایه را کم کنید.

• مقدار Filtering یا Softness برای سایه را کم کنید.

مشکل نفوذ نور ، همیشه از نورپردازی نیست ! گاهی اوقات مشکل از مدل هاست. این موارد را به یاد داشته باشید :

• Object تست در صحنه ایجاد کنید، تمامی دیوار ها در دنیای واقعی، ضخامت دارند، پس شما هم باید این مورد را در مدل رعایت کنید.

• Polygon هایی را در فضای بیرونی مدل ایجاد کنید تا جلوی نور ناخواسته را سد کنند.

• مطمئن باشید که تمامی لبه ها به درستی جوش خورده اند و در اتصال باهم هستند.

• اگر قسمتی از مدل سایه ایجاد نمی کند، سعی کنید در آن قسمت ژئومتری ایجاد کنید.

برای بسیاری از تازه کارها، افزایش مقدار Resolution سایه، اولین گزینه برای مقابله با این مشکل است. در حالی که این کار زمان رندر را افزایش خواهد داد. در برخی موارد، تنظیم Bias عالی خواهد بود، بدون این که زمان رندر را افزایش دهد، پس همیشه مقدار Bias را به درستی تنظیم کنید.

سایه های Raytraced: این سایه، پرتو های نوری مابین منبع نور و موضوعات را تعقیب کرده و سایه ایجاد می کند. این سایه ها قوی بوده و نسبت به Shadow Mapمزایایی دارند :

• این سایه ها وقتی از میان موضوعی شفاف عبور می کنند، کمرنگ می شوند و می توانند رنگ موضوع ترانسپرنت را به خود بگیرند.

• نیازی به تنظیم کردن مقدار Bias برای رفع مشکل سایه ها نخواهید داشت.

• این سایه ها مقدار مشخص کننده ی کیفیت نداشته و در هر سایز رندی که دارید، سایه ها تیز هستند.

• وقتی نورهای Area این سایه را ایجاد می کنند، سایه هایی نرم و واقعی خواهید داشت.

حال ، وقتی ایجاد این سایه ها راحت تر است و مشکلی ندارد، چرا ابتدا Shadow Map مطرح شد و در تولیدات نیز اغلب از Shadow map استفاده می شود ؟ دو جواب ساده دارد :


1. این سایه ها زمان زیادی برای رندر شدن نیاز دارند، در صحنه های کاملتر و پیچیده تر برای تولید، این اختلاف بسیار زیاد می شود.

2. با به کار بردن این سایه ها، استفاده از حافظه ی سیستم افزایش یافته و اجازه نخواهد داد تا صحنه ای کامل و پیچیده را به خوبی کنترل و رندر کنید.

گاهی اوقات، این سایه ها اولین انتخاب برای تازه کارهایی است که روی صحنه های ساده و کم حجم کار می کنند. ولی برای حرفه ای ها و کسانی که روی تولیدات بلند سینمائی کار می کنند، هیچ گاه مورد استفاده نخواهد بود.

این سایه ها چگونه کار می کنند ؟

برای هر پیکسل تصویری که باید رندر شود، پرتویی از دوربین به آن سطح اختصاص می یابد، برای هر نقطه روی سطح ، رندر باید بداند که کدامین نور، آن نقطه را روشن کرده است، اگر نوری از Raytraced استفاده کرده باشد، مسیری را از نقطه ی مورد نظر تا منبع نوری رسم می کند، اگر Polygon ی یافت شود که مابین این مسیر قرار گرفته باشد ( آن را بلاک کرده باشد ) ، نور نیز روی سطح مسدود می شود. ناحیه ای که نور در آن قسمت از سطح بلاک شده، Raytraced نام دارد. اگر بیشتر از یک منبع نوری از این سایه ها استفاده کند، تمامی این پروسه برای آن نور نیز تکرار خواهد شد. این کار، سیستم را کند می کند.

سایه های نرم و سایه های تیز : برای رسیدن به نتایج واقعی تر درایجاد سایه ها، استفاده از سایه های نرم پیشنهاد می شود. نرمی سایه باید با نرمی کناره های منبع نوری (مثل Spot) هم خوانی داشته باشد.

کی در تولید، از سایه های تیز Hard Shadow استفاده کنیم :

• برای شبیه سازی نوری که مستقیما از منبع نوری کوچکی ساطع می شود.

• شبیه سازی نور مستقیم خورشید در یک روز آفتابی.

• در صحنه های فضایی، جایی که Diffuse در اتمسفر ایجاد نمی شود.

• جایی که توجه باید جلب شود، مثل محدود کردن نور Spot روی کاراکتر در یک صحنه ی تئاتر، که باعث ایجاد سایه های تیز می شود.

• مواقعی که باید شکل ها به خوبی تشخیص داده شود. مثل وقتی که بیننده باید سایه ی موجود خونخوار مخوفی را روی دیوار ببیند !

• در مواقعی، برای ایجاد Environment سرسخت و نامهربان .

کی در تولید، از سایه های نرم Soft Shadows استفاده کنیم :

• برای ایجاد نورهای طبیعی و روز ابری، مواقعی که دوست ندارید سایه ی تیز داشته باشید.

• حین شبیه سازی نور های غیر مستقیم. نور آسمان، معمولا سایه ی خیلی نرمی دارد.

• جایی که نور از میان موضوعی شفاف عبور کرده. مثل پرده

• محیط هایی که باید آرامش و امنیت را تداعی کنند. بسیاری از نورپردازی های داخلی، از رفلکتورها برای نرم کردن سایه های ایجاد شده توسط منابع نوری استفاده می کنند.

• نورپردازی کاراکتر های زیبا و دوست داشتنی، در نور پردازی نماهای بسته از صورت ستاره های هالیوودی، خصوصا پرتره ی بازیگران زن، در بسیاری موارد، سایه ها نرم هستند.

اگر به اطرافتان نگاهی بیاندازید و روی رفتار سایه ها دقیق شوید، می توانید ترکیب سایه های نرم و تیز را ببینید. به عنوان مثال، در یک روز آفتابی، سریعا متوجه سایه های تیز می شوید، در حالی که سایه های نرمی که از آسمان هستند، در اطراف موضوعات بزرگ ایجاد شده اند.

همچنین می توانید به وسیله ی گزینه ی Sample Range سایه ها را نرم تر کنید.

برای به دست آوردن سایه های Raytraced نرم تر، باید از نور های Area استفاده کنید.زیرا رفتار بسیار طبیعی تری نسبت به سایر نورها دارد. توسط این نورها، می توانید به سادگی سایه های نرم ایجاد کنید، کافی است که اندازه ی نور Area را بزرگتر کنید. معمولا سایه های نرم مقدار Sampeling زیادی نیاز دارند تا زمینه ی نویزی شکل آن از بین برود.

با تشکر از

http://puyanama.com

/ 2 نظر / 31 بازدید
مهدی

ساخت کد لوگو همراه با یک کد رایگان آهنگ جدید برای وبلاگ شما برای اطلاع بیشتر به آدرس زیر مراجعه نمایید. www.sefareshekod.persianblog.ir

رضایی

من چقدر دنبال این مطلب بودم و خیلی به دردم خورد از شما تشکر می کنم که این موضوع را شفاف و واضح بیان کردید راستش توی سایت های دیگه با التماس هزار منت و عضو شدن میشه به این مطالب دسترسی پیدا کرد. امیدوارم ه این نوع آموزش ها تداوم پیدا کنه. با تشکر . بهروزی هرروزتان را می طلبم.