الشبكة العربية لمطوري الألعاب

خبير مدير وسام البهنسي مشاركة 1

مصدر الخبر: http://www.pcper.com/article.php?aid=532
 
 
أود أن أبدأ بالتعليق هذا الخبر المثير، وأطلب من الجميع عدم التردد في إبداء الرأي ووجهات النظر... فكما يقولون، إن جون كارماك هو أحد القلائل الذين إن تكلموا فإن الجميع يتوقفون لاستماع كلامه.
 
سألخص فحوى المقابلة بشكل سريع:
 
سئل جون عن رأيه بالاتجاه الحالي لتطور عالم الرسوميات الفورية في الألعاب، والتي تقاد الآن بنوايا شركة إنتل لطرح جيل جديد من المعالجات القادرة على أداء حسابات تتبع الأشعة (ray tracing) بشكل فوري، لتغير بذلك مفهوم الرسم التقليدي الذي اعتدناه في العقد الأخير من هذه الصناعة.
 
يصرح جون بشكل قاسي أن هذه خطوة فاشلة ولن تقود إلى أية نتائج تغير مجرى التطور في عالم الرسوميات الفورية. السبب ليس لأننا لسنا بحاجة إلى هذه الإمكانيات، وإنما لأن إنتل تنوي تنفيذ هذه الخطوة بالطريقة الأمريكية الشهيرة في حل الأمور: الضخامة الزائدة التي ترتبط بالتكاليف الفلكية (وضع قوة إضافية في المعالجات وزيادة عددها).
 ويزيد أنه من الأفضل التفكير بطرق أخرى لمعالجة المشكلة، طارحاً بذلك اختراعه الجديد mega geometry والذي يعتبر التطور الطبيعي لتقنية mega texturing التي اخترعها منذ فترة وجيزة ويتم استخدامها الآن بالفعل في بناء مشروع Rage (سباق سيارات) القائم على محرك id Tech 5.
يعتقد جون أن تطوير المعالجات الحالية لتستطيع أداء الحسابات المطلوبة لاختراعه الجديد هو ما سيجلب ثورة جديدة في عالم الرسوميات، لأن متطلبات خوارزميته أساساً أقل كلفة وأسهل للتنفيذ وأسرع من البنى المعقدة الحالية في معالجات الرسوميات. المشكلة الوحيدة أنها تعتبر طريقة تفكير مختلفة كلياً وتحتاج إلى إعادة هندسة لكروت الشاشة كي تستطيع تنفيذها بشكل أمثلي.
 

 
يعارض جون أيضاً إحدى تصريحات إنتل بأن المعالجات الجديدة لن تدعم طرق الرسم الحالية، وإنما ستجبر المبرمجين على التخلي عن كل تقنيات الرسم التقليدية. يعتقد أن جون أن هذا تصريح غير منطقي، وحتى في تقنيته الجديدة هو يعتقد أنه يجب الاستمرار في دعم الطرق السابقة لأنها لا تزال ناجحة جداً في كثير من النواحي. يضرب كمثال معمارية المظللات shaders الحالية، فهو لا يتخيل أن نتخلى عن هذه الطريقة الجميلة في بناء المؤثرات من أجل معالجات إنتل.
 
ويجيب جون أيضاً عن سؤال مباشر وصريح، هل سنحتاج إلى تعديل مكتبات DirectX و OpenGL كي نستطيع استخدام خوارزميته الجديدة في الرسم؟
يرى جون أن هذه المكتبات بنيت بافتراضات مسبقة لطريقة الرسم الحالية (تسليم المثلثات وإسقاطها وتلوينها ...الخ). بينما خوارزميته تحتاج إلى مكتبة حسابات عامة general computation كي يمكن الاستفادة منها، ويقترح مكتبة CUDA من nvidia كمثال جيد على المكتبات المناسبة لهذه المهمة...
 
