Nila
03-06-2010, 18:50
تکنولوژي کامپيوتر - هنر - گرافيک دو بعدي وسه بعدي
"مقدمه :
طراحي گرافيکي با تاريخچه انسان هاي غارنشين گره خورده است . نقاشي هاي روي غارهايlascavx و يا تولد زبان نوشتاري در هزاره سوم و چهارم قبل از ميلاد هر دو مراحل مهمي در تاريخچه طراحي گرافيکي هستند.از اولين نمونه هاي طراحي گرافيکي مي توان به Book Of Kell اشاره کرد.پس از آن ناشري به نام ويليام مورس در فاصله سالهاي 1892تا 1896 اقدام به چاپ کتابهايي کرد که رد پاي برخي محصولات گرافيکي مهم در آنها به چشم مي خورد و به اين ترتيب توانست تجارت منا (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)فعي را در بخش کتاب راه اندازي کند.کار وي به همراه ديگر جنبشهاي انتشاراتي خصوصي بطور غير مستقيم مسئول توسعه و ارتقاي طراحي گرافيکي در اوايل قرن بيستم محسوب مي شود.
و در سطوح پيشرفته تر به حسابان ، معادلات ديفرانسيل و روشهاي عددي اشاره کرد.
اگر بگوييم IT نقش مهمي در تحول گرافيک داشته است، حرف نامربوطي نزده ايم . گرافيک رايانه اي يکي از قديمي ترين شاخه هاي علوم کامپيوتر است که به ترسيم ، تغيير و کار با تصاوير به شيوه محاسباتي و کامپيوتري اقدام مي کند.اين شاخه يکي از پرجاذبه ترين و وسيعترين کاربردهاي رايانه هاست.بازي هاي رايانه اي ، برنامه هاي ساخت انيميشن هاي دو بعدي و سه بعدي شبيه سازي هاي محاسباتي و پردازش تصاوير را مي توان به عنوان چند نمونه از اين کاربردها نام برد. در اين صورت مي توان گرافيک را به دودسته کلاسيک و مدرن تقسيم بندي کرد. برخي از کاربردهاي گرافيک مثل تهيه پوستر را مي توان به دو روش انجام داد اما کاربردهايي مثل طراحي وب سايت ها را نمي توان در دسته کلاسيک گنجاند. چنين کاربردهايي در اصل به واسطه علم IT به وجود آوده اند.
در اواسط دهه 1980 آمدن ادوات کامپيوتري و نرم افزاري توانست نسل جديدي از طراحان تصاوير کامپيوتري را بوجود آورد . اين نسل توانست از عهده طراحي هايي برآيد که تا پيش از اين و بدون استفاده از اين ابزارها کاري سخت وتقريبا محال بود . گرافيک کامپيوتري طراحان را قادر کرد که در لحظه به تاثيرات طرح بندي ها و يا تغييرات اعمال شده در اثرشان بدون استفاده از جوهر پي ببرند و بدون نياز به فضايي زياد بتوانند تاثيرات اين رسانه سنتي راشبيه سازي کنند . گرچه باز هم از ابزارهاي سنتي مثل مداد و يا انواع ماژيک ها براي به اجرا در آوردن ايده هاي اوليه و خام بر روي کاغذ استفاده مي شود اما در نهايت کار اصلي را کامپيوتر و به واسطه انواع نرم افزار هاي گرافيکي انجام مي دهد .
گرافيک رايانه اي به استفاده وسيع از رياضيات کاربردي نياز دارد. از مهمترين زمينه هاي مربوط مي توان به هندسه مسطحه ، هندسه فضايي ، جبر خطي و در سطوح پيشرفته تر به حسابان ، معادلات ديفرانسيل و روشهاي عددي اشاره کرد.
گرافيک رايانهاي ( ( Computer Graphics:
يکي از قديميترين شاخههاي علوم رايانه است که به ترسيم، تغيير، و کار با تصاوير به شيوههاي محاسباتي و رايانهاي اقدام مينمايد. گرافيک رايانهاي يکي از پرجاذبهترين و وسيعترين کاربردهاي رايانههاست. بازيهاي رايانهاي، برنامههاي ساخت پويانمايي دوبعدي و سهبعدي، شبيهسازيهاي محاسباتي و پردازش تصاوير را ميشود بهعنوان چند نمونه نام برد. اصولا وقتي صحبت از گرافيک در کامپيوتر به ميان مي آيد با دو مسئله روبرو هستيم، گرافيک دو بعدي و گرافيک سه بعدي. البته الان ديگر به لطف کارتهاي گرافيکي سريع که از قابليتهاي سه بعدي به بهترين شکل پشتيباني ميکنند، گرافيک دو بعدي جايگاه خود را از دست داده است.
بردارها و پيکسلها :
اجرا و ايجاد گرافيک کامپيوتري با دو روش متفاوت امکان پذير اشت:
روش برداري (Vector) و روش پيکسلي . در روش برداري يک نقطه در تصوير توسط يک خط برداري به نقطه ي بعدي در همان تصوير مرتبط مي شود. مي توانيد خطهاي برداري را بدلخواه ادامه داده و سپس انتهاي خط را بسته و محيط داخل آن را رنگ آميزي نماييد. خطها و نقاط انتهايي آنها در نقاط با مختصات مطلق در فضاي طراحي قرار دارند و بهمين دليل مي توانيد خطها را بسادگي تغيير مقياس و اندازه دهيد.
اين روش براي ايجاد لوگوها و آرم ها و گرافيک هاي تحت وب بسيار مناسب است. برنامه هايي مانند کورل دراو يا فري هند ياIllustrator از همين روش براي ايجاد گرافيک کامپيوتري استفاده مي کنند.
اما در روش پيکسلي از تعداددي نقاط چهارضلعي کوچک به نام پيکسلها براي ساخت تصاوير Bitmap استفاده مي کنيم . هر نقطه ممکن است يک رنگ متفاوت اختيار نموده و به کمک آرايه هاي گوناگون از اين نقاط مي توانيد تصاوير يا عکسهاي دلخواه را ايجاد نماييد. هرچه پيکسل در يک تصوير بيشتر باشد حجم فايل آن تصوير بزرگتر و کيفيت آن بهتر خواهد بود. تعداد پيکسلهاي قرار گرفته در يک تصوير را کيفيت ياResolution آن تصوير مي نامند.
اما تصاوير پيکسلي (Bitmap ) مانند تصاوير برداري قابليت مقياس پذيري ندارند. اگر يک تصوير پيکسلي را بيش از اندازه بزرگ نموده يا بر روي آن تمرکز نماييد، آن تصوير به شکل پيکسل پيکسل ظاهر خواهد شد . برنامه هايي مانند فتوشاپ ياCorel photo-paint از اين روش براي ايجاد گرافيک کامپيوتري استفاده مي کنند.
گرافيک دوبعديTwo Dimensional graphics ) ( :
تمامي تصاوير ثبت شده به وسيله رايانه که از يک نماي ثابت بدست آمدهاست و قديمي ترين راه ويرايش تصاوير به وسيله رايانهاست تا صحنهاي که بدست ميآيد صحنه ثبت شده از يک نما باشد . که به شاخههاي مختلف تقسيم ميگردد.(نقاشي ديجيتالي -ويرايش تصاوير- انيميشن)
نقاشي ديجيتالي :
نقاشي ديجيتالي در مجموع به تصاوير خلق شده توسط رايانه که به وسيله نرم افزارهاي مختلف ايجاد ميشود، اطلاق ميگردد. اين شاخه از گرافيک دو بعدي به شيوههاي مختلف انجام ميپذيرد درست مثل نقاشي دستي شيوههاي مثل رئال يا سورئال دارد.
ويرايش تصاوير :
ويرايش تصاوير به ايجاد تغييرات در تصاويري گفته ميشود که در گذشته به وسيله وروديها به رايانه داخل شده است . مانند رتوش تصاوير در عکاسيها يا ويرايش چند عکس براي يک صحنه فيلم . براي معرفي بهترين نرم افزار براي اين کار ميتوان به نرم افزار Photoshop از شرکت Adobe نام برد.
انيميشن :
اين شيوه را تمامي ما ميشناسيم امروزه بيشتر فيلمهاي کارتوني به اين شيوه توليد ميشوند. ايجاد تصاوير ديجيتالي و کنار هم قرار دادن آنها را انيميشن مينامند. در گرافيک دوبعدي مقولاتي از جمله کارتون هاي معمولي به چشم ميخورد. شايد بتوان گفت تصاوير بطور کلي مهمترين عنصر گرافيک دو بعدي را تشکيل ميدهند. از جمله مهمترين فعاليتهايي که در گرافيک دو بعدي انجام ميگيرد، خواندن، نمايش، تغيير موقعيت، تغيير اندازه، چرخش و فيلتر کردن يک تصوير ميباشد. اين تصوير ميتواند يک فايل بر روي کامپيوتر باشد (مثلا با فرمت jpg يا bmp) يا ميتواند مستقيما در برنامه و توسط کد نويسي توليد شود. به هر صورت سخت افزارهاي گرافيکي که تا قبل از سال 95 در بازار موجود بودند، عمدتا بر روي اين قابليتها تمرکز داشتند. بعنوان نمونه، الان تقريبا همه کارتهاي گرافيکي (چه دو بعدي و چه سه بعدي) داراي بخشي ويژه براي رسم تصاوير در صفحه ميباشند. عمليات blit – که مخفف کلمات bit-block transfer (به معناي انتقال تکه اي از بيتها) ميباشد – به نوعي هسته مرکزي فعاليتهاي يک کارت گرافيکي در حالت دو بعدي را ميسازد. همچنين بسياري از سخت افزارها داراي چيپ ويژه اي جهت کشيدن و جمع کردن تصاوير ميباشند. اين تکنيک که image stretching نام دارد در برنامه هاي سه بعدي هم کاربرد فراواني دارد. از جمله بخشهاي مهم گرافيک دو بعدي ميتوان به فونتها براي رسم مطالب بر روي صفحه اشاره کرد. فونتها هم اغلب توسط تصاوير نمايش داده ميشوند. از ديگر فرآيندهايي که در هنگام کار با تصاوير انجام ميگيرد، ماسک کردن بخشي از تصوير ميباشد، تا به اين شکل بتوان جلوه هاي ويژه متعددي را ايجاد کرد. اين تکنيک که امروزه در گرافيک سه بعدي هم کاربرد فراواني دارد، در بخش گرافيک سه بعدي بطور مفصلتري بررسي خواهد شد. اگر بخواهيم نمونه هايي گويا از برنامه هاي گرافيک دو بعدي را مثال بزنيم، ميتوانيم به بازيهاي دهه هشتاد و نود اشاره کنيم؛ در آن زمان تقريبا اکثر بازيها دو بعدي بودند و همگي بر يک اصل استوار بودند: نمايش تصاوير ثابت به شکل پشت سر هم بطوري که حرکت را القاء کند. نهايت هنري که ميتوانستند به خرج دهند ايجاد صحنه هايي مثل انفجار، بارش باران يا انعکاس نور البته در حد بسيار ابتدايي بود که اين کارها عمدتا توسط تصاوير از پيش آماده شده انجام ميگرفت. با ورود کارتهاي جديدتر و با قابليتهاي سه بعدي بالا، اگرچه بسياري از خصوصيات گذشته حفظ و حتي تقويت شد، وليکن عناصر جديدي به اين جمع اضافه گشت.
حال به بررسي اصول اشکال دوبعدي مي پردازيم :
اگر دو نقطه در فضا را به يکديگر وصل کنيد ، يک خط ( Line ) خواهيد داشت . به عنوان مثال اگر دونقطه( 0,0,0 ) و ( 5,5,0 ) را به يکديگر وصل کنيد ، خطي بين اين دو نقطه خواهيد داشت . حال اگر خط مزبور را تا نقطه ( 9,3,0 ) ادامه دهيد ، يک چندخطي ( Polyline ) بوجود ميايد . در صورت اتصال نقطه آخر به مبدا يک شکل بسته يا يک چندضلعي ( Polygon ) را در اختيار خواهيد داشت . به شکل زير دقت کني (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)د :
صفحه سه ضلعي ( Face ) بوجود آمده در شکل بالا ، مبناي تشکيل دهنده ساختمان موضوعات ( Objects ) در محيط سه بعدي ميباشد.
تمايز اشکال بسته ( Closed Shape ) از اشکال باز ( Open Shape ) از اهميت زيادي برخورداره . اين بدين خاطره که بسياري از اشکال دوبعدي را قبل از بستن نمي توان به موضوعات سه بعدي تبديل کرد.
بطور کلي يک چندضلعي ( Polygon ) داراي سه عنصر بنيادي به شرح زير است :
1 - گره يا راس ( Vertex ) :
نقطه اي است که تعدادي از خطوط در آن جا به يکديگر متصل ميشوند . به عبارت ديگر ، گره يا راس نقطه تقاطعي واقع در فضاي سه بعدي ميباشد. ( تعريف علمي : راس يک نقطه بدون بعد در فضا است . راسها در هر دو اشيا دوبعدي و سه بعدي يافت ميشوند )
2 - لبه ( Edge ) :
هريک از خطوط قرار گرفته بين دو گره از يک چند ضلعي را اصطلاحا يک لبه ميگويند .
3 - صفحه يا وجه ( Face ) :
وقتي که يک شکل بسته دوبعدي در اختيار داشته باشيد ، به ناحيه محصور توسط لبه هاي آن شکل اصطلاحا صفحه يا وجه ميگويند .
پاره خط ( Segment ) :
همانطور که در شکل با
لا مشاهده ميکنيد ، خطي که دو راس را به يکديگر متصل ميکند پاره خط ناميده ميشود . ( در واقع پاره خطها از اجزا بنيادين چندضلعي ها به حساب نمي آيند . )
نکته بسيار مهم : بنيادي ترين عنصر عناصر سه بعدي ، همين وجوه ( Face ) هستند و در واقع اشکال پيچيده از کنار هم قرار گرفتن وجوه مختلف تشکيل ميشود مانند شکل زير :
گرافيک سه بعدي : (Three Dimensional graphics)
تصاوير سه بعدي که اصطلاحا استريوگرام ناميده ميشوند. در واقع تصاوير مسطح دوبعدي هستند که بعد سوم آنها در ميان دو بعد ديگر پنهان است.شيوه پديدار ساختن بعد سوم در اينگونه تصاوير به اين نحو است که نخست بيننده تصاوير را در نزديک بيني خود نگاه داشته و سپس با آهستگي از صورت خود دور مي کند به اين ترتيب با دور شدن تصوير از چشمان بيننده بعد سوم تصاوير پديدار مي شود.
سالها گذشت تا سرانجام گروهي از دانشمندان توانستند با ادغام دو استريو گرام در يک تصوير يک اتواستريوگرام پديد آورند که تماشاي آن به هيچ وسيله اي نياز نداشت و بدين سان بود که آنها توانستند براي نخستين بار در طول تاريخ تصاوير استريوگرامي را که از نقاط تصادفي سياه و سفيد تشکيل شده بود با بکارگيري کامپيوتر اپل-2 توليد نمايند. در اين کامپيوتر به وسيله برنامه نويسي به وسيله زبان بيسيک تصاويري بر اساس نقاط تصادفي و گاها غير تصادفي خلق مي شد . از اين زمان بود که عملا رايانه و نرم افزارهاي رايانه اي و برنامه نويسي توانست جايگزين دستگاههاي فيزيکي براي ايجاد استريو گرام شود.شايد ورود رايانه به حوزه تصاوير سه بعدي را بتوان نقطه عطفي در تاريخ استريوگرام دانست.با پيشرفت رايانه و تلاشهاي متخصصين سرانجام سال 1991 نخستين استريوگرام تمام رنگي با استفاده از نرم افزارهاي کامپيوتري مدلسازي سه بعدي و تکنيکهاي رايانه اي ايجاد شد و از آن به بعد بود که استريوگرام به گونه تجاري و در قالب کتب و مجلات مختلف به بازار عرضه شد . ورود تصاوير استريوگرام در سالهاي نخست دهه هفتاد شمسي به کشورمان هم با استقبال نسبتا خوبي مواجه شد و مجلات و کتب متعددي که در اين زمينه و حاوي تصاوير استريوگرام مختلف به بازار آمد.
به جرات ميتوان گفت گرافيک سه بعدي بر مبناي گره ها و چند ضلعي ها (polygon) بنا شده است. در واقع گره ها (vertex) در گرافيک سه بعدي حکم اعداد در رياضي را دارند. هر کاري که بخواهيم انجام دهيم به نوعي به گره ها مربوط ميشود. آنها هستند که اشياء ما را ميسازند، در نورپردازي ها استفاده شده و بافت زني ميشوند. حتي ميتوان با انتقال آنها در فضاي سه بعدي تصاوير متحرک را نيز به آساني بدست آورد.
اصول گرافيک سه بعدي :
فضاي سه بعدي :
فضاي سه بعدي ( 3D Space ) عبارت از يک مکعب رياضي تعريف شده در داخل کامپيوتر و کنترل شده توسط نرم افزارهاي گرافيکي ميباشد.
همانند فضاي واقعي ، محيط سه بعدي داخل نرم افزار نيز نامحدود بوده و ضمن استفاده از مختصات مناسب مشخص ميگردد. مختصات :
در فضاي سه بعدي ، کوچکترين فضاي قابل اشغال عبارت از يک نقطه ( Point ) مي باشد.
هر نقطه توسط مجموعه منحصر بفردي از سه عدد که اصطلاحا به آن مختصات ( Coordinates ) گفته ميشود ، در فضاي سه بعدي مشخص ميگردد. به عنوان مثال مختصات مبدا يا مرکز فضاي سه بعدي توسط مختصات ( 0,0,0 ) معرفي ميشود.
به اين ترتيب هر نقطه از فضاي سه بعدي داراي يک مختصات منحصر بفرد بوده که به ترتيب نمايانگر ارتفاع ، عرض و عمق آن نقطه ميباشد.
محورها :
هر محور ( Axis ) عبارت از يک خط فرضي است که يک امتداد خاص در فضاي سه بعدي را مشخص ميکند. بطور کلي سه محور استاندارد Y ، X و Z وجود دارد که در شکل زير ميبينيد :
کاربردهاي مشترک گرافيک سه بعدي :
گرافيک سه بعدي در برنامه هاي کامپيوتري جديد کاربرد بسياري دارد. که برنامه ها از گرافيک سه بعدي استفاده ميکنند از بازيهاي اينتراکتيو سه بعدي تا شبيه سازي و پزشکي و مصارف شغلي متفاوت است. محصولات پر کيفيت سه بعدي راه خودشان را به سمت فيلمها و صنعت و آموزش به خوبي پيدا کرده اند. Real-time 3D :
گرافيک هاي سه بعدي بلادرنگ متحرک هستند و با کاربر فعل و انفعال دارند. يکي از اولين استفاده ها از گرافيک بلادرنگ سه بعدي شبيه سازي پرواز در امور نظامي بود.
برنامه ها براي گرافيک سه بعدي بر روي کامپيوترها تقريبا بيشمار هستند. شايد عمومي ترين استفاده از گرافيک کامپيوتري سه بعدي بازيهاي رايانه اي باشند. امروزه به سختي ميتوان کامپيوتري را يافت که نياز به يک کارت گرافيک سه بعدي نداشته باشد. سه بعدي هميشه براي تجسمات علمي و برنامه هاي مهندسي معروف بوده است. رابط هاي گرافيکي نرم افزاري هم از سخت افزار سه بعدي استفاده فراوان ميبرند. براي مثال ورژن کنوني سيستم عامل مکينتاش يعني Mac OS X براي رندر کردن تمام پنجرهها و کنترلها و جلوه هاي تصويري از OpenGL استفاده ميکند.
گرافيک سه بعدي غير همزمان Non-Real-Time :
براي برنامههايي که از گرافيک سه بعدي بلادرنگ استفاده ميکنند قانوني وجود دارد. با دادن فرصت بيشتري براي پردازش تصاوير شما ميتوانيد گرافيکهاي سه بعدي با کيفيت بالاتري ايجاد نماييد. به طور مثال بعضي از نرم افزارهاي مدل سازي از گرافيک سهبعدي بلادرنگ براي تقابل با هنرمند براي خلق محتواي مورد نظرش استفاده ميکنند. سپس تصاوير به برنامه ديگري فرستاده ميشوند (ray tracer) که تصاوير را رندر ميکنند. رندر کردن يک فريم تنها براي انيميشني مانند داستان اسباب بازي به ساعتها زمان بر روي يک کامپيوتر سريع نياز دارد. اين پروسه رندر و ذخيره سازي صدها فريم يک انيميشن را ميسازد که بطور رشته متوالي قابل پخش مجدد ميباشد. اگرچه پخش تصاوير انيميشن ممکن است يک عمل بلادرنگ به نظر برسد اما اينطور نيست. چون آن اينتراکتيو نيست در نتيجه آن بلادرنگ نيست بلکه بيشتر يک سري تصاوير از پيش رندر شده ميباشد.
شايد تا حالا واژه رندر (render) را زياد شنيده باشيد، اين عبارت در کل به معناي خلق تصاوير دو بعدي از اشياء سه بعدي بر روي صفحه کامپيوتر ميباشد. از گره شروع ميکنيم تا ببينيم اشياء سه بعدي که در صفحه مانيتور ميبينم واقعا از چه چيزي تشکيل شده اند. يک مکعب را در نظر بگيريد. مکعبها هشت گوشه دارند که اين هشت گوشه خود شش وجه ميسازند. هر يک از وجوه( face) يک مربع هستند. و ميتوان گفت که هر مربع از کنار هم قرار گرفتن دو مثلث تشکيل شده است.
سخت افزارهاي گرافيکي در حقيقت فقط ميتوانند سه عنصر نقطه، خط، و مثلث را رسم کنند بايد گفت که حتي پيچيده ترين سطوح - از يک مربع ساده گرفته تا يک نوار موبيوس – از مثلثها تشکيل شده اند. يک نکته مهم در مورد کارت هاي گرافيکي اين است که آنها به هيچ وجه قادر نيستند بطور مستقيم منحني رسم کنند، و حتي چند ضلعي هاي بيشتر از سه گوش را هم عملا نميشناسند. نکته مهم ديگر اين که هم صفحه بودن در گرافيک کامپيوتري بسيار با اهميت ميباشد، و از اين رو تنها سطحي که سخت افزارهاي سه بعدي قادر به رسم مستقيم آن هستند، مثلث ميباشد. عمليات شکستن سطوح منحني به مثلثهاي کوچک، tessellation ناميده ميشود که اين روزها در برنامه هاي گرافيکي بعنوان يک قابليت مهم تلقي ميشود. در واقع اصطلاح Higher Order Primitive (اشياء سطح بالا) به اشيائي اشاره دارد که هم صفحه نيستند، مثلا سطوح درجه دو يا منحني ها. اگرچه ممکن است خيلي برنامه ها آنها را تنها با گرفتن چند ورودي از شما بر روي صفحه رسم کنند، ولي چيزي که اتفاق مي افتد با چيزي که شما بر روي تصوير ميبينيد اندکي فرق ميکند. بسته به وضوح صفحه، فاصله شيء از شما و توان گرافيکي سيستم، سطوح منحني بر طبق محاسبات پيچيده و سنگين به يک سري مثلث کوچک تبديل ميشوند. هر چه در يک محل تعداد اين مثلثهاي کوچک بيشتر باشد منحني شما هموارتر به نظر ميرسد. از ساير ويژگي هاي اشياء سه بعدي بايد به قابليت آنها براي دريافت نور و در نتيجه داشتن رنگ اشاره کرد. بدون نور هيچ چيز قابل رويت نميباشد و اگر هم بتوان اشياء را ديد، نهايتا به شکل کاملا تخت و دو بعدي ميسر خواهد بود. هنگامي که اشياء موجود در يک صحنه را رسم ميکنيد بايد به نحوه نورپردازي هم کاملا فکر کنيد، زيرا زيباترين اشکال سه بعدي بدون وجود نور مناسب جلوه خوبي نخواهند داشت. در واقع دو مبحث نور و رنگ ارتباط تنگاتنگي با هم دارند؛ رنگ، دريافت چشمان ما از نوري است که به سطوح برخورد کرده و انعکاس مي يابد. نور هم مجموعه اي از فوتونهاست که با برخورد به سلولهاي مخروطي چشمها، آنها را تحريک ميکند. حالا بار ديگر به مثال مکعب بازميگرديم، همانطور که در طبيعت همه اشياء داراي سطح و رنگ مخصوص به خود ميباشند، اشکال سه بعدي درون صفحه کامپيوتر هم بايد داراي ويژگي خاصي باشند که نوع واکنش آنها در مقابل نور را مشخص کند. در اصل، خصوصيات سطحي هر جسم ماده آن جسم ناميده ميشوند. ماده يا(material) ميتواند نشانگر رنگ نهايي يک جسم در حالتي باشد که نورپردازي اعمال ميشود. شما ميتوانيد بسته به نياز، از نورپردازي استفاده نکنيد و تنها از رنگهاي ثابت براي اشياء بهره ببريد. از نکات مهم ديگر نحوه سايه زني اشياء است، به شکل زير توجه کنيد :
معمولا تکنيکهايي که ظاهري زيباتر و هموارتر را بوجود مي آورند به ميزان محاسبات بيشتري نياز داشته و بنابراين سرعت اجراي برنامه را پايين مي آورند. يکي از مواردي که در حين ساخت اشياء سه بعدي بايد مد نظر قرار گيرد اين است که اگر قرار است آنها تحت نورپردازي قرار گيرند، بايد ويژگي هاي خاصي داشته باشند. مهمترين نکته، وجود بردارهاي خاصي به نام بردار نرمال(normal vector) براي هر گره ميباشد. اين بردارها، همانطور که از نامشان پيداست با توجه به جهتي که قرار است شيء نسبت به منبع نوري داشته باشد بر گره عمود ميباشند. در محاسبات نورپردازي، زاويه بين منبع نوري و سطح اشياء (که تعيين کننده ميزان نور دريافتي هر سطح ميباشد) توسط همين بردار نرمال تعيين ميشود. براي اينکه مبحث نور را به پايان ببريم، لازم است نکته اي هم راجع به انواع منابع نوري بگوييم. بطور کلي نورها در طبيعت به سه دسته تقسيم ميشوند. نورهاي نقطه اي که براي مثال ميتوان از يک لامپ معمولي نام برد. اين نورها داراي موقعيت و جهت مشخص ميباشند و قادر هستند که محدوده اي مشخص از اطراف خود را روشن کنند. نوع ديگر نورهاي موازي ميباشند که به علت دور بودن بيش از حد منبع ساتع کننده از بيننده، هيچ موقعيتي را نميتوان براي آنها ذکر کرد. آنها تنها جهت دارند و خورشيد بهترين مثال از اين نوع است. دسته آخر منابع نوري، نورهاي پروژکتوري ميباشند که در واقع حالت خاصي از نورهاي نقطه اي هستند. تنها تفاوت اين دو دسته اين است که نورهاي پروژکتوري (يا نورهاي لکه اي) همه محيط اطراف خود را به يک شکل روشن نميکنند، بلکه همانند يک نورافکن، ناحيه اي مخروط وار را نورپردازي ميکنند. از جمله خصوصيات مشترک همه نورها، رنگ، شدت و ضريب رقيق شوندگي نور بر حسب فاصله تا منبع نوري است. شايد بتوان گفت بيش از نيمي از تکنيکهاي ويژه گرافيک کامپيوتري به مسئله نورپردازي مربوط ميشوند، از اين رو اين بخش از گستردگي زيادي برخوردار است و ميتوان با تغيير ماده سطح، رنگ نور، و رنگ گره ها هزاران جلوه بصري زيبا را خلق کرد. يکي ديگر از مباحثي که به شکل روز افزوني در گرافيک سه بعدي مطرح ميشود، مسئله بافت سطوح ميباشد. بافت يا(texture) در واقع تصويري دو بعدي است که به شکلي خاص بر روي سطوح و اجسام سه بعدي نگاشته ميشود تا به آنها ظاهري واقع گرايانه تر بدهد.
براي اينکه بتوانيم اشياء را در فضاي سه بعدي حرکت داد يا ظاهر کاملا پرسپکتيوي به وجود آورد به شاخه ي از رياضيات به نام جبرخطي نياز داريم. ماتريسها آرايه هاي چند بعدي از اعداد هستند که ميتوانند براي انجام بسياري محاسبات پيچيده بکار روند. در گرافيک سه بعدي ماتريسها حکم مفاصلي را دارند که ساير بخشها را به هم متصل ميکنند؛ از جمله کاربردهاي آنها تعريف يک محوطه ديد(viewport) براي نمايش اشياء است. همچنين ميتوان به کمک آنها تبديلات گوناگوني روي اشياء سه بعدي انجام داد. انتقال، چرخش، تغيير اندازه، منعکس کردن روي يک سطح (مثلا براي ايجاد سايه) را ميتوان از جمله رايج ترين عمليات ماتريسي ذکر کرد که در گرافيک سه بعدي خيلي کاربرد دارند. به کمک ماتريسها ميتوانيد کليه خصوصيات يک دوربين پيشرفته را در دنياي واقعي در محيطي مجازي شبيه سازي کنيد.
بردارها هم از جمله مولفه هاي پرکاربرد در گرافيک سه بعدي هستند که ارتباط تنگاتنگي با ماتريسها دارند. در واقع در گرافيک سه بعدي، همه مختصات اعم از موقعيت گره ها، بردارهاي نرمال، مختصات بافتها (و حتي بنوعي رنگها) بصورت برد (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)اري تفسير ميشوند. اين بردارها ميتوانند يک، دو، سه و يا چهار بعدي باشند. از ديگر نکاتي که شايد جالب به نظر برسد، ميتوان به تفسير رنگها توسط کامپيوتر اشاره کرد.
همه رنگها بر اساس ترکيبي از مولفه هاي قرمز، سبز و آبي ساخته ميشوند. واژه RGB هم از حروف اول اين کلمات گرفته شده است. معمولا مقدار هر يک از اين سه مولفه بين 0 تا 1 ميباشد. ميتوان با تنظيم مقادير مختلف براي اين متغيرها انواع رنگها را ايجاد کرد.
حال به نظر شما با چه ترتيبي تصاوير سه بعدي متحرک را بر روي مانيتور نمايش ميدهند. يکي از راههاي ساخت تصاوير متحرک توسط کاغذ، رسم تصاويري با اختلافات جزئي نسبت به هم بر روي صفحات متوالي کاغذ ميباشد، سپس ميتوانيد با ورق زدن اين صفحات، تصاوير متحرکي را مشاهده کنيد. در کامپيوتر معمولا دو (يا حداکثر سه) صفحه براي رسم تصاوير رنگي در نظر گرفته ميشوند. در اصطلاح به اين صفحه ها که مسئوليت نگهداري اطلاعات تک تک پيکسلهاي صفحه را دارند، بافر (buffer) گفته ميشود. بافرهاي گوناگوني در گرافيک سه بعدي بکار ميروند که ميتوان از بين آنها به دو بافر رنگي (color buffer) و بافر عمق اشاره کرد. بافر رنگي غالبا مجموعه اي از دو بافر مجزا به نامهاي بافر پشتي و بافر جلويي است. بافر جلويي (front buffer) صفحه اي است که در هر لحظه تصاوير را بر روي صفحه نمايش ميدهد. در همين حال که اطلاعات موجود در بافر جلويي بر روي صفحه هستند، برنامه شما در حال ايجاد تغييرات مورد نظر بر روي بافر پشتي (back buffer) است؛ به محض اينکه بافر پشتي آماده نمايش شد، جاي اين دو بافر عوض ميشود(در اصطلاح page-flipping)، اين روند تا انتهاي اجراي برنامه ادامه دارد و سرعت تعويض اين بافرها همان سرعت اجراي برنامه شماست که با واحد فريم در ثانيه (FPS) سنجيده ميشود. هر چه اين نرخ بالاتر باشد، تصويري هموارتر خواهيد داشت. چشمک زدن تصوير (flicker) مشکلي است که غالبا بواسطه پايين بودن نرخ فريم پيش مي آيد. معمولا نرخ فريمهاي بالاي 30، مناسب ميباشند. بطور کلي هر چه صحنه شما شلوغتر باشد و در آن از تکنيکها و اشياء بيشتري استفاده کرده باشيد نرخ فريم برنامه پايينتر مي آيد. بافر مهمي ديگر، بافر عمق ميباشد. بافر عمق (depth buffer) که گاهي اوقات بافر z هم ناميده ميشود وظيفه تنظيم رنگ نهايي پيکسلهاي روي مانيتور را بر عهده دارد. اگر يادتان باشد گفتيم که در گرافيک سه بعدي، همه چيز از يک سري نقاط به نام گره تشکيل شده است، گره هايي که همگي داراي مختصات سه بعدي در فضا ميباشند. معمولا سيستمهاي مختصاتي که در گرافيک سه بعدي بکار ميروند سمت مثبت محور x را جهت راست، سمت مثبت y را جهت بالا و سمت مثبت محور z را رو به بيرون يا داخل مانيتور در نظر ميگيرند. با اين توضيح، فرض کنيد شما در مختصات (10, 15, 5) يک کره رسم کرده ايد. اين کره قرمز رنگ ميباشد. حالا در قسمت ديگري از برنامه نياز به رسم يک مکعب آبي در مختصات (10, 15, 0) داريد. فرض ميکنيم از سيستم مختصات چپگرد استفاده شده باشد (يعني مختصه z به سمت داخل مانيتور ميباشد)، در نتيجه کره قرمز رنگ پشت سر مکعب آبي قرار خواهد گرفت و شما قاعدتا بايد تنها مکعب را در آن محل ببينيد. تعيين اينکه در هر موقعيت، چه شيئي و با چه رنگي بايد روي پيکسلهاي صفحه رسم شود، بر عهده بافر عمق ميباشد. بافر عمق، پس از ارسال موقعيت گره هاي هر شيء توسط شما آنها را ذخيره کرده، و در صورت رسم اشيائي ديگر (که احتمالا رنگ متفاوتي خواهند داشت) در موقعيتهاي قبلي، مختصه عمق (يا همان z) اشياء قديم و جديد را با هم مقايسه ميکند. پس از انجام اين تست، هر يک از اشياء که به بيننده نزديکتر بود ميتواند در نهايت پيکسلهاي صفحه را با رنگ خود، رنگ آميزي نمايد! مطالب فوق الذکر اسکلت گرافيک سه بعدي را بنا ميکنند، اما همه چيز به آنها ختم نميشود، و روز به روز، با پيشرفت کارتهاي گرافيکي، تکنيکهاي ويژه اي عرضه ميشوند که البته مبناي اکثر آنها همينهايي است که در بالا گفتيم. براي مثال در مبحث نور و بافت، ميتوان علاوه بر نورپردازي هاي معمولي و نگاشت بافتهاي ساده بر روي اشياء، بسياري از پديده هاي دنياي واقعي را هم شبيه سازي نمود. بعنوان نمونه، ميتوان به کمک يک ماتريس خاص و نوع ويژه اي از بافت زني (texture mapping)، جلوه انعکاس محيط اطراف بر روي اشياء را پياده سازي نمود. يا ميتوان بافتهاي حجمي را براي ايجاد جلوه رنگين کمان يا منشور نوري بکار برد. همچنين ميتوان با ترکيب مولفه هاي رنگي تصاوير، بافتهايي را بر روي اشياء نگاشت که به نظر برجسته مي آيند (اين تکنيک bump mapping نام دارد). ايجاد مه و ساير پديده هاي اتمسفري هم به راحتي در برنامه هاي گرافيکي امکان پذير ميباشد. اصولا دو نوع مه وجود دارد، يکي مه پيکسلي (table fog) که بصورت جدولي از پيش آماده شده در اکثر کارتهاي گرافيکي پياده سازي شده و ديگري مه گره اي (vertex fog) که با انجام محاسباتي بر روي گره هاي اشياء اعمال ميشود.
قبلا اشاره شد که ميتوان با استفاده از ماتريسها، تصاوير متحرک را بوجود آورد. اين نوع تصاوير متحرک، انيميشن از نوع ماتريسي ناميده ميشوند که علي رغم داشتن تواناييهاي بالا، امروزه بدلايلي کمتر از آنها استفاده ميشود. در عوض روش نسبتا جديدتري براي ايجاد انيميشن مورد استفاده قرار ميگيرد که در اصطلاح گرافيک سه بعدي، انيميشن اسکلتي خوانده ميشود. در اين روش که بيشتر براي متحرک کردن کاراکترهاي بازي بکار گرفته ميشود، ميتوان کل بدن و دست و پاي شخصيت بازي را بصورت يک شيء واحد ساخت. سپس با استفاده از قابليتهايي همچون پوست انعطاف پذير (skin)، حرکتهاي لازم به اجزاء مختلف بدن فرد داده ميشود.
از ديگر ويژگي هايي که ميتوان براي واقعي تر کردن يک صحنه سه بعدي از آن استفاده کرد، سايه ميباشد. سايه ها که ارتباط مستقيمي با نور دارند، بطور کلي شامل چند دسته ميشوند. ساده ترين نوع آنها (همانطور که در مبحث ماتريسها اشاره شد) با نگاشتن گره هاي يک شيء بر روي يک صفحه تخت بوجود مي آيد. اين نوع محدوديتهاي زيادي دارد. بنابراين جز در موارد خاص از آن استفاده نميشود. نحوه ديگر پياده سازي سايه، کاربرد بافتهايي ميباشد که حاوي تصاوير رندر شده از سايه ها و ساير اثرات نورها در صحنه ميباشند. به اين تصاوير ويژه light map گفته ميشود. اين روش سريعترين نوع ايجاد سايه است. ولي تنها ميتوان براي اعمال سايه بر روي سطوح تخت از آن استفاده کرد. انعطاف پذير ترين نوع سايه ها، سايه هاي حجمي هستند. سايه هاي حجمي (shadow volume) ميتوانند بر روي هر نوع سطحي اعمال شده، و حتي قابليت ايجاد سايه براي اشياء متحرک را هم دارا ميباشند. البته بايد توجه داشت که اين، پيچيده ترين و کندترين نوع سايه ها هم ميباشد. از سيستمهاي ذره اي (particle system) معمولا براي شبيه سازي پديده هاي طبيعي همچون برف، باران، آتش، انفجار و گرد و غبار استفاده ميشود. سخت افزارهاي جديد، داراي اشياء آماده اي ميباشند که ميتوانند بطور مستقيم رندر شده، و حتي تصويري را هم بعنوان بافت بر روي خود داشته باشند. بدين ترتيب ميتوان با تنظيم موقعيت، سرعت حرکت، تعداد، طول عمر، رنگ و بافت اين ذرات (point sprite) انواع پديده ها از جمله آتش و برف و باران را به شکلي کاملا واقعي در صحنه هاي سه بعدي ايجاد کرد. قبلا به بافرها اشاره کرديم، ولي يک بافر مهم ديگر هم وجود دارد. يعني بافر استنسيل (stencil buffer) که تکنيکهاي بسيار زيادي توسط آن قابل پياده سازي ميباشند. از جمله اين تکنيکها سايه حجمي (که پيشتر به آن اشاره شد)، آينه، ماسک کردن تصوير، برش زدن مناطق دلخواهي از تصوير، ايجاد اشياء شفاف، محو تصاوير در پس زمينه و ترکيب تصاوير با هم ميباشد. در آخر هم بايد به سايه زنها اشاره کنيم. سايه زنها (shader) در واقع پرده آخري ميباشند که فراروي شما قرار دارند. با عرضه سايه زنها، و زبانهاي سايه زني، انقلابي در عرصه گرافيک کامپيوتري ايجاد شد و بسياري از محدوديتهاي که تا چندي پيش در سر راه برنامه نويسان گرافيکي (بخصوص سازندگان بازي) قرار داشتند عملا کنار رفتند. امروزه سايه زنهاي گره، سايه زنهاي پيکسل، سايه زنهاي بافت و سايه زنهاي نوري وارد صحنه شده اند و ميتوان توسط زبانهايي مثل Assembly، C، و حتي Delphi براي آنها برنامه نوشت. وقتي شما از سايه زنها استفاده ميکنيد، به گونه اي خط رندر کارتهاي گرافيکي را بطور کامل تحت تسلط خود در آورده ايد. در اينجا کليه عمليات، از گرفتن گره هاي ورودي، پردازش، تبديل، برش، و نگاشت آنها تا پياده سازي فرمولهاي مه، نورپردازي، بافت زني، سيستمهاي ذره اي و انعکاسهاي نوري بر عهده خودتان ميباشد. حتي ميتوانيد در سطحي پايينتر، بر روي تک تک پيکسلهاي صفحه کار کنيد و آنها را با فرمولهاي ابداعي خودتان تحت تبديلات مختلف قرار دهيد.
در انتها نام چند از بزر گان و پايه گذاران گرافيک کامپيوتري سه بعدي را ذکر ميکنيم :
افرادي چون James Blinn، Andy Catmull، Phillip Taylor و John Carmack
در کل مي توان گفت اين مقوله هر روز رو به گسترش و پيشرفت است وجاي کار بسياري براي افراد کنجکاو و جوياي پيشرفت دارد به عنوان مثال مي توان به مبحث سايه زنها که در پيش شرح داده شد اشاره کرد که امروزه موضوع اصلي رقابت سازندگان کارت هاي گرافيک است.
به اميد روزي که متخصصان ايراني جاي واقعي خود را در اين زمينه پيدا کنند.
takdownload.ir
"مقدمه :
طراحي گرافيکي با تاريخچه انسان هاي غارنشين گره خورده است . نقاشي هاي روي غارهايlascavx و يا تولد زبان نوشتاري در هزاره سوم و چهارم قبل از ميلاد هر دو مراحل مهمي در تاريخچه طراحي گرافيکي هستند.از اولين نمونه هاي طراحي گرافيکي مي توان به Book Of Kell اشاره کرد.پس از آن ناشري به نام ويليام مورس در فاصله سالهاي 1892تا 1896 اقدام به چاپ کتابهايي کرد که رد پاي برخي محصولات گرافيکي مهم در آنها به چشم مي خورد و به اين ترتيب توانست تجارت منا (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)فعي را در بخش کتاب راه اندازي کند.کار وي به همراه ديگر جنبشهاي انتشاراتي خصوصي بطور غير مستقيم مسئول توسعه و ارتقاي طراحي گرافيکي در اوايل قرن بيستم محسوب مي شود.
و در سطوح پيشرفته تر به حسابان ، معادلات ديفرانسيل و روشهاي عددي اشاره کرد.
اگر بگوييم IT نقش مهمي در تحول گرافيک داشته است، حرف نامربوطي نزده ايم . گرافيک رايانه اي يکي از قديمي ترين شاخه هاي علوم کامپيوتر است که به ترسيم ، تغيير و کار با تصاوير به شيوه محاسباتي و کامپيوتري اقدام مي کند.اين شاخه يکي از پرجاذبه ترين و وسيعترين کاربردهاي رايانه هاست.بازي هاي رايانه اي ، برنامه هاي ساخت انيميشن هاي دو بعدي و سه بعدي شبيه سازي هاي محاسباتي و پردازش تصاوير را مي توان به عنوان چند نمونه از اين کاربردها نام برد. در اين صورت مي توان گرافيک را به دودسته کلاسيک و مدرن تقسيم بندي کرد. برخي از کاربردهاي گرافيک مثل تهيه پوستر را مي توان به دو روش انجام داد اما کاربردهايي مثل طراحي وب سايت ها را نمي توان در دسته کلاسيک گنجاند. چنين کاربردهايي در اصل به واسطه علم IT به وجود آوده اند.
در اواسط دهه 1980 آمدن ادوات کامپيوتري و نرم افزاري توانست نسل جديدي از طراحان تصاوير کامپيوتري را بوجود آورد . اين نسل توانست از عهده طراحي هايي برآيد که تا پيش از اين و بدون استفاده از اين ابزارها کاري سخت وتقريبا محال بود . گرافيک کامپيوتري طراحان را قادر کرد که در لحظه به تاثيرات طرح بندي ها و يا تغييرات اعمال شده در اثرشان بدون استفاده از جوهر پي ببرند و بدون نياز به فضايي زياد بتوانند تاثيرات اين رسانه سنتي راشبيه سازي کنند . گرچه باز هم از ابزارهاي سنتي مثل مداد و يا انواع ماژيک ها براي به اجرا در آوردن ايده هاي اوليه و خام بر روي کاغذ استفاده مي شود اما در نهايت کار اصلي را کامپيوتر و به واسطه انواع نرم افزار هاي گرافيکي انجام مي دهد .
گرافيک رايانه اي به استفاده وسيع از رياضيات کاربردي نياز دارد. از مهمترين زمينه هاي مربوط مي توان به هندسه مسطحه ، هندسه فضايي ، جبر خطي و در سطوح پيشرفته تر به حسابان ، معادلات ديفرانسيل و روشهاي عددي اشاره کرد.
گرافيک رايانهاي ( ( Computer Graphics:
يکي از قديميترين شاخههاي علوم رايانه است که به ترسيم، تغيير، و کار با تصاوير به شيوههاي محاسباتي و رايانهاي اقدام مينمايد. گرافيک رايانهاي يکي از پرجاذبهترين و وسيعترين کاربردهاي رايانههاست. بازيهاي رايانهاي، برنامههاي ساخت پويانمايي دوبعدي و سهبعدي، شبيهسازيهاي محاسباتي و پردازش تصاوير را ميشود بهعنوان چند نمونه نام برد. اصولا وقتي صحبت از گرافيک در کامپيوتر به ميان مي آيد با دو مسئله روبرو هستيم، گرافيک دو بعدي و گرافيک سه بعدي. البته الان ديگر به لطف کارتهاي گرافيکي سريع که از قابليتهاي سه بعدي به بهترين شکل پشتيباني ميکنند، گرافيک دو بعدي جايگاه خود را از دست داده است.
بردارها و پيکسلها :
اجرا و ايجاد گرافيک کامپيوتري با دو روش متفاوت امکان پذير اشت:
روش برداري (Vector) و روش پيکسلي . در روش برداري يک نقطه در تصوير توسط يک خط برداري به نقطه ي بعدي در همان تصوير مرتبط مي شود. مي توانيد خطهاي برداري را بدلخواه ادامه داده و سپس انتهاي خط را بسته و محيط داخل آن را رنگ آميزي نماييد. خطها و نقاط انتهايي آنها در نقاط با مختصات مطلق در فضاي طراحي قرار دارند و بهمين دليل مي توانيد خطها را بسادگي تغيير مقياس و اندازه دهيد.
اين روش براي ايجاد لوگوها و آرم ها و گرافيک هاي تحت وب بسيار مناسب است. برنامه هايي مانند کورل دراو يا فري هند ياIllustrator از همين روش براي ايجاد گرافيک کامپيوتري استفاده مي کنند.
اما در روش پيکسلي از تعداددي نقاط چهارضلعي کوچک به نام پيکسلها براي ساخت تصاوير Bitmap استفاده مي کنيم . هر نقطه ممکن است يک رنگ متفاوت اختيار نموده و به کمک آرايه هاي گوناگون از اين نقاط مي توانيد تصاوير يا عکسهاي دلخواه را ايجاد نماييد. هرچه پيکسل در يک تصوير بيشتر باشد حجم فايل آن تصوير بزرگتر و کيفيت آن بهتر خواهد بود. تعداد پيکسلهاي قرار گرفته در يک تصوير را کيفيت ياResolution آن تصوير مي نامند.
اما تصاوير پيکسلي (Bitmap ) مانند تصاوير برداري قابليت مقياس پذيري ندارند. اگر يک تصوير پيکسلي را بيش از اندازه بزرگ نموده يا بر روي آن تمرکز نماييد، آن تصوير به شکل پيکسل پيکسل ظاهر خواهد شد . برنامه هايي مانند فتوشاپ ياCorel photo-paint از اين روش براي ايجاد گرافيک کامپيوتري استفاده مي کنند.
گرافيک دوبعديTwo Dimensional graphics ) ( :
تمامي تصاوير ثبت شده به وسيله رايانه که از يک نماي ثابت بدست آمدهاست و قديمي ترين راه ويرايش تصاوير به وسيله رايانهاست تا صحنهاي که بدست ميآيد صحنه ثبت شده از يک نما باشد . که به شاخههاي مختلف تقسيم ميگردد.(نقاشي ديجيتالي -ويرايش تصاوير- انيميشن)
نقاشي ديجيتالي :
نقاشي ديجيتالي در مجموع به تصاوير خلق شده توسط رايانه که به وسيله نرم افزارهاي مختلف ايجاد ميشود، اطلاق ميگردد. اين شاخه از گرافيک دو بعدي به شيوههاي مختلف انجام ميپذيرد درست مثل نقاشي دستي شيوههاي مثل رئال يا سورئال دارد.
ويرايش تصاوير :
ويرايش تصاوير به ايجاد تغييرات در تصاويري گفته ميشود که در گذشته به وسيله وروديها به رايانه داخل شده است . مانند رتوش تصاوير در عکاسيها يا ويرايش چند عکس براي يک صحنه فيلم . براي معرفي بهترين نرم افزار براي اين کار ميتوان به نرم افزار Photoshop از شرکت Adobe نام برد.
انيميشن :
اين شيوه را تمامي ما ميشناسيم امروزه بيشتر فيلمهاي کارتوني به اين شيوه توليد ميشوند. ايجاد تصاوير ديجيتالي و کنار هم قرار دادن آنها را انيميشن مينامند. در گرافيک دوبعدي مقولاتي از جمله کارتون هاي معمولي به چشم ميخورد. شايد بتوان گفت تصاوير بطور کلي مهمترين عنصر گرافيک دو بعدي را تشکيل ميدهند. از جمله مهمترين فعاليتهايي که در گرافيک دو بعدي انجام ميگيرد، خواندن، نمايش، تغيير موقعيت، تغيير اندازه، چرخش و فيلتر کردن يک تصوير ميباشد. اين تصوير ميتواند يک فايل بر روي کامپيوتر باشد (مثلا با فرمت jpg يا bmp) يا ميتواند مستقيما در برنامه و توسط کد نويسي توليد شود. به هر صورت سخت افزارهاي گرافيکي که تا قبل از سال 95 در بازار موجود بودند، عمدتا بر روي اين قابليتها تمرکز داشتند. بعنوان نمونه، الان تقريبا همه کارتهاي گرافيکي (چه دو بعدي و چه سه بعدي) داراي بخشي ويژه براي رسم تصاوير در صفحه ميباشند. عمليات blit – که مخفف کلمات bit-block transfer (به معناي انتقال تکه اي از بيتها) ميباشد – به نوعي هسته مرکزي فعاليتهاي يک کارت گرافيکي در حالت دو بعدي را ميسازد. همچنين بسياري از سخت افزارها داراي چيپ ويژه اي جهت کشيدن و جمع کردن تصاوير ميباشند. اين تکنيک که image stretching نام دارد در برنامه هاي سه بعدي هم کاربرد فراواني دارد. از جمله بخشهاي مهم گرافيک دو بعدي ميتوان به فونتها براي رسم مطالب بر روي صفحه اشاره کرد. فونتها هم اغلب توسط تصاوير نمايش داده ميشوند. از ديگر فرآيندهايي که در هنگام کار با تصاوير انجام ميگيرد، ماسک کردن بخشي از تصوير ميباشد، تا به اين شکل بتوان جلوه هاي ويژه متعددي را ايجاد کرد. اين تکنيک که امروزه در گرافيک سه بعدي هم کاربرد فراواني دارد، در بخش گرافيک سه بعدي بطور مفصلتري بررسي خواهد شد. اگر بخواهيم نمونه هايي گويا از برنامه هاي گرافيک دو بعدي را مثال بزنيم، ميتوانيم به بازيهاي دهه هشتاد و نود اشاره کنيم؛ در آن زمان تقريبا اکثر بازيها دو بعدي بودند و همگي بر يک اصل استوار بودند: نمايش تصاوير ثابت به شکل پشت سر هم بطوري که حرکت را القاء کند. نهايت هنري که ميتوانستند به خرج دهند ايجاد صحنه هايي مثل انفجار، بارش باران يا انعکاس نور البته در حد بسيار ابتدايي بود که اين کارها عمدتا توسط تصاوير از پيش آماده شده انجام ميگرفت. با ورود کارتهاي جديدتر و با قابليتهاي سه بعدي بالا، اگرچه بسياري از خصوصيات گذشته حفظ و حتي تقويت شد، وليکن عناصر جديدي به اين جمع اضافه گشت.
حال به بررسي اصول اشکال دوبعدي مي پردازيم :
اگر دو نقطه در فضا را به يکديگر وصل کنيد ، يک خط ( Line ) خواهيد داشت . به عنوان مثال اگر دونقطه( 0,0,0 ) و ( 5,5,0 ) را به يکديگر وصل کنيد ، خطي بين اين دو نقطه خواهيد داشت . حال اگر خط مزبور را تا نقطه ( 9,3,0 ) ادامه دهيد ، يک چندخطي ( Polyline ) بوجود ميايد . در صورت اتصال نقطه آخر به مبدا يک شکل بسته يا يک چندضلعي ( Polygon ) را در اختيار خواهيد داشت . به شکل زير دقت کني (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)د :
صفحه سه ضلعي ( Face ) بوجود آمده در شکل بالا ، مبناي تشکيل دهنده ساختمان موضوعات ( Objects ) در محيط سه بعدي ميباشد.
تمايز اشکال بسته ( Closed Shape ) از اشکال باز ( Open Shape ) از اهميت زيادي برخورداره . اين بدين خاطره که بسياري از اشکال دوبعدي را قبل از بستن نمي توان به موضوعات سه بعدي تبديل کرد.
بطور کلي يک چندضلعي ( Polygon ) داراي سه عنصر بنيادي به شرح زير است :
1 - گره يا راس ( Vertex ) :
نقطه اي است که تعدادي از خطوط در آن جا به يکديگر متصل ميشوند . به عبارت ديگر ، گره يا راس نقطه تقاطعي واقع در فضاي سه بعدي ميباشد. ( تعريف علمي : راس يک نقطه بدون بعد در فضا است . راسها در هر دو اشيا دوبعدي و سه بعدي يافت ميشوند )
2 - لبه ( Edge ) :
هريک از خطوط قرار گرفته بين دو گره از يک چند ضلعي را اصطلاحا يک لبه ميگويند .
3 - صفحه يا وجه ( Face ) :
وقتي که يک شکل بسته دوبعدي در اختيار داشته باشيد ، به ناحيه محصور توسط لبه هاي آن شکل اصطلاحا صفحه يا وجه ميگويند .
پاره خط ( Segment ) :
همانطور که در شکل با
لا مشاهده ميکنيد ، خطي که دو راس را به يکديگر متصل ميکند پاره خط ناميده ميشود . ( در واقع پاره خطها از اجزا بنيادين چندضلعي ها به حساب نمي آيند . )
نکته بسيار مهم : بنيادي ترين عنصر عناصر سه بعدي ، همين وجوه ( Face ) هستند و در واقع اشکال پيچيده از کنار هم قرار گرفتن وجوه مختلف تشکيل ميشود مانند شکل زير :
گرافيک سه بعدي : (Three Dimensional graphics)
تصاوير سه بعدي که اصطلاحا استريوگرام ناميده ميشوند. در واقع تصاوير مسطح دوبعدي هستند که بعد سوم آنها در ميان دو بعد ديگر پنهان است.شيوه پديدار ساختن بعد سوم در اينگونه تصاوير به اين نحو است که نخست بيننده تصاوير را در نزديک بيني خود نگاه داشته و سپس با آهستگي از صورت خود دور مي کند به اين ترتيب با دور شدن تصوير از چشمان بيننده بعد سوم تصاوير پديدار مي شود.
سالها گذشت تا سرانجام گروهي از دانشمندان توانستند با ادغام دو استريو گرام در يک تصوير يک اتواستريوگرام پديد آورند که تماشاي آن به هيچ وسيله اي نياز نداشت و بدين سان بود که آنها توانستند براي نخستين بار در طول تاريخ تصاوير استريوگرامي را که از نقاط تصادفي سياه و سفيد تشکيل شده بود با بکارگيري کامپيوتر اپل-2 توليد نمايند. در اين کامپيوتر به وسيله برنامه نويسي به وسيله زبان بيسيک تصاويري بر اساس نقاط تصادفي و گاها غير تصادفي خلق مي شد . از اين زمان بود که عملا رايانه و نرم افزارهاي رايانه اي و برنامه نويسي توانست جايگزين دستگاههاي فيزيکي براي ايجاد استريو گرام شود.شايد ورود رايانه به حوزه تصاوير سه بعدي را بتوان نقطه عطفي در تاريخ استريوگرام دانست.با پيشرفت رايانه و تلاشهاي متخصصين سرانجام سال 1991 نخستين استريوگرام تمام رنگي با استفاده از نرم افزارهاي کامپيوتري مدلسازي سه بعدي و تکنيکهاي رايانه اي ايجاد شد و از آن به بعد بود که استريوگرام به گونه تجاري و در قالب کتب و مجلات مختلف به بازار عرضه شد . ورود تصاوير استريوگرام در سالهاي نخست دهه هفتاد شمسي به کشورمان هم با استقبال نسبتا خوبي مواجه شد و مجلات و کتب متعددي که در اين زمينه و حاوي تصاوير استريوگرام مختلف به بازار آمد.
به جرات ميتوان گفت گرافيک سه بعدي بر مبناي گره ها و چند ضلعي ها (polygon) بنا شده است. در واقع گره ها (vertex) در گرافيک سه بعدي حکم اعداد در رياضي را دارند. هر کاري که بخواهيم انجام دهيم به نوعي به گره ها مربوط ميشود. آنها هستند که اشياء ما را ميسازند، در نورپردازي ها استفاده شده و بافت زني ميشوند. حتي ميتوان با انتقال آنها در فضاي سه بعدي تصاوير متحرک را نيز به آساني بدست آورد.
اصول گرافيک سه بعدي :
فضاي سه بعدي :
فضاي سه بعدي ( 3D Space ) عبارت از يک مکعب رياضي تعريف شده در داخل کامپيوتر و کنترل شده توسط نرم افزارهاي گرافيکي ميباشد.
همانند فضاي واقعي ، محيط سه بعدي داخل نرم افزار نيز نامحدود بوده و ضمن استفاده از مختصات مناسب مشخص ميگردد. مختصات :
در فضاي سه بعدي ، کوچکترين فضاي قابل اشغال عبارت از يک نقطه ( Point ) مي باشد.
هر نقطه توسط مجموعه منحصر بفردي از سه عدد که اصطلاحا به آن مختصات ( Coordinates ) گفته ميشود ، در فضاي سه بعدي مشخص ميگردد. به عنوان مثال مختصات مبدا يا مرکز فضاي سه بعدي توسط مختصات ( 0,0,0 ) معرفي ميشود.
به اين ترتيب هر نقطه از فضاي سه بعدي داراي يک مختصات منحصر بفرد بوده که به ترتيب نمايانگر ارتفاع ، عرض و عمق آن نقطه ميباشد.
محورها :
هر محور ( Axis ) عبارت از يک خط فرضي است که يک امتداد خاص در فضاي سه بعدي را مشخص ميکند. بطور کلي سه محور استاندارد Y ، X و Z وجود دارد که در شکل زير ميبينيد :
کاربردهاي مشترک گرافيک سه بعدي :
گرافيک سه بعدي در برنامه هاي کامپيوتري جديد کاربرد بسياري دارد. که برنامه ها از گرافيک سه بعدي استفاده ميکنند از بازيهاي اينتراکتيو سه بعدي تا شبيه سازي و پزشکي و مصارف شغلي متفاوت است. محصولات پر کيفيت سه بعدي راه خودشان را به سمت فيلمها و صنعت و آموزش به خوبي پيدا کرده اند. Real-time 3D :
گرافيک هاي سه بعدي بلادرنگ متحرک هستند و با کاربر فعل و انفعال دارند. يکي از اولين استفاده ها از گرافيک بلادرنگ سه بعدي شبيه سازي پرواز در امور نظامي بود.
برنامه ها براي گرافيک سه بعدي بر روي کامپيوترها تقريبا بيشمار هستند. شايد عمومي ترين استفاده از گرافيک کامپيوتري سه بعدي بازيهاي رايانه اي باشند. امروزه به سختي ميتوان کامپيوتري را يافت که نياز به يک کارت گرافيک سه بعدي نداشته باشد. سه بعدي هميشه براي تجسمات علمي و برنامه هاي مهندسي معروف بوده است. رابط هاي گرافيکي نرم افزاري هم از سخت افزار سه بعدي استفاده فراوان ميبرند. براي مثال ورژن کنوني سيستم عامل مکينتاش يعني Mac OS X براي رندر کردن تمام پنجرهها و کنترلها و جلوه هاي تصويري از OpenGL استفاده ميکند.
گرافيک سه بعدي غير همزمان Non-Real-Time :
براي برنامههايي که از گرافيک سه بعدي بلادرنگ استفاده ميکنند قانوني وجود دارد. با دادن فرصت بيشتري براي پردازش تصاوير شما ميتوانيد گرافيکهاي سه بعدي با کيفيت بالاتري ايجاد نماييد. به طور مثال بعضي از نرم افزارهاي مدل سازي از گرافيک سهبعدي بلادرنگ براي تقابل با هنرمند براي خلق محتواي مورد نظرش استفاده ميکنند. سپس تصاوير به برنامه ديگري فرستاده ميشوند (ray tracer) که تصاوير را رندر ميکنند. رندر کردن يک فريم تنها براي انيميشني مانند داستان اسباب بازي به ساعتها زمان بر روي يک کامپيوتر سريع نياز دارد. اين پروسه رندر و ذخيره سازي صدها فريم يک انيميشن را ميسازد که بطور رشته متوالي قابل پخش مجدد ميباشد. اگرچه پخش تصاوير انيميشن ممکن است يک عمل بلادرنگ به نظر برسد اما اينطور نيست. چون آن اينتراکتيو نيست در نتيجه آن بلادرنگ نيست بلکه بيشتر يک سري تصاوير از پيش رندر شده ميباشد.
شايد تا حالا واژه رندر (render) را زياد شنيده باشيد، اين عبارت در کل به معناي خلق تصاوير دو بعدي از اشياء سه بعدي بر روي صفحه کامپيوتر ميباشد. از گره شروع ميکنيم تا ببينيم اشياء سه بعدي که در صفحه مانيتور ميبينم واقعا از چه چيزي تشکيل شده اند. يک مکعب را در نظر بگيريد. مکعبها هشت گوشه دارند که اين هشت گوشه خود شش وجه ميسازند. هر يک از وجوه( face) يک مربع هستند. و ميتوان گفت که هر مربع از کنار هم قرار گرفتن دو مثلث تشکيل شده است.
سخت افزارهاي گرافيکي در حقيقت فقط ميتوانند سه عنصر نقطه، خط، و مثلث را رسم کنند بايد گفت که حتي پيچيده ترين سطوح - از يک مربع ساده گرفته تا يک نوار موبيوس – از مثلثها تشکيل شده اند. يک نکته مهم در مورد کارت هاي گرافيکي اين است که آنها به هيچ وجه قادر نيستند بطور مستقيم منحني رسم کنند، و حتي چند ضلعي هاي بيشتر از سه گوش را هم عملا نميشناسند. نکته مهم ديگر اين که هم صفحه بودن در گرافيک کامپيوتري بسيار با اهميت ميباشد، و از اين رو تنها سطحي که سخت افزارهاي سه بعدي قادر به رسم مستقيم آن هستند، مثلث ميباشد. عمليات شکستن سطوح منحني به مثلثهاي کوچک، tessellation ناميده ميشود که اين روزها در برنامه هاي گرافيکي بعنوان يک قابليت مهم تلقي ميشود. در واقع اصطلاح Higher Order Primitive (اشياء سطح بالا) به اشيائي اشاره دارد که هم صفحه نيستند، مثلا سطوح درجه دو يا منحني ها. اگرچه ممکن است خيلي برنامه ها آنها را تنها با گرفتن چند ورودي از شما بر روي صفحه رسم کنند، ولي چيزي که اتفاق مي افتد با چيزي که شما بر روي تصوير ميبينيد اندکي فرق ميکند. بسته به وضوح صفحه، فاصله شيء از شما و توان گرافيکي سيستم، سطوح منحني بر طبق محاسبات پيچيده و سنگين به يک سري مثلث کوچک تبديل ميشوند. هر چه در يک محل تعداد اين مثلثهاي کوچک بيشتر باشد منحني شما هموارتر به نظر ميرسد. از ساير ويژگي هاي اشياء سه بعدي بايد به قابليت آنها براي دريافت نور و در نتيجه داشتن رنگ اشاره کرد. بدون نور هيچ چيز قابل رويت نميباشد و اگر هم بتوان اشياء را ديد، نهايتا به شکل کاملا تخت و دو بعدي ميسر خواهد بود. هنگامي که اشياء موجود در يک صحنه را رسم ميکنيد بايد به نحوه نورپردازي هم کاملا فکر کنيد، زيرا زيباترين اشکال سه بعدي بدون وجود نور مناسب جلوه خوبي نخواهند داشت. در واقع دو مبحث نور و رنگ ارتباط تنگاتنگي با هم دارند؛ رنگ، دريافت چشمان ما از نوري است که به سطوح برخورد کرده و انعکاس مي يابد. نور هم مجموعه اي از فوتونهاست که با برخورد به سلولهاي مخروطي چشمها، آنها را تحريک ميکند. حالا بار ديگر به مثال مکعب بازميگرديم، همانطور که در طبيعت همه اشياء داراي سطح و رنگ مخصوص به خود ميباشند، اشکال سه بعدي درون صفحه کامپيوتر هم بايد داراي ويژگي خاصي باشند که نوع واکنش آنها در مقابل نور را مشخص کند. در اصل، خصوصيات سطحي هر جسم ماده آن جسم ناميده ميشوند. ماده يا(material) ميتواند نشانگر رنگ نهايي يک جسم در حالتي باشد که نورپردازي اعمال ميشود. شما ميتوانيد بسته به نياز، از نورپردازي استفاده نکنيد و تنها از رنگهاي ثابت براي اشياء بهره ببريد. از نکات مهم ديگر نحوه سايه زني اشياء است، به شکل زير توجه کنيد :
معمولا تکنيکهايي که ظاهري زيباتر و هموارتر را بوجود مي آورند به ميزان محاسبات بيشتري نياز داشته و بنابراين سرعت اجراي برنامه را پايين مي آورند. يکي از مواردي که در حين ساخت اشياء سه بعدي بايد مد نظر قرار گيرد اين است که اگر قرار است آنها تحت نورپردازي قرار گيرند، بايد ويژگي هاي خاصي داشته باشند. مهمترين نکته، وجود بردارهاي خاصي به نام بردار نرمال(normal vector) براي هر گره ميباشد. اين بردارها، همانطور که از نامشان پيداست با توجه به جهتي که قرار است شيء نسبت به منبع نوري داشته باشد بر گره عمود ميباشند. در محاسبات نورپردازي، زاويه بين منبع نوري و سطح اشياء (که تعيين کننده ميزان نور دريافتي هر سطح ميباشد) توسط همين بردار نرمال تعيين ميشود. براي اينکه مبحث نور را به پايان ببريم، لازم است نکته اي هم راجع به انواع منابع نوري بگوييم. بطور کلي نورها در طبيعت به سه دسته تقسيم ميشوند. نورهاي نقطه اي که براي مثال ميتوان از يک لامپ معمولي نام برد. اين نورها داراي موقعيت و جهت مشخص ميباشند و قادر هستند که محدوده اي مشخص از اطراف خود را روشن کنند. نوع ديگر نورهاي موازي ميباشند که به علت دور بودن بيش از حد منبع ساتع کننده از بيننده، هيچ موقعيتي را نميتوان براي آنها ذکر کرد. آنها تنها جهت دارند و خورشيد بهترين مثال از اين نوع است. دسته آخر منابع نوري، نورهاي پروژکتوري ميباشند که در واقع حالت خاصي از نورهاي نقطه اي هستند. تنها تفاوت اين دو دسته اين است که نورهاي پروژکتوري (يا نورهاي لکه اي) همه محيط اطراف خود را به يک شکل روشن نميکنند، بلکه همانند يک نورافکن، ناحيه اي مخروط وار را نورپردازي ميکنند. از جمله خصوصيات مشترک همه نورها، رنگ، شدت و ضريب رقيق شوندگي نور بر حسب فاصله تا منبع نوري است. شايد بتوان گفت بيش از نيمي از تکنيکهاي ويژه گرافيک کامپيوتري به مسئله نورپردازي مربوط ميشوند، از اين رو اين بخش از گستردگي زيادي برخوردار است و ميتوان با تغيير ماده سطح، رنگ نور، و رنگ گره ها هزاران جلوه بصري زيبا را خلق کرد. يکي ديگر از مباحثي که به شکل روز افزوني در گرافيک سه بعدي مطرح ميشود، مسئله بافت سطوح ميباشد. بافت يا(texture) در واقع تصويري دو بعدي است که به شکلي خاص بر روي سطوح و اجسام سه بعدي نگاشته ميشود تا به آنها ظاهري واقع گرايانه تر بدهد.
براي اينکه بتوانيم اشياء را در فضاي سه بعدي حرکت داد يا ظاهر کاملا پرسپکتيوي به وجود آورد به شاخه ي از رياضيات به نام جبرخطي نياز داريم. ماتريسها آرايه هاي چند بعدي از اعداد هستند که ميتوانند براي انجام بسياري محاسبات پيچيده بکار روند. در گرافيک سه بعدي ماتريسها حکم مفاصلي را دارند که ساير بخشها را به هم متصل ميکنند؛ از جمله کاربردهاي آنها تعريف يک محوطه ديد(viewport) براي نمايش اشياء است. همچنين ميتوان به کمک آنها تبديلات گوناگوني روي اشياء سه بعدي انجام داد. انتقال، چرخش، تغيير اندازه، منعکس کردن روي يک سطح (مثلا براي ايجاد سايه) را ميتوان از جمله رايج ترين عمليات ماتريسي ذکر کرد که در گرافيک سه بعدي خيلي کاربرد دارند. به کمک ماتريسها ميتوانيد کليه خصوصيات يک دوربين پيشرفته را در دنياي واقعي در محيطي مجازي شبيه سازي کنيد.
بردارها هم از جمله مولفه هاي پرکاربرد در گرافيک سه بعدي هستند که ارتباط تنگاتنگي با ماتريسها دارند. در واقع در گرافيک سه بعدي، همه مختصات اعم از موقعيت گره ها، بردارهاي نرمال، مختصات بافتها (و حتي بنوعي رنگها) بصورت برد (<p><b><font color="red" face="Tahoma" size="2">[<span lang="fa">مشاهده فقط برای
اعضا امکان پذیر است </span>. <a href="http://www.iranpardis.com/register.php">
<span lang="fa">برای ثبت نام اینجا کلیک کنید </span>...</a>]</font></b></p>
)اري تفسير ميشوند. اين بردارها ميتوانند يک، دو، سه و يا چهار بعدي باشند. از ديگر نکاتي که شايد جالب به نظر برسد، ميتوان به تفسير رنگها توسط کامپيوتر اشاره کرد.
همه رنگها بر اساس ترکيبي از مولفه هاي قرمز، سبز و آبي ساخته ميشوند. واژه RGB هم از حروف اول اين کلمات گرفته شده است. معمولا مقدار هر يک از اين سه مولفه بين 0 تا 1 ميباشد. ميتوان با تنظيم مقادير مختلف براي اين متغيرها انواع رنگها را ايجاد کرد.
حال به نظر شما با چه ترتيبي تصاوير سه بعدي متحرک را بر روي مانيتور نمايش ميدهند. يکي از راههاي ساخت تصاوير متحرک توسط کاغذ، رسم تصاويري با اختلافات جزئي نسبت به هم بر روي صفحات متوالي کاغذ ميباشد، سپس ميتوانيد با ورق زدن اين صفحات، تصاوير متحرکي را مشاهده کنيد. در کامپيوتر معمولا دو (يا حداکثر سه) صفحه براي رسم تصاوير رنگي در نظر گرفته ميشوند. در اصطلاح به اين صفحه ها که مسئوليت نگهداري اطلاعات تک تک پيکسلهاي صفحه را دارند، بافر (buffer) گفته ميشود. بافرهاي گوناگوني در گرافيک سه بعدي بکار ميروند که ميتوان از بين آنها به دو بافر رنگي (color buffer) و بافر عمق اشاره کرد. بافر رنگي غالبا مجموعه اي از دو بافر مجزا به نامهاي بافر پشتي و بافر جلويي است. بافر جلويي (front buffer) صفحه اي است که در هر لحظه تصاوير را بر روي صفحه نمايش ميدهد. در همين حال که اطلاعات موجود در بافر جلويي بر روي صفحه هستند، برنامه شما در حال ايجاد تغييرات مورد نظر بر روي بافر پشتي (back buffer) است؛ به محض اينکه بافر پشتي آماده نمايش شد، جاي اين دو بافر عوض ميشود(در اصطلاح page-flipping)، اين روند تا انتهاي اجراي برنامه ادامه دارد و سرعت تعويض اين بافرها همان سرعت اجراي برنامه شماست که با واحد فريم در ثانيه (FPS) سنجيده ميشود. هر چه اين نرخ بالاتر باشد، تصويري هموارتر خواهيد داشت. چشمک زدن تصوير (flicker) مشکلي است که غالبا بواسطه پايين بودن نرخ فريم پيش مي آيد. معمولا نرخ فريمهاي بالاي 30، مناسب ميباشند. بطور کلي هر چه صحنه شما شلوغتر باشد و در آن از تکنيکها و اشياء بيشتري استفاده کرده باشيد نرخ فريم برنامه پايينتر مي آيد. بافر مهمي ديگر، بافر عمق ميباشد. بافر عمق (depth buffer) که گاهي اوقات بافر z هم ناميده ميشود وظيفه تنظيم رنگ نهايي پيکسلهاي روي مانيتور را بر عهده دارد. اگر يادتان باشد گفتيم که در گرافيک سه بعدي، همه چيز از يک سري نقاط به نام گره تشکيل شده است، گره هايي که همگي داراي مختصات سه بعدي در فضا ميباشند. معمولا سيستمهاي مختصاتي که در گرافيک سه بعدي بکار ميروند سمت مثبت محور x را جهت راست، سمت مثبت y را جهت بالا و سمت مثبت محور z را رو به بيرون يا داخل مانيتور در نظر ميگيرند. با اين توضيح، فرض کنيد شما در مختصات (10, 15, 5) يک کره رسم کرده ايد. اين کره قرمز رنگ ميباشد. حالا در قسمت ديگري از برنامه نياز به رسم يک مکعب آبي در مختصات (10, 15, 0) داريد. فرض ميکنيم از سيستم مختصات چپگرد استفاده شده باشد (يعني مختصه z به سمت داخل مانيتور ميباشد)، در نتيجه کره قرمز رنگ پشت سر مکعب آبي قرار خواهد گرفت و شما قاعدتا بايد تنها مکعب را در آن محل ببينيد. تعيين اينکه در هر موقعيت، چه شيئي و با چه رنگي بايد روي پيکسلهاي صفحه رسم شود، بر عهده بافر عمق ميباشد. بافر عمق، پس از ارسال موقعيت گره هاي هر شيء توسط شما آنها را ذخيره کرده، و در صورت رسم اشيائي ديگر (که احتمالا رنگ متفاوتي خواهند داشت) در موقعيتهاي قبلي، مختصه عمق (يا همان z) اشياء قديم و جديد را با هم مقايسه ميکند. پس از انجام اين تست، هر يک از اشياء که به بيننده نزديکتر بود ميتواند در نهايت پيکسلهاي صفحه را با رنگ خود، رنگ آميزي نمايد! مطالب فوق الذکر اسکلت گرافيک سه بعدي را بنا ميکنند، اما همه چيز به آنها ختم نميشود، و روز به روز، با پيشرفت کارتهاي گرافيکي، تکنيکهاي ويژه اي عرضه ميشوند که البته مبناي اکثر آنها همينهايي است که در بالا گفتيم. براي مثال در مبحث نور و بافت، ميتوان علاوه بر نورپردازي هاي معمولي و نگاشت بافتهاي ساده بر روي اشياء، بسياري از پديده هاي دنياي واقعي را هم شبيه سازي نمود. بعنوان نمونه، ميتوان به کمک يک ماتريس خاص و نوع ويژه اي از بافت زني (texture mapping)، جلوه انعکاس محيط اطراف بر روي اشياء را پياده سازي نمود. يا ميتوان بافتهاي حجمي را براي ايجاد جلوه رنگين کمان يا منشور نوري بکار برد. همچنين ميتوان با ترکيب مولفه هاي رنگي تصاوير، بافتهايي را بر روي اشياء نگاشت که به نظر برجسته مي آيند (اين تکنيک bump mapping نام دارد). ايجاد مه و ساير پديده هاي اتمسفري هم به راحتي در برنامه هاي گرافيکي امکان پذير ميباشد. اصولا دو نوع مه وجود دارد، يکي مه پيکسلي (table fog) که بصورت جدولي از پيش آماده شده در اکثر کارتهاي گرافيکي پياده سازي شده و ديگري مه گره اي (vertex fog) که با انجام محاسباتي بر روي گره هاي اشياء اعمال ميشود.
قبلا اشاره شد که ميتوان با استفاده از ماتريسها، تصاوير متحرک را بوجود آورد. اين نوع تصاوير متحرک، انيميشن از نوع ماتريسي ناميده ميشوند که علي رغم داشتن تواناييهاي بالا، امروزه بدلايلي کمتر از آنها استفاده ميشود. در عوض روش نسبتا جديدتري براي ايجاد انيميشن مورد استفاده قرار ميگيرد که در اصطلاح گرافيک سه بعدي، انيميشن اسکلتي خوانده ميشود. در اين روش که بيشتر براي متحرک کردن کاراکترهاي بازي بکار گرفته ميشود، ميتوان کل بدن و دست و پاي شخصيت بازي را بصورت يک شيء واحد ساخت. سپس با استفاده از قابليتهايي همچون پوست انعطاف پذير (skin)، حرکتهاي لازم به اجزاء مختلف بدن فرد داده ميشود.
از ديگر ويژگي هايي که ميتوان براي واقعي تر کردن يک صحنه سه بعدي از آن استفاده کرد، سايه ميباشد. سايه ها که ارتباط مستقيمي با نور دارند، بطور کلي شامل چند دسته ميشوند. ساده ترين نوع آنها (همانطور که در مبحث ماتريسها اشاره شد) با نگاشتن گره هاي يک شيء بر روي يک صفحه تخت بوجود مي آيد. اين نوع محدوديتهاي زيادي دارد. بنابراين جز در موارد خاص از آن استفاده نميشود. نحوه ديگر پياده سازي سايه، کاربرد بافتهايي ميباشد که حاوي تصاوير رندر شده از سايه ها و ساير اثرات نورها در صحنه ميباشند. به اين تصاوير ويژه light map گفته ميشود. اين روش سريعترين نوع ايجاد سايه است. ولي تنها ميتوان براي اعمال سايه بر روي سطوح تخت از آن استفاده کرد. انعطاف پذير ترين نوع سايه ها، سايه هاي حجمي هستند. سايه هاي حجمي (shadow volume) ميتوانند بر روي هر نوع سطحي اعمال شده، و حتي قابليت ايجاد سايه براي اشياء متحرک را هم دارا ميباشند. البته بايد توجه داشت که اين، پيچيده ترين و کندترين نوع سايه ها هم ميباشد. از سيستمهاي ذره اي (particle system) معمولا براي شبيه سازي پديده هاي طبيعي همچون برف، باران، آتش، انفجار و گرد و غبار استفاده ميشود. سخت افزارهاي جديد، داراي اشياء آماده اي ميباشند که ميتوانند بطور مستقيم رندر شده، و حتي تصويري را هم بعنوان بافت بر روي خود داشته باشند. بدين ترتيب ميتوان با تنظيم موقعيت، سرعت حرکت، تعداد، طول عمر، رنگ و بافت اين ذرات (point sprite) انواع پديده ها از جمله آتش و برف و باران را به شکلي کاملا واقعي در صحنه هاي سه بعدي ايجاد کرد. قبلا به بافرها اشاره کرديم، ولي يک بافر مهم ديگر هم وجود دارد. يعني بافر استنسيل (stencil buffer) که تکنيکهاي بسيار زيادي توسط آن قابل پياده سازي ميباشند. از جمله اين تکنيکها سايه حجمي (که پيشتر به آن اشاره شد)، آينه، ماسک کردن تصوير، برش زدن مناطق دلخواهي از تصوير، ايجاد اشياء شفاف، محو تصاوير در پس زمينه و ترکيب تصاوير با هم ميباشد. در آخر هم بايد به سايه زنها اشاره کنيم. سايه زنها (shader) در واقع پرده آخري ميباشند که فراروي شما قرار دارند. با عرضه سايه زنها، و زبانهاي سايه زني، انقلابي در عرصه گرافيک کامپيوتري ايجاد شد و بسياري از محدوديتهاي که تا چندي پيش در سر راه برنامه نويسان گرافيکي (بخصوص سازندگان بازي) قرار داشتند عملا کنار رفتند. امروزه سايه زنهاي گره، سايه زنهاي پيکسل، سايه زنهاي بافت و سايه زنهاي نوري وارد صحنه شده اند و ميتوان توسط زبانهايي مثل Assembly، C، و حتي Delphi براي آنها برنامه نوشت. وقتي شما از سايه زنها استفاده ميکنيد، به گونه اي خط رندر کارتهاي گرافيکي را بطور کامل تحت تسلط خود در آورده ايد. در اينجا کليه عمليات، از گرفتن گره هاي ورودي، پردازش، تبديل، برش، و نگاشت آنها تا پياده سازي فرمولهاي مه، نورپردازي، بافت زني، سيستمهاي ذره اي و انعکاسهاي نوري بر عهده خودتان ميباشد. حتي ميتوانيد در سطحي پايينتر، بر روي تک تک پيکسلهاي صفحه کار کنيد و آنها را با فرمولهاي ابداعي خودتان تحت تبديلات مختلف قرار دهيد.
در انتها نام چند از بزر گان و پايه گذاران گرافيک کامپيوتري سه بعدي را ذکر ميکنيم :
افرادي چون James Blinn، Andy Catmull، Phillip Taylor و John Carmack
در کل مي توان گفت اين مقوله هر روز رو به گسترش و پيشرفت است وجاي کار بسياري براي افراد کنجکاو و جوياي پيشرفت دارد به عنوان مثال مي توان به مبحث سايه زنها که در پيش شرح داده شد اشاره کرد که امروزه موضوع اصلي رقابت سازندگان کارت هاي گرافيک است.
به اميد روزي که متخصصان ايراني جاي واقعي خود را در اين زمينه پيدا کنند.
takdownload.ir