لا شك أنك تقوم الأن بقراءة هذه الكلمات المكتوبة أمامك من خلال شاشةٍ ما . سواء كانت هذه الشاشة خاصة بالحاسوب، أو الهاتف الجوال الخاص بك، أو حتى الحاسب المحمول. والتي وكما ترى لا تمتلك إلّا بُعدين فيزيائيين فقط للوحة الموجودة أمامك ( ليس بالضبط ولكن أنا أتكلم فيما تستطيع هذه الشاشة عرضه بالفعل ) ولكن ...

هل تساءلت يوماً كيف يمكن لهذه الشاشة المخادعة أن تقوم بكل ذلك؟ كيف يمكن لها أن تعرض لك ما يحدث حول العالم أو عرض فيلم رسوم متحركة ثُلاثي الأبعاد أو حتى لُعبة فيديو لأحداث تخيلية. إنها بوابتنا لعوالم مختلفة بأحداثها ومشاكلها و "أبعادها !!". ولكن البطل الحقيقي هنا في الحقيقة ليس الشاشة، بل إنه ذلك المفتاح الذي تحدثنا عنه في مقالنا السابق والمدعو البطاقة الرسومية . لذا فحديثنا اليوم سيكون عن أمر مختلف قليلاً ألا وهو كيف تعالج البطاقة الرسومية الرسوميات التي تظهر على الشاشة؟

مقدمة لابد منها

كما أشرت في الموضوع السابق ، فعملية رسم المشاهد على الشاشة تتم على بعض المراحل المختلفة . ولكن المرحلتين الرئيسيتين هُنا هما معالجة الرسوميات نفسها وعرضها على الشاشة. وعملية العرض في حد ذاتها عملية مطولة أعتقد أننا قمنا بتغطيتها في مقال سابق بشكل سريع لنوضح الفكرة العامة من عملية العرض، والتي قد نجعل لها مقال تكميلي في وقت لاحق. وعلى كل حال وكما أشرت في البداية، فنحن هنا اليوم للحديث عن الشق الأول وهو كيفية معالجة البطاقة الرسومية للمشاهد نفسها.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

إن كانت ذاكرتك جيدة صديقي القارئ، فقد ذكرنا في مقالنا السابق أن الرسوميات التي يتم عرضها على الشاشة ما هي في الحقيقة إلا بعض الإطارات أو الصور المتتالية التي يتم عرضها بشكل سريع في الثانية الواحدة. والتي بدورها تبدوا في تتابعها كمشهد حي حقيقي يحدث أمامنا، بالرغم من أنها لا تزيد عن كونها مجموعة من الصور التي تقوم البطاقة الرسومية بمعالجتها بسرعة كبيرة وبثقها للشاشة التي تقوم بعرضها للمستخدم. ولكن الطريف هنا أن هذه الصور في حد ذاتها ما هي إلا مجموعة من الأصفار والآحاد التي يتم تخزينها على الحاسب بشكل أو بآخر في تتابع وترتيب مُعين.

وحتى لا أقوم بتعقيد الأمر عليك صديقي القارئ، فهذه الأصفار والآحاد ما هي إلا اللغة الأصلية التي يفهمها الحاسب نفسه. أما نظام التشغيل فيقوم بترجمة هذه الأرقام البدائية لمجموعة من التعليمات لتفهمها البرامج بعد ذلك، أو يقوم في بعض الأحيان بعكس هذه العملية وتحويل أوامر لغات البرمجة الخاصة بالبرامج للغة الحاسب التي يفهما الحاسب نفسه. ففي النهاية الحاسب ما هو إلا مجموعة من الدوائر الإلكترونية التي لا تفهم كل ذلك. ولكنه أحمق بما فيه الكفاية لفهم تدرجات الواحد والصفر فقط.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

وعلى كل حال، ولأن الصورة كما أشرنا تتكون من مجموعة من البيكسلات أو النقاط (وهو أمر قمنا بشرحة تفصيلياً أيضاً في مقالات سابقة) التي تتلون بألوان مُعينة فهي تحتاج لبعض المعلومات التي تقوم بتحديد ألوان هذه البيكسلات ومواضعها وما إلى ذلك من البيانات التي ستقوم البطاقة الرسومية بإحتياجها لرسم الصورة بشكل صحيح بعد ذلك.

بُعدين أم ثلاثة؟!