ضمن حلقات سلسلة انتقاداته أيضاً يعلق جون عن عدم رضاه بالتوجه الجديد لتعدد المعالجات في كروت الشاشة الحديثة، ويرى أن هذا يعقد حياة الجميع، بدءاً من مبرمجي الألعاب وحتى مبرمجي الـ drivers الخاصة بهذه الكروت (وهو يرثي لهم وضعهم المؤسف الحالي بسبب كمية الجهد التي يبذلونها كي يستطيعوا طرح مشغلات drivers تعمل مع كل الألعاب السابقة ودعم المواصفات الجديدة لكرت الشاشة).
 
بعد ذلك يـُسأل جون عن رأيه بالمحاولات السابقة لإنتاج كروت لحسابات الفيزياء، وبالذات كمثال شركة Ageia. ورده يكون ببساطة أن المشروع كان فاشلاً منذ لحظة طرحه، وأي شخص قصير النظر يستطيع استنتاج أنه لا مكان في السوق لمثل هذا المنتج. برأي جون أن شركة أجيا قد قامت على مبدأ الضحك على عقول الزبائن والشركات الأخرى، وهو يرى أن إنتل قد أكلت مقلباً محترماً بشرائها هذه الشركة.
إلا أنه على سبيل حسن الظن، يقول أن السبب الوحيد الذي يسمح به هو أن إنتل قد اشترت هذه الشركة لتحسن من جودة العروض والديمويات التي تعرضها عن منتجاتها، لأنها حتى الآن برأيه... احم...
 
 
هذا هو ملخص سريع للمقالة الإنجليزية، والتي يمكنكم قراءتها بشكل كامل من الرابط في بداية هذه المشاركة...
وأشجع الجميع على المشاركة في وجهة نظره ضمن هذا الموضوع! فما رأيكم؟

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير  سلوان الهلالي مشاركة 2

مرحباً,
 
مقابلة رائعة وفيها الكثير من المعلومات, عندما قرأتها إستطعت أن أتصور (ولو بشكل بسيط) كيف سيكون مستقبل تقنيات الرسوميات أو على الأقل المسارات التي من الممكن أن تسلكها تلك التقنيات.
 
يعجبني في جون كارماك صراحته الشديدة في كل ما يقوله, وأعتقد إن هنالك إحتمال كبير أن الطريقة التي يتكلم عنها sparse voxel octrees هي المستقبل (كما حصل مع BSP و Portal في يوم ما), حيث إن id أو جون بالتحديد كان دائماً يقود تطور تقنية الرسوميات الفورية من جيل إلى جيل.
 
أما عن طريقة الـ Voxel نفسها فـأعتقد إنها فكرة تعود للتسعينات أو قبل ذلك حتى, رغم إني شبه متأكد أن الـ voxels التي أعرفها بدائية بالنسبة لطريقته التي يتكلم عنها (أو على الأقل مختلفة جذرياً), جربت بعض الديموات سابقاً والتي تستخدم الـ Voxel ولكن لم يكن من الممكن تقديم دقة مشاهد مشابهه للطريقة الإعتيادية في الرسم (triangle rasterization) مع المحافظة على سرعة جيدة, أصلاً الرسم بالـ voxel يفتقد للأداة الأساسية التي تستخدمها الألعاب اليوم لكل شئ وهي الإكساءات, ولكن تمتلك مزايا من الصعب القيام بها بإستخدام الطرق الإعتيادية (مثل قابلية التدمير).
(مثلاً: Voxlap Cave Demo ->  http://www.advsys.net/ken/voxlap/voxlap03.htm).
 
لقد لفت نظري إشارة كراماك إلى برنامج CUDA عدة مرات, يبدو إن هذه الأداة ستكون شيئاً مهماً في المستقبل, حيث قد كثر الكلام في السنوات الأخيرة عن وضع الحسابات الفيزيائية المكلفة على الـ GPU (بالتحديد التي من الممكن أن تستفيد من الـ parallel processing), ... في يوم ما سيجد المعالج المركزي نفسه عاطل عن العمل .... بلا فائدة ;-)
 
