آشنایی با گرافیک کامپیوتری

sarholoo

عضو جدید
مقدمه:

امروزه قابليت هاي سمعي و بصري بخش عمده اي از علم چند رسانه اي را تشكيل مي دهند و جزء لاينفك فن آوري هايي شده اند كه زندگي قرن بيست و يكم را تعريف مي كنند. بي شك خلق سخت افزار هاي ديجيتال كه قابليت عملكرد با سرعت هاي بسيار زياد را دارند اساس اين فن آوري ها بوده است؛ اما ورود مفهوم رنگ به دنياي ديجيتال چنان تحولي در اين عرصه به وجود آورد كه نه تنها رشته هاي جديدي از علم را پيش روي انسان گشود، بلكه منجربه تغيير جهت پيشرفت بسياري از علوم ديگر گرديد. از رياضيات، هندسه تحليلي براي خلق دنياهاي مجازي به كار گرفته شده و از الكترونيك براي افزايش امكانات و قابليت هاي گرافيكي استفاده شد. علم نرم افزار و هنر برنامه نويسي كه تا چندي قبل در طراحي سيستم هاي عامل و پياده سازي هوش مصنوعي به حد اعلاي خود مي رسيد، با مفهوم جديدي به نام واقعيت مجازي و شبيه سازي دنياي واقعي مواجه شده. هزاران مفهوم جديد در پي مفهوم گرافيك و تصاوير ديجيتال بوجود آمد وهزاران نفر در گوشه و كنار دنيا سرگرم فعاليت و مطالعه در اين زمينه ها شدند.
وجود هزاران نرم افزار وابسطه به قابليت گرافيكي كامپيوتر، وجود سيستم هاي چند رسانه اي از جمله ماهواره ها و تلوزيون هاي مدرن و به اوج رسيدن غول نرم افزار دنيا ، مايكروسافت ، از طريق به كار گيري گرافيك در سيستم هاي عامل خانواده Windows، اهميت آشنايي با مفهوم گرافيك در كامپيوتر را واضح مي كند.
بيش از اين، اگر شما به نحوه ي خلق دنياي مجازي كه گرافيك كامپيوتري و بخصوص گرافيك سه بعدي عنصر اصلي آن مي باشدعلاقمند هستيد، بايد پا را فراتر گذاشته و جنبه هاي مختلفي از علم نرم افزار را مطالعه كنيد.
در اين سري از مقالات، تصميم داريم تا با يكي از مهمترين ابزارهايي كه در اختيار برنامه نويسان بازي هاي ويدئويي و كامپيوتري است آشنا شويم. اين ابزار با نام OpenGL شناخته مي شود و فن آوري بسيار انعطاف پذير و در عين حال پيچيده اي است كه به برنامه نويسان اجازه مي دهد تا فضاهاي سه بعدي را از طريق هنر برنامه نويسي و با در اختيار داشتن سخت افزار مناسب خلق كنند و به تصوير بكشند.
همانطور كه شايد بدانيد، فن اوري هاي مشابهي براي دست يافتن به اين هدف وجود دارند كه معرفي آنها و مقايسه OpenGL با هر كدام را به بخش هاي آينده موكول خواهيم كرد.
در مقاله اول و پيش از آنكه وارد جزئيات فن آوري ذكر شده شويم، لازم است تا با برخي موضوعات مقدماتي و چند اصطلاح مهم آشنا شويم.
پست آپدیت میشود!
 

sarholoo

عضو جدید
مفهوم گرافيك كامپيوتري:

مهمترين ابزار خروجي كه مي تواند به مفهوم گرافيك كامپيوتري عينيت ببخشد، صفحه نمايش (Monitor) است كه امروزه با روشهاي متفاوت در اندازه ها و كيفيت هاي مختلفي توليد مي شوند. مشخصه اندازه در مورد يك صفحه نمايش به طول قطر اين ابزار اشاره ميكند و اندازه ها معمولا بين 14 تا 21 اينچ هستند.براي مفهوم كيفيت نيز مي توان تعاريف مختلفي را بيان كرد اما اين مفهوم بيش از هر چيزي به وضوح تصوير اشاره مي كند كه صفحه نمايش مي تواند توليد كند.
در معماري سخت افزار هاي گرافيك امروزي (و كارت هاي گرافيكي در راس آنها) تصاوير به صورت مجموعه اي از نقاط در نظر گرفته مي شوند. هر نقطه رنگ و مشخصات خاص خود را دارد و كوچكترين جزئي محسوب مي شود كه يك تصوير را تشكيل مي دهد. به اين نقاط در اصطلاح پيكسل (Pixel=Picture Element ) اطلاق مي شود. به مجموعه ي پيكسل هايي كه در هر لحظه از طريق ابزارهايي مانند صفحه نمايش ترسيم مي شود صفحه تصوير (Screen) گفته مي شود.
مفهوم گرافيك و خروجي تصوير در يك سيستم ديجيتال مانند كامپيوتر هاي شخصي و به كمك ابزاري مانند صفحه نمايش ، نقش بستن تصاوير دلخواه بر روي صفحه تصوير است.
 