هذه الصورة نفسها يمكنها أن تكون صوراً ثنائية الأبعاد 2-D والتي تحتوي على بُعدين فحسب، مع تحديد الألوان بالطبع. أو صوراً ثلاثية الأبعاد تتمتع ببعد ثالث وهو العمق مع المعلومات الخاصة بالألوان أيضاً. ولتوضيح هذه النقطة بشكل أوضح، فكر في الرموز الدولية (العامة) التي تشير إلى أي باب يؤدي إلى دورة المياه ، على سبيل المثال. فقد تم تصميم هذه الرموز (التي تكون في العادة على شكل رجل وإمراة صغيرين) بشكل أساسي بحيث يمكنك التعرف عليها في لمح البصر. ولهذا السبب فهم يستخدمون فقط الأشكال الأساسية.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

قد تحاول المعلومات الإضافية التي قد يضعها البعض عن هذه الرموز إخبارك بنوع الملابس التي يرتديها الرجل أو المرأة الصغيرين الموجودين على الرمز ، ولون شعرهم ، وما إذا كانوا يذهبون إلى صالة الألعاب الرياضية بشكل منتظم ، وما إلى ذلك من المعلومات. ولكن وواقعياً فكل هذه المعلومات الإضافية لن تُفيدك ، بل ستميل إلى جعل الأمر يستغرق وقتًا أطول للحصول على المعلومات الأساسية من الرمز لتجد لسان حالك يقول : دعك من كل هذا الهراء ، أي مرحاض هو الذي أبحث عنه !!.

ولعل هذا المثال يوضح أحد الاختلافات الأساسية بين كيفية استخدام الرسوميات ثنائية الأبعاد وثلاثية الأبعاد في الحاسب : حيث أن الرسومات ثنائية الأبعاد جيدة في توصيل شيء بسيط وبسرعة كبيرة. في حين تحكي الرسومات ثلاثية الأبعاد قصة أكثر تعقيدًا ، ولكن يجب أن تحمل المزيد من المعلومات للقيام بذلك.

ولتوضيح المقصود بشكل عملي، يمكننا أخذ مثال بسيط للغاية. فعلى سبيل المثال ، تحتوي المثلثات على ثلاثة خطوط أو ضلوع وثلاثة زوايا - لذا فهذا كل ما نحتاجه لسرد قصة المثلث.  وعلى النقيض، فالهرم عبارة عن هيكل ثلاثي الأبعاد بأربعة جوانب مثلثة.  لذا فالأمر هنا أكثر تعقيداً بعض الشئ، حيث أن الأمر يتطلب خمسة خطوط وستة زوايا لسرد قصة الهرم - أي ما يقرب من ضعف المعلومات المطلوبة لرواية قصة المثلث.

الحقيقة المريرة ، هي أننا لا يمكننا رسم أي جسم ثلاثي الأبعاد فعلياً !!

في الحقيقة، لا يوجد أي نوع من أنواع الرسم الذي يستطيع بالفعل عرض الأشكال والأجسام بشكل ثُلاثي الأبعاد، وذلك لأنها يتم رسمها أو عرضها على أجسام أو أسطح ثنائية الأبعاد، وبإستخدام أدوات رسم تتمتع بنفس الخواص "ثنائية الأبعاج". ولعل النحت هو الفن الوحيد الذي يمكنه فعلاً عرض الأجسام في حالة ثلاثية الأبعاد فعلياً. ولذلك، فمنذ مئات السنين ، عرف الفنانون بعض الحيل التي يمكن أن تجعل اللوحة المسطحة ثنائية الأبعاد تبدو وكأنها نافذة على العالم الحقيقي ثلاثي الأبعاد.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

ويمكنك رؤية بعض هذه الأشياء عبر صورة يمكنك مسحها ضوئيًا وعرضها على شاشة جهاز الكمبيوتر الخاص بك : حيث تظهر الأشياء أصغر عندما تكون بعيدة ؛ كما أن الأشياء القريبة من الكاميرا تكون عادة في وضع التركيز (أي أكثر وضوحاً) ، كما تكون الأشياء البعيدة أكثر ضبابية وأقل وضوحاً ؛ كما وتميل الألوان إلى أن تكون أقل حيوية كلما كانت أبعد .

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

ولكن، عندما نتحدث عن الرسوميات ثلاثية الأبعاد على أجهزة الكمبيوتر اليوم ، فإننا لا نتحدث عن الصور الثابتة، بل نحن نتحدث عن الصور المتحركة.  لذا، فإذا كان تحويل صورة ثنائية الأبعاد إلى صورة ثلاثية الأبعاد يتطلب إضافة الكثير من المعلومات كما وضحنا في السابق، فإن خطوة التحول من الصورة الثابتة ثلاثية الأبعاد إلى الصور التي تتحرك بشكل واقعي تتطلب المزيد والمزيد من الجهد والمعلومات.

