ما معني تتبع الأشعة Ray Tracing، ولماذا يجب أن نهتم؟ - عرب هاردوير

ما معني تتبع الأشعة Ray Tracing، ولماذا يجب أن نهتم؟

انتشرت عبارة تتبع الأشعة Ray Tracing في أوساط رسوم الألعاب كثيرا في الفترة الأخيرة .. لكن الكثيرون يسأل عنها وعن

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

طوال العقود المنصرمة، انحصرت رسوم الألعاب في تقنية رسم واحدة، اسمها التنقيط Rasterization.

والتنقيط هي عملية تتضمن تفتيت المشهد أو الجسم ثلاثي الأبعاد الي نقاط صغيرة dots أو pixels، ثم تقوم برسم النقاط المواجهة للاعب فقط .. أي انها تتعامل فقط مع ما هو أمام الشاشة، وتلغي النقاط التي تقع خارج منظور اللاعب او تقع محجوبة خلف نقاط اخري .. باختصار أي شئ لا يظهر أمام اللاعب لا يتم رسمه و اظهار تاثيره .. ومن هنا استمدت اسم التنقيط، هي تقوم بتنقيط المشهد وترشيح نقاطه توفيرا للأداء ..

والتقنية توفر أداء سريعا للغاية، بسبب أنها تختصر من العبأ الحسابي برسم الأجسام المواجهة للاعب فقط أولا، وثانيا بفضل أن كل المعالجات الرسومية تحوي وحدات خاصة لتسريع التنقيط، تسمي باسم وحدات التنقيط Rasterizer Unit.

 

في البدء يحذف التنقيط الجسم خارج منظور الرؤية (الدائرة البرتقالية بالأعلي)، ثم يزيل نصف الدائرة الخضراء (بالأسفل) لأنه يقع أيضا خارج منظور الرؤية

 

بالأعلي يزيل التنقيط أيضا الأجزاء الخلفية من كل الدوائر لانها غير مواجهة لللاعب.. وبالأسفل يزيل أيضا الجزء العلوي من الدائرة الزرقاء لأنه محجوب بالدائرة السماوية

يعيب التقنية انها تتعامل فقط مع الأجسام ثلاثية الأبعاد جسما جسما، بطريقة مفردة، تفتتهم جسما جسما الي نقاط وترسم فقط النقاط التي تظهر أمام اللاعب .. التقنية لا تتعامل مع أي نقاط أخري غير النقاط التي هي أمام اللاعب، أي نقاط خلف النقاط الامامية غير موجودة في عٌرف التقنية، لهذا لا تستطيع التقنية انتاج ظلال او اضاءة كاملة او انعكاسات او اية تأثيرات شفافة .. الخ، لأن كل هذه المؤثرات تحتاج الي نقاط أخري غير النقاط الامامية، وتحتاج الي التعامل مع الاجسام في مجموعات وليس بطريقة فردية!

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

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

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

انعكاسات ثابتة خاطئة تماما وغير مطابقة للبيئة حولها 

انعكاس النافذة الي اليسار ناقص لأن النافذة لا تظهر أمام منظور الرؤية!

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

اضاءة ثابتة خاطئة تماما، الرمال تعكس ضوءا قويا من مصدر ضوء غير موجود، لأنها اضاءة ثابتة جاهزة

كذا الأمر مع الظلال، يمكن للتنقيط فقط رسم الظلال أمام محيط اللاعب مباشرة، أما الظلال غير المباشرة من الأجسام المحيطة فلا يمكن رسمها الا بطرق ملتوية أخري مثل ان ترسم كمؤثرات اخراجية post process وتلك تقدم مشكلات أخري مثل تشوهات الظلال (بظهور الهالات البيضاء حولها) وعدم اكتمالها .. وحتي الظلال المباشرة لا ترسم بطريقة جيدة، بل تظهر حادة وبتعرجات كثيرة .. وتحتاج الي أساليب جديدة لتنعيمها. في فترة من الفترات كانت ظلال الأجسام ترسم كبقعة دائرية غير محددة blob shadow، أو ترسم كجسم ثنائي الأبعاد مسطح ومفلطح flattened shadow!

ظلال مفلطحة تتسلل تحت الباب! وهي أصلا عبارة عن جسم ثنائي الأبعاد مسطح ومضغوط، لهذا ينزلق أسفل الباب!

بقعة ظلال غير محددة الملامح .. 

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

أما تتبع الأشعة فهي تتفادي كل هذه العيوب كلية.

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

 

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

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

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

Ray Tracing RTX

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

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

 ظلال منفصلة تماما عن الجسم الذي أسقطه، و تظهر بسبب زاوية الرؤية ..

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

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

يستطيع تتبع الاشعة رسم اضاءة شمولية تفاعلية، تتفاعل مع حركة الاجسام وتتأثر باختفاء وظهور مصادر الضوء، يستطيع رسم ظلال دقيقة جدا وناعمة لاي جسم وكل جسم، ومن اي مصدر ضوء، يستطيع رسم انعكاسات حقيقة تعكس المشهد كله، وتعكس نفسها علي نفسها عشرات المرات! يستطيع رسم ظلال شفافة وأجسام جيلاتينية او عضوية او كريستالية شفافة كان من المستحيل رسمها في السابق دون تتبع الأشعة!

الفرق بين الاضاءة العادية المباشرة بالأعلي، والاضاءة الشمولية غير المباشرة (بتتبع الأشعة) بالأسفل ..

الفرق بين الاضاءة العادية المباشرة الي اليسار، والاضاءة الشمولية غير المباشرة (بتتبع الأشعة) الي اليمين ..

Reflections RTX Turing

انعكاسات لا نهائية خلال المرايا، غير ممكنة الا بتتبع الأشعة .. 