وقد أشار أيضاً إلى ما أعتيره مشكلة تعصف الآن بسوق ألعاب الكومبيوتر, للأسف... معظم المطورين اليوم يطورون ألعابهم خصيصاً لعتاد أجهزة الـ console (لأن سوقها أكبر وأرباحها أكثر) ثم يقوموا في ما بعد بتحويل (port) تلك الألعاب للكومبيوتر, طبعاً هذا سيجعل الكثير من الخوارزميات المستخدمة غير مناسبة أو غير مثالية لعتاد الكومبيوتر مما يقلل من جودة وأداء تلك الألعاب, من الممكن عملياً صنع ألعاب تمتلك وأداء مشابه لألعاب الـ console بدقة أعلى فقط إن تم تطوير اللعبة خصيصاً لعتاد الكومبيوتر.
 
(ملاحظة للأخ وسام: لقد ذكرت أن إنتل قد أكلت مقلباً عندما إشترت إيجيا, أعتقد إنك كنت تعني هافوك صحيح؟ أو كنت تعني أنفيديا بدل إنتل يمكن؟)

خبير مدير وسام البهنسي مشاركة 3

وفي 14 مارس 2008 09:10 ص، قال سلوان الهلالي متحمساً:

(ملاحظة للأخ وسام: لقد ذكرت أن إنتل قد أكلت مقلباً عندما إشترت إيجيا, أعتقد إنك كنت تعني هافوك صحيح؟ أو كنت تعني أنفيديا بدل إنتل يمكن؟)

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



وفي 14 مارس 2008 09:10 ص، ظهر شبح ابتسامة على وجه سلوان الهلالي وهو يقول:

أما عن طريقة الـ Voxel نفسها فـأعتقد إنها فكرة تعود للتسعينات أو قبل ذلك حتى, رغم إني شبه متأكد أن الـ voxels التي أعرفها بدائية بالنسبة لطريقته التي يتكلم عنها (أو على الأقل مختلفة جذرياً), جربت بعض الديموات سابقاً والتي تستخدم الـ Voxel ولكن لم يكن من الممكن تقديم دقة مشاهد مشابهه للطريقة الإعتيادية في الرسم (triangle rasterization) مع المحافظة على سرعة جيدة

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


أما في 14 مارس 2008 09:10 ص، فقد تنهد سلوان الهلالي بارتياح وهو يرد:

أصلاً الرسم بالـ voxel يفتقد للأداة الأساسية التي تستخدمها الألعاب اليوم لكل شئ وهي الإكساءات, ولكن تمتلك مزايا من الصعب القيام بها بإستخدام الطرق الإعتيادية (مثل قابلية التدمير).

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




 
تحياتي

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير  سلوان الهلالي مشاركة 4

في 14 آذار 2008 05:42 م، غمغم وسام البهنسي باستغراب قائلاً:

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

شكرا للشرح, في الحقيقة لم أنتبه سابقاً لمصطلح المصفوفات المتناثرة, لقد تسألت في السابق لماذا لا يمكن كتابة Pixel Shader يقوم بفك ضغط صورة jpg بياناتها ممثلة على شكل texture؟ ولكن بسبب إن الصورة مخزونة بخوارزمية ضفط مستمرة لا يمكن (أو من الصعب) الدخول إلى معلومات بكسل واحد أو أكثر محدد من دون معالجة الصورة بأكملها (أو أجزاء منها), لقد فهمت من كلامك إن توفر إمكانيات معالجة أكثر عمومية (إمكانية التعامل مع نوع ما من البيانات يستطيع تمثيل المصفوفات الفارغة المتناثرة تحديداً) ممكن أن يحل تلك المشكلة...
 



بتاريخ 14 آذار 2008 05:42 م، قطب وسام البهنسي حاجبيه بشدة وهو يقول:

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

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

خبير مدير وسام البهنسي مشاركة 5

للمهتمين بالموضوع، طرحت إنتل عرضاً أخيراً يوضح مزايا معماريتها الجديدة (لارابي Larrabee):
 
http://www.pcper.com/article.php?aid=534&type=expert&pid=3

وسام البهنسي
مبرمج في إنفيديا وإنفريمز