مثالهایی از تکنیکهای ویژه، نگاشت محیط اطراف بر روی شیء و بافت برجسته. کامپیوتر

*بانو بهار*

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/08/15
ارسالی ها
3,937
امتیاز واکنش
10,965
امتیاز
804
محل سکونت
میان شکوفه‌ها
قبلا اشاره شد که میتوان با استفاده از ماتریسها، تصاویر متحرک را بوجود آورد. این نوع تصاویر متحرک، انیمیشن از نوع ماتریسی نامیده میشوند که علی رغم داشتن تواناییهای بالا، امروزه بدلایلی کمتر از آنها استفاده میشود. در عوض روش نسبتا جدیدتری برای ایجاد انیمیشن مورد استفاده قرار میگیرد که در اصطلاح گرافیک سه بعدی، انیمیشن اسکلتی خوانده میشود. در این روش که بیشتر برای متحرک کردن کاراکترهای بازی بکار گرفته میشود، میتوان کل بدن و دست و پای شخصیت بازی را بصورت یک شیء واحد ساخت. سپس با استفاده از قابلیتهایی همچون پوست انعطاف پذیر (skin)، حرکتهای لازم به اجزاء مختلف بدن فرد داده میشود. بازیهای معروفی مثل Tomb Raider، Quake و Half Life هر یک به گونه ای از این روش برای خلق کاراکترهای خود استفاده کرده اند.
از دیگر ویژگی هایی که میتوان برای واقعی تر کردن یک صحنه سه بعدی از آن استفاده کرد، سایه میباشد. سایه ها که ارتباط مستقیمی با نور دارند، بطور کلی شامل چند دسته میشوند. ساده ترین نوع آنها (همانطور که در مبحث ماتریسها اشاره شد) با نگاشتن گره های یک شیء بر روی یک صفحه تخت بوجود می آید. این نوع محدودیتهای زیادی دارد. بنابراین جز در موارد خاص از آن استفاده نمیشود. نحوه دیگر پیاده سازی سایه، کاربرد بافتهایی میباشد که حاوی تصاویر رندر شده از سایه ها و سایر اثرات نورها در صحنه میباشند. به این تصاویر ویژه light map گفته میشود. این روش سریعترین نوع ایجاد سایه است. ولی تنها میتوان برای اعمال سایه بر روی سطوح تخت از آن استفاده کرد. انعطاف پذیر ترین نوع سایه ها، سایه های حجمی هستند. سایه های حجمی (shadow volume) میتوانند بر روی هر نوع سطحی اعمال شده، و حتی قابلیت ایجاد سایه برای اشیاء متحرک را هم دارا میباشند. البته باید توجه داشت که این، پیچیده ترین و کندترین نوع سایه ها هم میباشد.
از سیستمهای ذره ای (particle system) معمولا برای شبیه سازی پدیده های طبیعی همچون برف، باران، آتش، انفجار و گرد و غبار استفاده میشود. سخت افزارهای جدید، دارای اشیاء آماده ای میباشند که میتوانند بطور مستقیم رندر شده، و حتی تصویری را هم بعنوان بافت بر روی خود داشته باشند. بدین ترتیب میتوان با تنظیم موقعیت، سرعت حرکت، تعداد، طول عمر، رنگ و بافت این ذرات (point sprite) انواع پدیده ها از جمله آتش و برف و باران را به شکلی کاملا واقعی در صحنه های سه بعدی ایجاد کرد.
یکی دیگر از تکنیکهای پیشرفته گرافیک سه بعدی، قابلیت ساخت انواع زمین و محیطهای طبیعی میباشد. میتوان از زمینها (terrain) برای شبیه سازی محیط کوهستان، دشت، تپه و هر نوع ناهمواری طبیعی دیگری استفاده کرد. معمولا روشهای گوناگونی برای رندر کردن این اشیاء وجود دارد.
از جمله تکنیکهای ویژه بسیار پرکاربرد، متحرک سازی بافتها میباشد. همانطور که پیشتر عنوان شد، از ماتریسها میتوان برای متحرک سازی هر چیزی در گرافیک سه بعدی استفاده کرد. حتی میتوان با اعمال یک ماتریس بر روی بافت، تصویر بافت مورد نظر را به اشکال گوناگون در آورد. مثلا تصویری از یک تابلوی تبلیغاتی را در نظر بگیرید که بر روی یک پایه بلند نمایش داده شده است، میتوان با چرخش ماتریس بافت این تابلو، آن را حول پایه بچرخانید تا ظاهر تابلوی تبلیغاتی واقعی تر به نظر برسد.
قبلا به بافرها اشاره کردیم، ولی یک بافر مهم دیگر هم وجود دارد. یعنی بافر استنسیل (stencil buffer) که تکنیکهای بسیار زیادی توسط آن قابل پیاده سازی میباشند. از جمله این تکنیکها سایه حجمی (که پیشتر به آن اشاره شد)، آینه، ماسک کردن تصویر، برش زدن مناطق دلخواهی از تصویر، ایجاد اشیاء شفاف، محو تصاویر در پس زمینه و ترکیب تصاویر با هم میباشد.
در آخر هم باید به سایه زنها اشاره کنیم. سایه زنها (shader) در واقع پرده آخری میباشند که فراروی شما قرار دارند. با عرضه سایه زنها، و زبانهای سایه زنی، انقلابی در عرصه گرافیک کامپیوتری ایجاد شد و بسیاری از محدودیتهای که تا چندی پیش در سر راه برنامه نویسان گرافیکی (بخصوص سازندگان بازی) قرار داشتند عملا کنار رفتند. امروزه سایه زنهای گره، سایه زنهای پیکسل، سایه زنهای بافت و سایه زنهای نوری وارد صحنه شده اند و میتوان توسط زبانهایی مثل Assembly، C، و حتی Delphi برای آنها برنامه نوشت. وقتی شما از سایه زنها استفاده میکنید، به گونه ای خط رندر کارتهای گرافیکی را بطور کامل تحت تسلط خود در آورده اید. در اینجا کلیه عملیات، از گرفتن گره های ورودی، پردازش، تبدیل، برش، و نگاشت آنها تا پیاده سازی فرمولهای مه، نورپردازی، بافت زنی، سیستمهای ذره ای و انعکاسهای نوری بر عهده خودتان میباشد. حتی میتوانید در سطحی پایینتر، بر روی تک تک پیکسلهای صفحه کار کنید و آنها را با فرمولهای ابداعی خودتان تحت تبدیلات مختلف قرار دهید. امروزه رقابت اصلی سازندگان کارت های گرافیکی بر سر سایه زنها میباشد؛ و Render Monkey (محصول شرکت ATI)، CG (محصول nVidia) و HLSL (محصول مایکروسافت) که همگی برای برنامه نویسی پردازنده های گرافیکی ایجاد شده اند محصول این رقابت شدید میباشند.
شاید بد نباشد که در انتها، از چند تن از بزرگان و پایه گذاران گرافیک سه بعدی کامپیوتری نامی ببریم. افرادی چون James Blinn، Andy Catmull، Phillip Taylor و John Carmack در صنعت گرافیک سه بعدی، همچون اسحاق نیوتن، آلبرت اینشتین، هاینریش هرتز و جیمز وات در علم فیزیک هستند. برای مثال Carmack نامی آشنا برای همه علاقمندان به بازی میباشد. او را پدر صنعت بازیهای کامیپوتری نامیده اند، زیرا بازیهایی چون Doom و Quake محصول خلاقیتهای او و همکارانش (همچون Tom Hall) میباشند. Taylor هم تا چندی پیش رئیس تیم سازنده DirectX در شرکت مایکروسافت بود.
 

برخی موضوعات مشابه

بالا