Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

كيفية عمل التصوير ثلاثي الأبعاد

  • إختلاف زاوية النظر بين العينين
  • طرق الرسم الثلاثي الأبعاد التي توفرها OpenGL

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

تفترض طريقة رسم OpenGL للكائنات وجود عالم فراغي من ثلاثة أبعاد (x – y – z), و يحوي هذا العالم جميع الكائنات, و يحوي أيضًا كائنًا مميزًا عن البقية هو الكاميرا, وهذه الكاميرا لها خصائص معينة بحيث نستطيع رؤية العالم منها, إذ تقوم هذه الكاميرا بتصوير العالم وإرسال الصور لنا لنرى هذا العالم مثل مقطع الفيديو, ولكن كيف نستطيع أن نرى الكائنات بشكل ثلاثي الأبعاد؟ وكيف تختلف عن الكائنات ثنائية الأبعاد؟

 

إختلاف زاوية النظر بين العينين

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

جرّب الآن وضع كوب بعيدًا عن أنفك بشبر وجرب رؤيته بعين واحدة مرةً وبعينين مرةً أخرى.


في دور عرض الأفلام حاولوا محاكاة ذلك عبر نظارات خاصة لها عدستين زرقاء وحمراء, وعند عرض الفلم يتم سلخ الصورة القريبة من الكاميرا لقسمين أزرق وأحمر, وبين الصورة باللونين مسافة تزداد باقتراب الجسم من الكاميرا, فالزاوية بين الصورتين التي تراها العينين تزداد مع اقتراب الجسم من العينين, ويمكن فعل ذلك في OpenGL.


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

حتى الآن ما رأيناه هو أمور يمكن برمجتها في OpenGL لكن OpenGL لا تدعمها إفتراضياً.

 

طرق الرسم الثلاثي الأبعاد التي توفرها OpenGL

 

التقصير Foreshortened

التقصير هو عملية جعل الكائنات البعيدة تبدو أصغر من حجمها الطبيعي, وهذه العملية هي التي تعطينا منظوراً ثلاثي الأبعاد 3D Perspective.

صورة تبين المنظور المُقصّر مع غير المُقصّر


التظليل

توفر OpenGL طرق تظليل للكائن بحيث تستفيد من شكله الثلاثي الأبعاد في عملية تظليل مشابهة للظل في الحياة الواقعية, ويعطي هذا التظليل فهماً للناظر عن طبيعة شكل الكائن.

التّظليل الخفيف للقمر على طرفه يرينا أنّ القمر كرويٌّ.


الآن وقد فهمنا كيف نرى الكائنات بمنظور ثلاثي الأبعاد يمكننا الانتقال لمعرفة كيف تتعامل OpenGL مع الكائنات.

 

المجسمات

تتكون جميع الكائنات في OpenGL من نقاط Vertices, وكل ثلاث نقاط تتصل مع بعضها لتكون مثلثاً له سطح, وهكذا يمكنك جمع المثلثات لتكوين أي مجسم تريده.


الحركة Animation

يمكن تحريك المجسمات في OpenGL بشكل أساسي عبر تغيير مكانها أو دورانها في الفضاء, وهذه الحركات لا تغيّر شكل المجسم وإنما موقعه في الفضاء, ويمكن تغيير شكل المجسم لجعله يتحرك, ومن طرق تغيير شكل المجسم لإظهار الحركة:



(صورة لمدفع صُوّر بالتّصوير الفيزيائي مرةً وبنموذج فونج مرةً أخرى)



آخر تحديث في 01-08-2024

الكاتب

رامي عبدالله

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

تعليقات 2

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.