دانشگاه آزاد واحد شهر قدس
بروبچه های کامپیوتر
درباره ...
|
لوگوي خود را در اينجا قرار دهيد.
|
هفته چهارم تیر 1387
هفته اوّل اردیبهشت 1387
هفته دوم فروردین 1387
هفته چهارم اسفند 1386
هفته اوّل اسفند 1386
هفته چهارم بهمن 1386
هفته سوم بهمن 1386
هفته دوم بهمن 1386
هفته اوّل بهمن 1386
هفته چهارم دی 1386
هفته سوم دی 1386
هفته اوّل دی 1386
هفته سوم فروردین 1385
هفته چهارم اسفند 1384
هفته دوم اسفند 1384
هفته اوّل اسفند 1384
لینک های روزانه
جستجو گر
آمار وبلاگ
آمار بازدید : نفر
افراد آنلاين :
نفر
طراح قالب
گرافيك كامپيوتري(مقدمه ای برای شروع opengl) ( مطالب آموزشی )
گرافيك كامپيوتري
گرافيك كامپيوتري مقدمه: امروزه قابليت هاي سمعي و بصري بخش عمده اي از علم چند رسانه اي را تشكيل مي دهند و جزء لاينفك فن آوري هايي شده اند كه زندگي قرن بيست و يكم را تعريف مي كنند. بي شك خلق سخت افزار هاي ديجيتال كه قابليت عملكرد با سرعت هاي بسيار زياد را دارند اساس اين فن آوري ها بوده است؛ اما ورود مفهوم رنگ به دنياي ديجيتال چنان تحولي در اين عرصه به وجود آورد كه نه تنها رشته هاي جديدي از علم را پيش روي انسان گشود، بلكه منجربه تغيير جهت پيشرفت بسياري از علوم ديگر گرديد. از رياضيات، هندسه تحليلي براي خلق دنياهاي مجازي به كار گرفته شده و از الكترونيك براي افزايش امكانات و قابليت هاي گرافيكي استفاده شد. علم نرم افزار و هنر برنامه نويسي كه تا چندي قبل در طراحي سيستم هاي عامل و پياده سازي هوش مصنوعي به حد اعلاي خود مي رسيد، با مفهوم جديدي به نام واقعيت مجازي و شبيه سازي دنياي واقعي مواجه شده. هزاران مفهوم جديد در پي مفهوم گرافيك و تصاوير ديجيتال بوجود آمد وهزاران نفر در گوشه و كنار دنيا سرگرم فعاليت و مطالعه در اين زمينه ها شدند. مفهوم گرافيك كامپيوتري: مهمترين ابزار خروجي كه مي تواند به مفهوم گرافيك كامپيوتري عينيت ببخشد، صفحه نمايش (Monitor) است كه امروزه با روشهاي متفاوت در اندازه ها و كيفيت هاي مختلفي توليد مي شوند. مشخصه اندازه در مورد يك صفحه نمايش به طول قطر اين ابزار اشاره ميكند و اندازه ها معمولا بين 14 تا 21 اينچ هستند.براي مفهوم كيفيت نيز مي توان تعاريف مختلفي را بيان كرد اما اين مفهوم بيش از هر چيزي به وضوح تصوير اشاره مي كند كه صفحه نمايش مي تواند توليد كند. همانطور كه در شكل بالا نيز به آن اشاره شده، مبداء مختصات دو بعدي بر روي صفحه ي تصوير، گوشه ي بالاي سمت چپ در نظر گرفته مي شود. مختص افقي مختص x ها و مختص عمودي مختص y ها ناميده مي شود. اولين پيكسل قابل نمايش بر روي صفحه تصوير با مختص (0‚0) شناخته مي شود. احتمالا مختصات آخرين عنصر در گوشه ي پايين سمت راست نيز براي شما اهميت دارد. اين مختصات معادل ( Mx-1 , MY-1 ) است كه Mx وMy در آن مشخص كننده تعداد پيكسل هايي هستند كه به ترتيب در مختص x وy نمايش داده مي شوند. شكل هندسي اين تابع بر روي صفحه ي دو بعدي x-y يك دايره را مشخص مي كند. بنابراين، فرض بالا منجر به مشخص شدن يك دايره يا بخشي از يك دايره با شعاع R و به مركزX0 و Y0 بر روي صفحه تصوير مي شود. گرافيك دوبعدي و كاربرد هاي آن: تصاوير در يك سيستم ديجيتال مانند كامپيوترهاي شخصي نيز بر اساس تعاريف ارائه شده در قسمت هاي قبلي تعريف، ذخيره و بازيابي مي شوند. به دليل شرايط خاصي كه در نرم افزار ها و سخت افزار هاي امروزي وجود دارد، تصاوير معمولا به صورت مجموعه اي از پيكسل هايي تعريف مي شوند كه در كنار يكديگر شكل مستطيل به خود مي گيرند. شايد نياز باشد براي بدست آوردن شكل اصلي به كمك تعدادي دستورالعمل رنگ پس زمينه را از تصوير حذف كرد. اين عمل كه در آن با حذف كردن بخش هايي از يك تصوير، شكل دلخواه را به صورت خالص و جدا از قالب مستطيلي شكل بدست مي آوريم، عمل شفاف كردن تصوير ( Transparent ) ناميده مي شود و كاربرد هاي بسياري دارد. به عنوان مثال، مي توانيد با شفاف كردن پنح نسخه از تصوير بالا (يعني حذف كردن رنگ زمينه وبدست آوردن شكل دايره خالص ) و سپس كنار هم قرار دادن اين پنج دايره برروي يك زمينه جديد و دلخواه ، نماد مسابقات المپيك را ترسيم كنيد: به تصاويري كه به شكل مسطتيل ذخيره مي شوند و ذخيره سازي آنها براساس پيكسل ها مي باشد، تصاوير نقش بيتي (Bitmap) گفته مي شود كه پركاربرد ترين قالب هاي تصويري هستند. قالب هاي .bmp و .dbi و .pcx از معروف ترين قالب هايي هستند كه تصاوير در آنها به همين صورت ذخيره مي شوند. همانطور كه مي بينيد محل از جدول رنگ شامل يك رنگ واقعي است و براي بدست آوردن رنگ واقعي هرپيكسل به اين جدول مراجعه مي شود.مثلا محل (0،0) در نمونهي بالا رنگي معادل محل 1 جدول دارد.پس رنگ اين پيكسل ،همانطور كه در محل 1 جدول ثبت شده ، قرمز است. طرح هها يا Textureها به تصاويري گفته مي شود كه برروي سطوح (Surfaces) اشياء قرار گرفته و به واقعي تر جلوه كردن اشياء كمك مي كنند. مثلا اگر ميزي را كه ا زچوب ساخته شده است را شبيه سازي كنيم پس از طراحي آن (به صورت سه بعدي )، تصويري كه شامل طرح چوب مورد نظر ما است را بر روي سطوح اين ميز مي كشيم تا ميز از جنس چوب به نظر آيد. در اين مثال، طرح چوب كه از طريق يك تصوير بدست آوريم در اصطلاح طرح (Texture) ناميده مي شود. با تشکر از سایت galaxyroad.com و آقایان رامین زاغی و امير حاتمي
وجود هزاران نرم افزار وابسطه به قابليت گرافيكي كامپيوتر، وجود سيستم هاي چند رسانه اي از جمله ماهواره ها و تلوزيون هاي مدرن و به اوج رسيدن غول نرم افزار دنيا ، مايكروسافت ، از طريق به كار گيري گرافيك در سيستم هاي عامل خانواده Windows، اهميت آشنايي با مفهوم گرافيك در كامپيوتر را واضح مي كند.
بيش از اين، اگر شما به نحوه ي خلق دنياي مجازي كه گرافيك كامپيوتري و بخصوص گرافيك سه بعدي عنصر اصلي آن مي باشدعلاقمند هستيد، بايد پا را فراتر گذاشته و جنبه هاي مختلفي از علم نرم افزار را مطالعه كنيد.
در اين سري از مقالات، تصميم داريم تا با يكي از مهمترين ابزارهايي كه در اختيار برنامه نويسان بازي هاي ويدئويي و كامپيوتري است آشنا شويم. اين ابزار با نام OpenGL شناخته مي شود و فن آوري بسيار انعطاف پذير و در عين حال پيچيده اي است كه به برنامه نويسان اجازه مي دهد تا فضاهاي سه بعدي را از طريق هنر برنامه نويسي و با در اختيار داشتن سخت افزار مناسب خلق كنند و به تصوير بكشند.
همانطور كه شايد بدانيد، فن اوري هاي مشابهي براي دست يافتن به اين هدف وجود دارند كه معرفي آنها و مقايسه OpenGL با هر كدام را به بخش هاي آينده موكول خواهيم كرد.
در مقاله اول و پيش از آنكه وارد جزئيات فن آوري ذكر شده شويم، لازم است تا با برخي موضوعات مقدماتي و چند اصطلاح مهم آشنا شويم.
در معماري سخت افزار هاي گرافيك امروزي (و كارت هاي گرافيكي در راس آنها) تصاوير به صورت مجموعه اي از نقاط در نظر گرفته مي شوند. هر نقطه رنگ و مشخصات خاص خود را دارد و كوچكترين جزئي محسوب مي شود كه يك تصوير را تشكيل مي دهد. به اين نقاط در اصطلاح پيكسل (Pixel=Picture Element ) اطلاق مي شود. به مجموعه ي پيكسل هايي كه در هر لحظه از طريق ابزارهايي مانند صفحه نمايش ترسيم مي شود صفحه تصوير (Screen) گفته مي شود.
مفهوم گرافيك و خروجي تصوير در يك سيستم ديجيتال مانند كامپيوتر هاي شخصي و به كمك ابزاري مانند صفحه نمايش ، نقش بستن تصاوير دلخواه بر روي صفحه تصوير است.
صفحه تصوير دو بعدي در نظر گرفته مي شود و معمولا پيكسل هايي كه در اين دو بعد وجود دارند از طريق مختصات آنها قابل دسترسي مي باشند. به شكل زير توجه كنيد:
اينكه در هر لحظه Mx وMy مي توانند چه اعدادي را مشخص كنند به توانايي هاي سخت افزار هاي گرافيكي (كارت گرافيك )، سيستم عامل و بخش هاي ديگر سخت افزار مورد استفاده بستگي دارد.
واضح است كه مقدار Mx*My مشخص كننده تعداد پيكسل هايي است كه در صفحه تصوير نمايش داده مي شود. ابعاد صفحه تصوير كه بصورت Mx*My بيان مي شود معمولا ابعاد استانداردي هستند كه برخي از آنها را در زير مشاهده مي كنيد:
200*320
480*640
600*800
و...
علاوه بر ابعاد، مشخصات ديگري نيز وجود دارند كه صفحه تصوير را تشكيل مي دهند. اين مشخصات، اگرچه در ميان كليه پيكسل ها مشتركند، اما برخلاف ابعاد به شرايط تك تك پيكسل ها اشاره مي كنند. مهمترين اين مشخصات، مشخصه رنگ مي باشد. مشخصه رنگ در هر حالت خاص از صفحه نمايش، مشخص مي كند كه هر پيكسل مي تواند چه تعداد و چه رنگهايي را داشته باشد. مثلا اگر در يك حالت بخصوص صفحه تصوير در ابعاد 200*320 تنظيم شده باشد و مشخصه رنگ صفحه تصوير در حالت ”4 بيت“ قرا ر گرفته باشد، مفهومش آنست كه در اين حالت ، صفحه تصوير شامل 320 پيكسل در مختص x (از 0 تا 319 ) و 200 پيكسل در مختص y (از 0 تا 199) است كه هر يك از پيكسل ها مي توانند 16=4^2 رنگ متفاوت داشته باشند.
اين بدان معني است كه هر پيكسل در هر لحظه ميتواند رنگي معادل شماره ي صفر الي 15=1-4^2 داشته باشد. حال اينكه هر شماره (15-0) چه رنگي را مشخص مي كند بستگي به شرايط سخت افزار و نرم افزار در آن لحظه دارد. البته اين شرايط كاملا تعريف شده است و براي يك بر نامه نويس متوسط كاملا قابل درك مي باشد.
از آنجايي كه صفحه ي تصوير، در دو بعد در نظر گرفته ميشود، مي توان مشخصه رنگ را بعد سوم صفحه در نظر گرفت. از اين رو معمولا به آن عمق رنگ (Color Depth) گفته مي شود.
به حالت هاي متفاوتي كه صفحه تصوير مي تواند داشته باشد و با مشخصات تشريح شده (ابعاد و عمق رنگ ) تعريف مي شود اصطلاحا وضوح تصوير ( Resolution ) اطلاق مي شود.
همانطور كه احتمالا متوجه شده ايد، توانايي استفاده ازحالت خاصي از صفحه تصويروابسطه به امكانات و قابليت هاي سخت افزاري و نرم افزاري سيستم مورد استفاده است. به عنوان مثال براي آنكه بتوانيم صفحه تصويري با ابعاد 600*800 و عمق رنگ ”16 بيت “ ( كه به صورت 16*600*800 نمايش داده مي شود) را استفاده كنيم، بايد اولا از نظر سخت افزاري حافظه اي شامل بيش از 800*600*2=? بايت در اختيار داشته و ثانيا از نظر نرم افزار ي، امكان دستيابي به و تغيير هر نقطه اي از اين حافظه را با سرعت مناسب را داشته باشيم.
همانطور كه قبلا گفته شد، مفهوم گرافيك و خروجي تصوير به بيان بسيار ساده در يك سيستم ديجيتال مانند كامپيوترهاي شخصي و به كمك ابزاري مانند صفحه نمايش ، نقش بستن تصاوير دلخواه بر روي صفحه تصوير است. اين بيان ساده را مي توان با مثالي ساده به صورتي كه در ادامه مي خوانيم بيان كرد. فرض كنيد بتوان نقاطي را برروي صفحه تصوير مشخص كرد كه مختصات آنها حدودا با توابع رياضي زير برابر باشد:F(x,y):
X= X0 + R * Cos(t)
Y= Y0 + R * Sin(t)
مثلا يك دايره بايد در مجموعه اي مستطيلي شكل از پيكسل ها رسم شود وبراي متمايز كردن بخش اصلي (شكل دايره) در كل تصوير (به شكل مستطيل) از يك رنگ خاص (مثلا رنگ مشكي به عنوان رنگ پس زمينه (Background ) استفاده كرد. اين مثال را در شكل زير مي بينيم:

مشخصاتي كه در قالب هاي تصويري براي بازيابي تصاوير تعريف مي شوند علاوه بر ابعاد و عمق رنگ تصوير، گاهي شامل مفاهيم پيشرفته تري نيز مي باشند. به عنوان نمونه مشخصه آلفا مفهومي معادل ”مقدار شفافيت“ را تعريف مي كند كه مي توان بااستفاده از آن مشخص كرد در صورت ترسيم شدن تصوير فعلي بر روي يك پس زمينه، چه مقدار از رنگ پس زمينه از تصوير فعلي عبور كند (مانند عبور نور از شيشه). اين مفهوم در واقع به نوعي تركيب كردن تصوير زمينه با تصوير فعلي است و تركيب آلفا (Alpha Blending) ناميده مي شود. براي پياده سازي اين مفهوم در يك قالب تصويري علاوه بر عمق رنگ و ديگر مشخصات، تعدادي بيت براي هر پيكسل در نظر گرفته مي شود كه مخصوص به مقدار آلفا يا مقدار شفافيت پيكسل ها مي باشد.
از آنجا كه قالب تصاوير استفاده شده در هر سيستم، تاثيرات بسياري از جمله سرعت و دقت بر روي عملكرد سيستم دارد، انتخاب قالب مناسب اهميت زيادي دارد. قالب هايي كه عمق رنگ بيشتري (24 يا 32 بيت بر پيكسل ) ارائه مي دهند كيفيت بيشتري دارند اما از آنجا كه حافظه و پردازش بيشتري براي استفاده از آنها مورد نياز است ، از سرعت و كارايي سيستم مي كاهند. قالب هايي كه عمق رنگ كمتر (8 يا 16 بيت بر پيكسل) ارائه مي دهند، با كاهش كيفيت تصوير و در مقابل آن افزايش سرعت و كارايي سيستم همراه هستند. مثلا در سيستم هاي بلادرنگ كه سرعت بالايي مورد نياز است، معمولا از قالب هاي 8 بيتي استفاده مي شود. اين قالب ها تصوير را با حداكثر 256=8^2 رنگ تعريف مي كنند.
در حالت 256 رنگ ، جدولي شامل 256 كد كه هر كدام مشخص كننده يك رنگ مي باشد، به عنوان جدول رنگ در نظر گرفته مي شود. هر محل از جدول (0 الي 255) مي تواند شامل عددي 16 بيتي (يا بزرگتر ) باشد ودر واقع رنگي معادل رنگ هاي حالت 16 بيتي (يا بيشتر) را نگهداري كند. با استفاده از اين جدول كه تعداد 256 رنگ را نگهداري مي كند ، ميتوان تصويري را بوجود آورد كه در آن ، رنگ هر پيكسل با شماره اي بين 0 الي 255 مشخص شده است. براي بدست آوردن رنگ واقعي پيكسل ها، ابتدا به محلي از جدول كه بايت رنگ در هر پيكسل به آن اشاره مي كند، مراجعه مي شود و رنگ واقعي پيكسل از آن محل بدست مي آيد. به شكل زير توجه كنيد:
به جداول رنگ كه در بالا توضيح داده شد اصطلاحا پالت (Palette) گفته مي شود. هر محل از يك پالت يك ورودي پالت (Palette-Entery) معمولا قالب هايي كه عمق رنگ 8 بيت (با 256 ورودي پالت) را ارائه مي دهند، قالب هايي تصويري با رنگ شماره گذاري شده (Index Color Image Formats) ناميده مي شوند.
مفاهيم اوليه قالب هاي تصويري را به صورت بسيار خلاصه در بالا مرور كرديم . اين قالب ها هميشه شامل تصاوير دو بعدي مي باشند و كاربرد هاي زيادي در سيستم هاي گرافيكي دو بعدي يا گرافيك سه بعدي دارند. از كاربرد هاي آنها در كنار فن آوري OpenGL كه براي خلق دنياهاي مجازي سه بعدي طراحي شده است، مي توان به طرح هاي (Textures)،قلم ها (Fonts) و در برخي موارد جلوه هاي ويژه بصري (Visual Effects) اشاره كرد.
به عنوان نمونه ا ي ديگر به اين موضوع اشاره مي كنيم كه در معماري فن آوري OpenGLجايي براي استفاده از قلم هاي (Fonts) استاندارد سيستم عاملي مانند ويندوز در نظر گرفته نشده (دلايل آن را بعدا مطالعه خواهيم كرد) و براي آنكه بتوانيم متني را به كمك OpenGL برروي صفحه تصوير به نمايش درآوريم بايد از تصاويري كه شامل حروف و علائم هستند استفاده كنيم.
جلوه هاي ويژه بصري (Visual Effect) نيز به تاثيراتي گفته مي شود كه جلوه بخصوصي را در تصاوير بوجود مي آورند. مثلا تاثير نور خورشيد برروي لنز دوربين كه براي شبيه سازي آن معمولا از تصاوير به همراه تكنيك تركيب آلفا (Alpha Blending) استفاده مي شود. البته روشهاي گوناگوني براي توليد جلوه ها ي ويژه وجود دارد.
مطالبي كه تا اينجا بررسي كرديم، شامل مفاهيم اوليه گرافيك دوبعدي در سيستم هاي ديجيتال امروزي بود.مفاهيم پيشرفته تري در اين رابطه و بخصوص در رابطه با گرافيك سه بعدي را در مقالات بعدي مطالعه خواهيم كرد و پس از آن در هفته هاي آينده به سراغ معرفي فن آوري هاي موجود در دنياي گرافيك كامپيوتري مي رويم تا موقعيت OpenGL را دقيقا درك كنيم. بادرك موقعيت OpenGL مي توانيم به راحتي آن را آموخته و به درستي از آن استفاده كنيم.
نوشته شده توسط
امین در
جمعه 5 اسفند1384 ساعت
19:48
مطالب پیشین
|
کپی برداری از مطالب وبلاگ فقط با ذکر منبع مجاز میباشد . All Rights Reserved 2005-2006 © by azadghods |