sarholoo

عضو جدید
ادامه:

علاوه بر ابعاد، مشخصات ديگري نيز وجود دارند كه صفحه تصوير را تشكيل مي دهند. اين مشخصات، اگرچه در ميان كليه پيكسل ها مشتركند، اما برخلاف ابعاد به شرايط تك تك پيكسل ها اشاره مي كنند. مهمترين اين مشخصات، مشخصه رنگ مي باشد. مشخصه رنگ در هر حالت خاص از صفحه نمايش، مشخص مي كند كه هر پيكسل مي تواند چه تعداد و چه رنگهايي را داشته باشد. مثلا اگر در يك حالت بخصوص صفحه تصوير در ابعاد 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)

شكل هندسي اين تابع بر روي صفحه ي دو بعدي x-y يك دايره را مشخص مي كند. بنابراين، فرض بالا منجر به مشخص شدن يك دايره يا بخشي از يك دايره با شعاع R و به مركزX0 و Y0 بر روي صفحه تصوير مي شود.
 

sarholoo

عضو جدید
گرافيك دوبعدي و كاربرد هاي آن:

تصاوير در يك سيستم ديجيتال مانند كامپيوترهاي شخصي نيز بر اساس تعاريف ارائه شده در قسمت هاي قبلي تعريف، ذخيره و بازيابي مي شوند. به دليل شرايط خاصي كه در نرم افزار ها و سخت افزار هاي امروزي وجود دارد، تصاوير معمولا به صورت مجموعه اي از پيكسل هايي تعريف مي شوند كه در كنار يكديگر شكل مستطيل به خود مي گيرند.
مثلا يك دايره بايد در مجموعه اي مستطيلي شكل از پيكسل ها رسم شود وبراي متمايز كردن بخش اصلي (شكل دايره) در كل تصوير (به شكل مستطيل) از يك رنگ خاص (مثلا رنگ مشكي به عنوان رنگ پس زمينه (Background ) استفاده كرد.
 

sarholoo

عضو جدید
ادامه:

به تصاويري كه به شكل مسطتيل ذخيره مي شوند و ذخيره سازي آنها براساس پيكسل ها مي باشد، تصاوير نقش بيتي (Bitmap) گفته مي شود كه پركاربرد ترين قالب هاي تصويري هستند. قالب هاي .bmp و .dbi و .pcx از معروف ترين قالب هايي هستند كه تصاوير در آنها به همين صورت ذخيره مي شوند.
مشخصاتي كه در قالب هاي تصويري براي بازيابي تصاوير تعريف مي شوند علاوه بر ابعاد و عمق رنگ تصوير، گاهي شامل مفاهيم پيشرفته تري نيز مي باشند. به عنوان نمونه مشخصه آلفا مفهومي معادل ”مقدار شفافيت“ را تعريف مي كند كه مي توان بااستفاده از آن مشخص كرد در صورت ترسيم شدن تصوير فعلي بر روي يك پس زمينه، چه مقدار از رنگ پس زمينه از تصوير فعلي عبور كند (مانند عبور نور از شيشه). اين مفهوم در واقع به نوعي تركيب كردن تصوير زمينه با تصوير فعلي است و تركيب آلفا (Alpha Blending) ناميده مي شود. براي پياده سازي اين مفهوم در يك قالب تصويري علاوه بر عمق رنگ و ديگر مشخصات، تعدادي بيت براي هر پيكسل در نظر گرفته مي شود كه مخصوص به مقدار آلفا يا مقدار شفافيت پيكسل ها مي باشد.
از آنجا كه قالب تصاوير استفاده شده در هر سيستم، تاثيرات بسياري از جمله سرعت و دقت بر روي عملكرد سيستم دارد، انتخاب قالب مناسب اهميت زيادي دارد. قالب هايي كه عمق رنگ بيشتري (24 يا 32 بيت بر پيكسل ) ارائه مي دهند كيفيت بيشتري دارند اما از آنجا كه حافظه و پردازش بيشتري براي استفاده از آنها مورد نياز است ، از سرعت و كارايي سيستم مي كاهند. قالب هايي كه عمق رنگ كمتر (8 يا 16 بيت بر پيكسل) ارائه مي دهند، با كاهش كيفيت تصوير و در مقابل آن افزايش سرعت و كارايي سيستم همراه هستند. مثلا در سيستم هاي بلادرنگ كه سرعت بالايي مورد نياز است، معمولا از قالب هاي 8 بيتي استفاده مي شود. اين قالب ها تصوير را با حداكثر 256=8^2 رنگ تعريف مي كنند.
در حالت 256 رنگ ، جدولي شامل 256 كد كه هر كدام مشخص كننده يك رنگ مي باشد، به عنوان جدول رنگ در نظر گرفته مي شود. هر محل از جدول (0 الي 255) مي تواند شامل عددي 16 بيتي (يا بزرگتر ) باشد ودر واقع رنگي معادل رنگ هاي حالت 16 بيتي (يا بيشتر) را نگهداري كند. با استفاده از اين جدول كه تعداد 256 رنگ را نگهداري مي كند ، ميتوان تصويري را بوجود آورد كه در آن ، رنگ هر پيكسل با شماره اي بين 0 الي 255 مشخص شده است. براي بدست آوردن رنگ واقعي پيكسل ها، ابتدا به محلي از جدول كه بايت رنگ در هر پيكسل به آن اشاره مي كند، مراجعه مي شود و رنگ واقعي پيكسل از آن محل بدست مي آيد.
 

sarholoo

عضو جدید
ادامه:
به جداول رنگ كه در بالا توضيح داده شد اصطلاحا پالت (Palette) گفته مي شود. هر محل از يك پالت يك ورودي پالت (Palette-Entery) معمولا قالب هايي كه عمق رنگ 8 بيت (با 256 ورودي پالت) را ارائه مي دهند، قالب هايي تصويري با رنگ شماره گذاري شده (Index Color Image Formats) ناميده مي شوند.
مفاهيم اوليه قالب هاي تصويري را به صورت بسيار خلاصه در بالا مرور كرديم . اين قالب ها هميشه شامل تصاوير دو بعدي مي باشند و كاربرد هاي زيادي در سيستم هاي گرافيكي دو بعدي يا گرافيك سه بعدي دارند. از كاربرد هاي آنها در كنار فن آوري OpenGL كه براي خلق دنياهاي مجازي سه بعدي طراحي شده است، مي توان به طرح هاي (Textures)،قلم ها (Fonts) و در برخي موارد جلوه هاي ويژه بصري (Visual Effects) اشاره كرد.

طرح هها يا Textureها به تصاويري گفته مي شود كه برروي سطوح (Surfaces) اشياء قرار گرفته و به واقعي تر جلوه كردن اشياء كمك مي كنند. مثلا اگر ميزي را كه ا زچوب ساخته شده است را شبيه سازي كنيم پس از طراحي آن (به صورت سه بعدي )، تصويري كه شامل طرح چوب مورد نظر ما است را بر روي سطوح اين ميز مي كشيم تا ميز از جنس چوب به نظر آيد. در اين مثال، طرح چوب كه از طريق يك تصوير بدست آوريم در اصطلاح طرح (Texture) ناميده مي شود.
به عنوان نمونه ا ي ديگر به اين موضوع اشاره مي كنيم كه در معماري فن آوري OpenGLجايي براي استفاده از قلم هاي (Fonts) استاندارد سيستم عاملي مانند ويندوز در نظر گرفته نشده (دلايل آن را بعدا مطالعه خواهيم كرد) و براي آنكه بتوانيم متني را به كمك OpenGL برروي صفحه تصوير به نمايش درآوريم بايد از تصاويري كه شامل حروف و علائم هستند استفاده كنيم.
جلوه هاي ويژه بصري (Visual Effect) نيز به تاثيراتي گفته مي شود كه جلوه بخصوصي را در تصاوير بوجود مي آورند. مثلا تاثير نور خورشيد برروي لنز دوربين كه براي شبيه سازي آن معمولا از تصاوير به همراه تكنيك تركيب آلفا (Alpha Blending) استفاده مي شود. البته روشهاي گوناگوني براي توليد جلوه ها ي ويژه وجود دارد.
 

sarholoo

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

Drago

پیشکسوت فعال فناوری اطلاعات
کاربر ممتاز
شما که داری زحمت تولید محتوا می‌کشی یه کم به ظاهرش برسی بد نیست.
موقع نوشتن پست توی صفحه پیشرفته اگه بری میتونی بهتر کار کنی، مثلا subscript و superscript بزاری، فرمول ها رو توی تگ کد بذارید که به هم ریخته نشه :
کد:
[LEFT][COLOR=#333333]F(x,y): [/COLOR]
[COLOR=#333333]X= X[SUB]0[/SUB] + R * Cos(t) [/COLOR]
[COLOR=#333333]Y= Y[SUB]0[/SUB] + R * Sin(t) [/COLOR][/LEFT]
 
بالا