ولعل جزء من المشكلة هنا هو الطبيعة البشرية الشرهة بطبعها . حيث أننا صرنا نتوقع درجة عالية من الواقعية في كل ما نراه . فعلى سبيل المثال، وفي منتصف السبعينيات من القرن الماضي، كان من الممكن للعبة مثل "بونج" أن تثير إعجاب الناس برسوماتها على الشاشة. ولكن اليوم ، فنحن نقارن رسوميات الألعاب بالأفلام والواقع، ونريد أن تكون الألعاب سلسة ومفصلة مثل ما نراه في السينما. وذلك بالتأكيد يُشكّل تحديًا وعبئاً على مصممي الألعاب حول العالم، الذين وصلوا بالفعل لدرجات عالية من الواقعية، ولكن مقابل الكثير والكثير من الجهد .

ما هي الرسومات ثلاثية الأبعاد؟

بالنسبة للكثيرين منا ، تعتبر الألعاب على الكمبيوتر ، هي أكثر الطرق شيوعًا لرؤية الرسومات ثلاثية الأبعاد. ولكن ما لا يعمله الكثيرين هو أن هذه الألعاب، أو الأفلام ثلاثية الأبعاد، لابد لها من المرور بثلاث خطوات رئيسية لإنشاء وتقديم مشهد واقعي ثلاثي الأبعاد وهي :

  • إنشاء عالم افتراضي ثلاثي الأبعاد.
  • تحديد أي جزء من العالم سيتم عرضه على الشاشة.
  • تحديد كيفية ظهور كل بكسل على الشاشة بحيث تظهر الصورة بأكملها بأكبر قدر ممكن من الواقعية.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

إنشاء عالم افتراضي ثلاثي الأبعاد

كما أشرنا منذ قليل، فالعالم الافتراضي ثلاثي الأبعاد لا يماثل صورة واحدة لذلك العالم. وهذا ينطبق على عالمنا الحقيقي أيضًا. فعلى سبيل المثال، يمكنك أخذ جزءًا صغيرًا جدًا من العالم الحقيقي مثل - يدك وسطح المكتب تحتها . يدك لها صفات تحدد كيف يمكن أن تتحرك وكيف يمكن أن تبدو. حيث تنحني مفاصل الأصابع باتجاه راحة اليد وليس بعيدًا عنها. وإذا قمت بصفع يدك على سطح المكتب ، فلن تتناثر أجزاء من سطح المكتب - فهو دائمًا متين (إلا إن كنت تتمتع بقوى خارقة فهذا أمر آخر)..

الفكرة هنا هو أنه لا يمكن أن تمر يدك عبر سطح المكتب، أو تخترقه . لا يمكنك إثبات صحة هذه الأشياء بالنظر إلى أي صورة واحدة. ولكن بغض النظر عن عدد الصور التي تلتقطها ، سترى دائمًا أن مفاصل الأصابع تنحني باتجاه راحة اليد فقط ، وأن سطح المكتب دائمًا صلب ، وليس سائلًا . وهذا المثال أقصد به فقط أن هذه الخصائص دائماً ثابتة لا يمكن تغييرها . وهذا لأنه في العالم الحقيقي ، هذه هي الطريقة التي تتصرف بها الأيدي والطريقة التي ستتصرف بها دائمًا طبقاً لقوانين الفيزياء والطبيعة.

ولكن عند الإنتقال للعالم الإفتراضي، فالكائنات في العالم الافتراضي ثلاثي الأبعاد ، على الرغم من ذلك ، لا توجد في الطبيعة ، مثل يدك . إنها اصطناعية بالكامل. وهو ما يعني أنها لا تتمتع بتلك الخصائص الفيزيائية الثابتة مثل عدم قدرة يدك على إختراق المكتب. فالخصائص الوحيدة التي يتم منحها لهذه الأجسام في العالم الإفتراضي تأتي عن طريق البرامج، أو محركات الألعاب . لذا فيجب على المبرمجين استخدام أدوات خاصة وتحديد عالم افتراضي ثلاثي الأبعاد بعناية فائقة بحيث يتصرف كل شيء فيه دائمًا بطريقة معينة، كأن يتم منع راحة يدك من إختراق سطح المكتب وما شابه ذلك من الخواص الفيزيائية .