Translucent Shadows

ظلال شفافة غير ممكنة الا بتتبع الأشعة

ظلال شفافة غير ممكنة الا بتتبع الأشعة

     مجموعة معقدة من الخامات الشفافة والظلال الشفافة لا يمكن رسمها الا بتتبع الأشعة 

لكن يعيب تقنية تتبع الأشعة أنها مكلفة في الأداء أكثر من التنقيط .. لهذا لم تكن أبدا متاحة في الألعاب، فقط كانت متاحة في رسوم المحترفين المسجلة CGI، وفي أفلام السينما.

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

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

وفي الأعوام الأخيرة وجدنا أمثلة كثيرة لألعاب تضحي بأداء كبير للغاية من أجل تقنيات تنقيط تحسن جودة الصورة بشكل طفيف، مثلا فان تفعيل إعداد Insane Reflections في لعبة Gears Of War 4 يخسف الأداء علي بطاقة GTX 1080 من 90fps الي 52fps، وكل هذا من أجل تحسن ضئيل في دقة الانعكاسات، تحسن لا يقارن بانعكاسات تتبع الأشعة اطلاقا!

تفعيل اعدادات الظلال الناعمة +PCSS في Far Cry 4 يهبط بالأداء من  80fps الي 55fps علي بطاقة 1080Ti! وهي ظلال تنقيط وليست حتي ظلال تتبع أشعة!

تشغيل لعبة َQuantum Break علي دقة العرض الحقيقية native resolution بمعدل 60fps أمر مستحيل علي أي بطاقة باستثناء 2080Ti بسبب ثقل تقنية الاضاءة الشديد فيها، وهي تقنية تعمل بالتنقيط أيضا، ولم تصل الي جودة ولا كفاءة تقنية الاضاءة بتتبع الأشعة!

تشغيل تقنية الظلال الشاملة VXAO في Rise Of Tomb Raider أو الظلال الناعمة HFTS في The Division يهبط بالأداء من 90fps الي 70fps علي بطاقة 1080Ti!

VXAO vs HBAO+

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

لهذا فقد قررت Microsoft دمج تقنية تتبع الأشعة Ray Tracing في مكتبة DirectX12 علي نظام تشغيل Windows 10، ادراكا منها لأهميتها وادراكا منها أن تقنيات التنقيط قد وصلت لأقصاها بالفعل .. وان التحرك للأمام يعني افساح المكان لتتبع الأشعة كي يحل محل التنقيط بالتدريج.

 وكانت NVIDIA أول من قرر دعم تتبع الأشعة علي بطاقاتها الرسومية الخاصة بجيل Turing. وكان دعم NVIDIA للتقنية عن طريق صناعة وحدات معالجة خاصة لتسريع تتبع الأشعة علي معالجاتها الرسومية، وسمتها NVIDIA باسم وحدات تتبع الأشعة Ray Tracing cores. وقد أطلقت NVIDIA لقب RTX علي عملية تسريع تتبع الأشعة.

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

صورة تجمع الانعكاسات الكاملة مع الانفجارات مع اضاءة السماء الطبيعية في لقطة واحدة، والاضاءة الكلية هي مزيج متناغم بين اضاءة كل عنصر .. والنتيجة مذهلة لأقصي حد باستخدام تتبع الأشعة في لعبة َQuake 2 العتيقة!

ولقد أعلن ما لا يقل عن 6 محركات العاب انهم سيدمجونها في العابهم في اقرب وقت .. مما يعني أن عدد الألعاب المبدئية التي ستحمل التقنية هو 11 لعبة، وهو عدد كبير لتقنية لازالت في مهدها.

والحقيقة ان NVIDIA كانت تعمل علي التقنية منذ مدة، وقد ظهرت بوادر عملها هذا في مؤثرات بصرية مثل VXGI و VXAO و HFTS والتي استعملت خوارزميات تتبع اشعة بشكل جزئي لتحقيق مؤثرات اضاءة وظلال متقدمة. وقد انتشرت مؤثرات VXAO و HFTS تحديدا في عدد من الالعاب، لكن الوسط التقني لم يكن مدركا لخلفية تلك التقنيات ولا اهميتها المستقبلية.

الان ندرك ونعرف ان NVIDIA طورتهم اثناء سعيها الحثيث لانتاج تتبع الاشعة العتادي Hardware Ray Tracing، ونشرتهم كطليعة لما سياتي لاحقا. اما وقد اتي تتبع الاشعة بالفعل، فان اهمية هذه التقنيات ستقل بشدة، لان تتبع الاشعة الحقيقي يعطي نتائج بصرية اعلي بكثير.

 

RTX

النار تنعكس بشكل تفاعلي وتتحرك علي سطح السيارة العاكس مع تقنية تتبع الأشعة (اليسار)، ولا يمكنها فعل ذلك بدونها (اليمين) لأنه انعكاس ثابت وجامد .. 

RTX on vs off

حتي علي الأجسام المنحنية، فان الانعكاسات مع RTX (الي اليمين) تظهر مجسمة .. في نقيض مع عدم ظهورها اطلاقا بدون RTX.

 

بالأعلي بدون RTX الاضاءة الشمولية لا تطبق علي الشخصية ولا علي الجليد الي جوارها ويظهر كل هذا مظلما لأنهم أجسام متحركة .. علي العكس مع RTX حيث تنير الاضاءة كل هذا بعد انعكاسها من علي الجليد ..

أما بخصوص Intel  وAMD فالشركتين في طريقهما للاعلان عن دعم التقنية علي بطاقاتهم الرسومية .. ولقد اتخذتا من الخطوات ما يضمن ذلك بالفعل.

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

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