الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حول المقالات الأولى لnehe Opengl

بدأه basha2002 في 20 مايو 2009 · 5 رد · 1,301 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

منذ فترة بعيدة و أنا أسال نفسي, هل بالمقالات الأولى التي وضعها الأخ علي الدعيج (رحمه الله) أخطاء أو بعض الأشياء الناقصة التي قد تحول دون إتمام القراءة الصحيحة لباقي المقالات؟ أم أن الشرح كان كافي و وافي؟! عموما هذه تعديلاتي على المقالة الأولى, و التي أرجو منكم وضعها تحت المجهر الإلكتروني الخاص بالنقد :) أرجو عدم التهاون في إبداء أي نقد و لو بسيط.

و السلام ختام

First_Lesson.rar

1

عندما أعلن حبى لشىء فى البرمجة فذلك معناه أنه أفضل بالنسبة لى من حيث المميزات و الامكانات

OpenGL-3-revolution.jpg

#2

وعليكم السلام ورحمة الله ..

رحمه الله , كانت ترجمته متقنة ..

لاحظت اضافتك الجديدة :

اقتباس
1. وجود الكاميرا بحد ذاته التي سوف تقوم باستعراض المجسمات. و هو ما نعبر عنه في OpenGL من خلال المصفوفة الرباعية لمستعرض المجسمات"Model View Matrix" .

2. سقوط عدسة الكاميرا على مجسم ما أو عدة مجسمات أو حتى جزء من أحد هذه الأجسام بما يؤدي لرؤية هذا الجزء تحديدا الذي سقطت عليه عدسة الكاميرا. و يتم ذلك في OpenGL من خلال المصفوفة الرباعية للإسقاط "Projection Matrix".

3. طبيعة الأجسام التي ستسقط عليها عدسة الكاميرا و تعتمد الكاميرا في ذلك على إسلوبان:

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

و يتم ذلك بالطبع في OpenGL من خلال نوعين أيضا:

إما إعتماد دالة خاصة بالتصوير المنظوري "Perspective" (أو بمعنى أدق الإسقاط المنظوري) و ذلك للتعامل مع مجسمات ثلاثية البعد, و إما إعتماد دالة خاصة بالتصوير المتوازي "Ortho" (أو بمعنى أدق الإسقاط المتوازي) و ذلك للتعامل مع المجسمات الثنائية البعد.

4. فتحة الكاميرا أو الشاشة التي سننظر للمجسمات من خلالها و هي ما تعرف باسم منفذ الرؤية"View Port" . و يتم ذلك في OpenGL من خلال الدالة glViewport() و التي ستكون منطبقة في الغالب و بالأساس مع نافذة البرنامج.

بقى فقط أن نذكر أن التعامل مع العالم الثلاثي البعد يحتاج لما يعرف بالمصفوفة الرباعية "Matrix" و هي التي تساعدنا في التعامل مع عملية الإسقاط "Projection" و إستعراض المجسمات "Model View" و ذلك للقيام بعمليات التحويل "Transformations"...إلخ.

أعتقد أنه الأن يسهل عليك فهم الأكواد التالية. حسنا, لنعد إلى الدرس

وهي اضافة موفقه وفي مكانها ...

اما التعديلات الطفيفة لم الاحظها .. اذا كانت عبارة عن ترجمة مصطلحات او تحسين ترجمة بشكل عام فيمكن توضيح موقع التعديلات لسرعة الوصول اليها وانتقادها :) ..

جزاك الله خير .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

السلام عليكم

حسنا أخي, في البداية أود شكرك على الإهتمام و التفاعل, بخصوص الأسلوب في الترجمة لا شك أنه كان ممتاز(رحمه الله), و لكن ما كنت أقصده هو الأخطاء اللغوية المعتادة (التي لم أسلم أنا شخصيا منها و مازالت في مقالاتي بجزء كبير :) ) و التي قلت ربما لا يحبها القراء (أقصد الهمزات و التفرقة بين الألف المقصورة و الياء في نهاية الكلمة إضافة إلى وجود الفواصل و نقطة في نهاية كل سطر أو فقرة).

ثانيا: التعديلات تجدها كالتالي:

1. محاولة دمج الألفاظ المقترحة من الفريق العربي للبرمجة مع المقالة, و مثال ذلك ذكر لفظ إستهلالية مع InitGL().

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

3. لو أنك قرأت أخي الحبيب في أول مقالات NeHe باللغة الإنجليزية ستجد أنه ذكر إعتماده على الكتاب الأحمر "Red Book" و الـSuper Bible. إذن فالمقالات بحد ذاتها قاصرة (أقصد المقالات الإنجليزية بذات نفسها) و كان لابد من ذكر بعض الإضافات التي تعين القاري حتى يرتفع مستوى الثقة في الكتابات التي باللغة العربية :) تذكر أخي دوما إن الكتابات العربية و إن كانت بسيطة إلا أن البعض يتخذها كمراجع. حسنا, ما ذكرته أخي كان جزء, الجزء الثاني كان يدور حول فكرة توضيح أحد المفاهيم المعروفة باسم قرينة المعالجة "Render Context" و قرينة المشغل "Device Context".

بعيد1 عن كتاب NeHe و ترجمته ككل. لاحظت أن الغرب لا يضع المصطلحات إلا التي موجهة تحديدا إلى ما تتعلمه حاليا. و لنأخذ مثالا للتوضيح, مصطلح Initialization بمعنى إستهلالية تجده بالأصل موجودا عند تعلمك لأساسيات اللغة C++ و لكن لا تجده في قاموس المصطلحات عند إنتقالك لـOpenGL أو DirectX مثلا. و تجد في OpenGL مثلا مصطلحات لا تسمعها إلا عند تعاملك معه. لذلك, أقترح و نحن في هذا المنتدى المخصص لـOpenGL بترجمة المصطلحات التي تمس مكتبتنا على وجه التحديد, و التي ورد أغلبها إن لم يكن كلها في كلا من الكتاب الأحمر و القسم الخاص بـOpenGL داخل الـMSDN الخاص بمايكروسوفت (و إن كنت أعتقد أن مصطلحات الكتاب الأحمر أعم و أشمل). هذا رأيي, و منتظر المناقشة........