أي جزء من العالم الافتراضي يظهر على الشاشة؟

عندما تقوم بالتحرك في عالم اللعبة الذي أمامك ولنقل في لعبة Tomb Raider مثلاً ، تظهر الشاشة جزءًا صغيرًا فقط من العالم الافتراضي ثلاثي الأبعاد الذي تم إنشاؤه للعبة . ويتم تحديد ما يظهر على الشاشة من خلال مجموعة من الخصائث التي يتم بها تعريف العالم الخاص باللعبة (أي الخصائص الفيزيائية والطبيعية التي يتم إعطائها لعالم اللعبة)، والمكان الذي تختار الذهاب إليه والطريقة التي تختارها للنظر للأجسام المختلفة في هذا العالم أو المشهد.

فبغض النظر عن المكان الذي تتجه إليه - للأمام أو للخلف ، لأعلى أو لأسفل ، لليسار أو لليمين - يحدد العالم الافتراضي ثلاثي الأبعاد من حولك ما ستراه من هذا الموضع بالنظر في هذا الاتجاه. وما تراه يجب أن يكون منطقيًا من مشهد إلى آخر. فعلى سبيل المثال إذا كنت تنظر إلى كائن ما -ولنقل مبني في وسط مكان ما- من نفس المسافة ، وبغض النظر عن الاتجاه الذي تنظر منه لهذا الجسم، فيجب أن يبدو المبنى بنفس الارتفاع والحجم .

حيث يجب أن يظهر كل جسم ويتحرك بطريقة تقنعك أنه دائمًا ما يحتوي على نفس الكتلة ، وأنه صلب أو لين ، متين أو مرن ، أو بعبارة أُخرى يتمتع بخصائص ثابتة أيّاً كان الوضع.

ويبذل المبرمجون الذين يقومون بكتابة ألعاب الكمبيوتر جهدًا هائلاً في تحديد العوالم ثلاثية الأبعاد بحيث يمكنك التجول فيها دون مواجهة أي شيء يجعلك تفكر ، "ما هذا الهراء، هذا ليس واقعياً بالمرة !" . فآخر شيء تريد رؤيته هو جسمان يمران من خلال بعضها البعض، كما يحدث في بعض الأحيان مع بعض الألعاب التي تحتوي بعض المشاكل الرسومية أو التقنية "والتي لا تسلم من السخرية، أو أن تُصبح حديث الساعة" . فحدوث مثل هذه المشاكل في الحقيقة يُخرجك من إمدماجك في عالم اللعبة، ويجعلك تتذكر أن كل ما تراه هو عالمٌ تخيليٌ بحث .

كيفية ظهور كل بكسل على الشاشة بحيث تظهر الصورة بأكملها بأكبر قدر ممكن من الواقعية؟

بغض النظر عن حجم العالم الافتراضي ثلاثي الأبعاد أو ثرائه ، لا يمكن للكمبيوتر تصوير هذا العالم إلا من خلال تلوين وحدات البكسل على الشاشة ثنائية الأبعاد. لذا سيُركّز هذا القسم فقط على ما يفعله الرسامون التقنيون لجعل ما تراه على الشاشة يبدو واقعيًا ، وسنركز بشكل خاص على كيفية جعل المشاهد تبدو أقرب ما يمكن إلى ما تراه في العالم الحقيقي. سننظر أولاً في كيفية جعل كائن ثابت واحد يبدو واقعيًا . ثم سنُجيب على نفس السؤال للمشهد بأكمله مع مجموعة من الأجسام. وأخيرًا ، سننظر في ما يجب على الكمبيوتر فعله لعرض مشاهد بالحركة الكاملة للصور بشكل واقعي وبحركة واقعية.

مصطلحات تقنية: كيف ترسم البطاقة الرسومية العالم ثلاثي الأبعاد ( 1 )؟

ولأن الخطوة الثالثة في الحقيقة تتضمن على الأقل قدرًا من الحوسبة مثل الخطوتين الأخريين مجتمعتين . كما أنها يجب أن تحدث في الوقت الفعلي للألعاب ومقاطع الفيديو، وتتغير بتغير هذه المشاهد بشكل كبير . ولأنها في حد ذاتها خطوة كبيرة نسبياً ولا أظن أنك تُريد سماع المزيد من الثرثرة الخاصة بي، فسنلقي نظرة مطولة عليها ولكن ليس اليوم.