YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: Pixel الأربعاء 28 نوفمبر - 16:05 | |
| بسم الله الرحمن الرحيم
كنت أريد أن أكتب موضوع في برمجة الألعاب وفعلاً بدأت ولأكن رأيت نفسي أندرج إلى أن وصلت إلى ما سأريكم أياه ...... فتابع معي ..
سنقوم بي عملية تشريح لمعرفة كيف يتعامل الكمبيوتر مع البكسل.
سيلامس موضوعنا التالي: أولاً: كرت الشاشة ثانياً: البكسل وذاكرة الكمبيوتر ثالثاً: رسم خط على الشاشة
أولاً: كرت الشاشة:
ويطلقون عليه أسماء كثيرة مثل الـ (Graphics Card, Video Card, Video Board, Video Display Board, Display Adapter, Video Adapter, Graphics Adapter), وهي قطعة (كرت) متصل مع اللوحة الأم (Mother Board) تعمل على تخزين ومعالجة الصور وتحويلها إلى إشارات لتستطيع الشاشة إظهارها, أصبحت كروت الشاشة عنصر أساسي في الكمبيوترات منذ عام 1990, وأخذ المصنعون يتفنانون بي كيفية صناعاتها إلى أن وصلوا إلى تمثيل لواقع حقيقى بستخدام أجسام ثلاثية الأبعاد, أول شركة إهتمت بمعالجة الرسومات ثلاثية الأبعاد هي 3dfx والتي أطلقت كروت الشاشة الخاصة بي الأجسام ثلاثية الأبعاد وكانت تحل الإسم voodoo وأيضاً هي من إبتكر قناه تسمى بي Graphics Pressing Units (GPUs) وهي منطقة موجودة في كرت الشاشة تقوم بي المعالجات الرياضية للأشكال ثلاثية الأبعاد, مما يريح المعالج (Processor) من هذا العبئ, والذي يؤدي بدورة إلى إسراع عمليات المعالجة للعبه, ومن الممكن أن يحوي كرت الشاشة أكثر من قناة GPU فكلما زادت القنوات إرتفعت الجودة. من أشهر الشركات في هذا المجال هي: NVIDIA Geforce ATI
أظن بأن الكلام بالأعلا لن ينفع معنا.... لننزل إلى أسفل قليلاً:
إذهب إلى سطح المكتب (Desktop) إضغط على زر الفأرة الأيمن (Right Click) إضغط على خصائص (Property) إضغط على إعدادات (Settings) سوف ترى على اليسار جملة Screen Resolutions سوف ترى أسفلها رقم مثل 1024 by 768 pixel
نعم هذا الرقم يمثل عدد البكسل الذي يدعمة كرت الشاشة لديك وهو يختلف من نوع إلى آخر.
لننزل إلى أسفل أكثر ...
ثانياً: البكسل وذاكرة الكمبيوتر
لنبدأ ببعض القواعد العامة: عندما نتكلم عن الشاشة فنحن نعني البكسل. عندما نتكلم عن الذاكرة فنحن نعني البت.
الواحد بكسل يساوي 8 بت أو 1 بايت. اللون الواحد يساوي 8 بت أو 1 بايت.
لتتوضح الفكرة أكثر لنأخذ أبسط أنماط كروت الشاشة وهو نمط الـ 13h, هذا النمط يعطي قيمة بكسل تقدر بي 320 x 200 (حيث أن الـ 320 تمثل العرض و الـ 200 تمثل الطول) لحساب المساحة اللازمة لحجزها في الذاكرة من أجل إظهار المعطيات على الشاشة بشكل بكسل سنقوم بضرب العرض بي الطول: 320 x 200 = 64000 Byte وهذا يعني 0XA000 الشكل التمثيلي على الشاشة سيكون كالتالي:
هذه المساحة في الذاكرة (64000 Byte) التي تكلمنا عنها بالأعلا تخزن على شكل مقطع (Segments). ببساطة نستطيع القول بأن أي كتابة على هذه المنطقة (Segments) سيعادلها كتابة أيضاً على الشاشة . أي يمكننا القول الكتابة على الذاكرة تكون بي نظام البت وأنها تترجم لتظهر على الشاشة بنظام البكسل. ما رأيك الآن لنرى كيف تتم عملية الترجمة:
للكتابة على أي جزء في الذاكرة فنحن بحاجة إلى شيئين: الأول وهي الـ Segment (المقطع) الثانية وهي الـ Offset (الإزاحة)
من الأعلا قمنا بتحديد الـ Segment وهي 0XA000 يبقى لدينا تحديد الإزاحة : وتكون كالتالي: يدعم هذه النمط الألوان ذات 8 bit وتحسب كالتالي 2^8 = 265 وقلنا بأن عرض البكسل في هذا النمط هو 320 وكل بكسل يساوي 8 بت لتصبح المعادلة النهائية لحساب (الإزاحة) اللأزمة للكتابة في المقطع هي: 265 + (8*320) = 2816 أو 0XB00
أي سيصبح المؤشر يحمل القيمة 0XA000:0X0000 (وهذا هو الموقع في الذاكرة الذي تبدأ عملية كتابة المعطيات فيه لتظهر على الشاشة بشكل بكسل.
ويستمر المؤشر في القراءة إلى أن يصل إلى الإزاحة النهائية وهي كما حددنها 0XA000:0XB00 مثال برمجى بلغة ال C
عدل سابقا من قبل في الأربعاء 28 نوفمبر - 16:12 عدل 1 مرات | |
|
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: رد: Pixel الأربعاء 28 نوفمبر - 16:11 | |
| | |
|