و السلام ختام

عندما أعلن حبى لشىء فى البرمجة فذلك معناه أنه أفضل بالنسبة لى من حيث المميزات و الامكانات

OpenGL-3-revolution.jpg

#4
اقتباس
لذلك, أقترح و نحن في هذا المنتدى المخصص لـOpenGL بترجمة المصطلحات التي تمس مكتبتنا على وجه التحديد,

من الصعب تحديد تلك المصطلحات التي تخص المكتبة .. عموما .. تستطيع أخي , أن تضيف الكلمات .. وستجد الاقتراحات .. :) , الموضوع مهم بصراحة ..

أهم قاعدة في نجاح تعريب أي كلمة .. هو أن لا تكون ترجمة حرفية .. بل تكون ترجمة لما تفعله تلك الكلمة .. هناك كلمات في اللغة الانجليزية لاتنفع معها الترجمة الحرفية ..

مثال :

اقتباس
Initialization : استهلالية

.. أرى أنها غير معتادة .. يوجد كلمة أسهل ومتداولة ..

الكلمة البديلة هي : تهيئة .. وهي بالفعل تصف الحدث ( تهيئة OpenGL بقيم ابتدائية ) .

صحيح أنه عند ترجمة كلمة Initialization في القاموس ستجد " استهلال" .. ولكن يمكن أخذ كلمة أسهل ومتداولة .

كلمة أخرى :

اقتباس
Context : قرينة .

أرى وجد كلمة بديلة لها وهي : سياق .. تصف ما تفعل بالاضافة إلى أنها متداولة وليست غريبة ... لكل سياق في OpenGL متغيراته الخاصة به ( Buffers - States Variables ... ) . كلمة سياق منتشرة لدى العامّة .. مثل سياق الكلام .. أي شيء يختص بما نتحدث عنه .. سياق OpenGL شيء يختص بـ نسخةOpenGL في الذاكرة .

هذه كأمثلة فقط :) .. خذ مثلا :

اقتباس
قرينة المعالجة "Render Context"

Render : يصيّر .

Renderer : المصيّر .

Rendering : تصيير .

Rendered : مصيّر .

- وهي بالفعل تصف الفعل ( تحويل الثري دي إلى تو دي ) .. ( اهه .. بما أننا نعرّب ) .. فأقول ( تحويل شكل ثلاثي الأبعاد إلى ثنائي الأبعاد ) .

الخلاصة .. تجربتي مع الكلمات المترجمة .. هي بأن نترجم الكلمة بناء على " عملها " .. وليس على ما ينتجه القاموس .

وهذا مجرد رأي أخي الباشا ..

لدي الكتاب العربي المترجم للكتاب الأحمر .. الترجمة لابأس بها ( جيدة جدا ) .. باستثناء بعض الكلمات الغريبة مثل

" نقاط الذرى " .. أتحدى أن تعرفون ماذا يقصد بها :D ?

تم تعديل هذه المشاركة بواسطة الشمري في 23 مايو 2009 في 21:10

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5

السلام عليكم

أولا أحب أن أشكرك يا أخي على الأهتمام و التفاعل. بخصوص مسألة قرينة المعالجة فجاءت مني سهوا :) هي بالفعل قرينة التصيير. أما بخصوص باقي المصطلحات فإنها محكومة بوجود إنتاج كبير يجبر القاري العربي على اللفظ المختار. عموما لا أمانع من تفيير ألفاظ أخترتها أنا و لكن تبقى المشكلة في ألفاظ أختارها الفريق العربي للبرمجة. و بالنسبة للمصطلحات أكرر تأكيدي على مصطلحات الكتاب الأحمر بأن ترجنتها ستكوت وافية جدا.

بالمناسبة أريد أخذ الرأي في بعض المصطلحات الأخرى.

Matrix: المصفوفة الرباعية. السر في أختيار هذه التسمية أنها جاءت لإستقرار مفهوم المصفوفة للمصطلح Array و هو ما جعلني مقيد بالبحث عن أسك آخر لـMatrix و إن كنت أفضل أن أسم مصفوفة هو لـMatrix أما Array فإسمها صف.

و جاري مناقشة باقي المصطلحات....

و السلام ختام

عندما أعلن حبى لشىء فى البرمجة فذلك معناه أنه أفضل بالنسبة لى من حيث المميزات و الامكانات

OpenGL-3-revolution.jpg

#6

أرى أن ترجمة Matrix و Array الى مصفوفة يكفي ( نحن كطلاب ندرس هذه المادة .. والجميع يسمّي Matrix بالمصفوفة ..و في الرياضيات يسمونها Matrix ( في كتب الجبر الخطي العربية يسمونها مصفوفة ) .. وفي لغات البرمجة في الجامعات يسمّون Array بالمصفوفة ..) لذلك لا أظن أنه يوجد التباس حول هذه النقطة .. اذا كنا نتحدث في مجال برمجة الرسوميات فسنعني Matrix .. واذا كنا نتحدث في مجال لغات البرمجة والتطوير فسنعني Array .

لذلك لاداعي لاضافة كلمة الرباعية أو المربعة .. هذا رأيي .. وفي انتظار باقي المصطلحات .. :) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

مواضيع مشابهة