عملت Voxels كنظام إضاءة في عالم Roblox على مدار السنوات الأربع الماضية. لكن عاجلاً أم آجلاً يأتي وقت التغيير في كل شيء. لهذا السبب تساءل المطورون عما يجب عليهم فعله بعد ذلك.
الإضاءة صعبة ، لذلك هناك العديد من العوامل التي يجب توخي الحذر بشأنها عند اختيار التقنيات الجديدة. لتسهيل اتخاذ القرار ، صمم Roblox نموذجين لنظامين مستقبليين: ما يسمى voxels وخرائط الظل. لفهم قيود كليهما ، من المهم أولاً فهم كيفية عملهما.
ملاحظة: تم ترتيب لقطات الشاشة في المقالة بحيث تظهر وحدات البكسل دائمًا على اليسار ، وخرائط الظل على اليمين.
التنفيذ: voxels
على الرغم من أن هذا النظام المعين قد نجح في اللعبة لفترة طويلة ، فقد خضع الخيار المدروس هنا للعديد من التحسينات.
يتم تحويل بيانات العالم إلى مجموعة من شبكات فوكسل: تتمحور كل شبكة حول الشخصية ويمكن أن تكون أحجام فوكسل من 1 إلى 16 (إجمالي 5 شبكات). يحتوي كل فوكسل على معلومات إشغال تتراوح من 0 إلى 100٪. ثم يتم حساب بيانات الإضاءة لكل فوكسل في كل شبكة بناءً على معلومات الامتلاء ومصدر الضوء / الاتجاه. كل ما سبق يحدث على وحدة معالجة الرسومات (GPU) حيث أن الجهاز المركزي ليس بالسرعة الكافية لتحديث الكثير من وحدات البكسل بهذه الكثافة العالية.
يخزن النظام جميع البيانات في voxels ، على وجه الخصوص - لكل voxel متاح بيانات حول:
- الامتلاء (قيم متعددة تصف مدى امتلاء كل فوكسل) ؛
- كوة (مقدار السماء المرئية من فوكسل) ؛
- ظل الشمس (مقدار الشمس التي تحجبها فوكسل) ؛
- وجوه الضوء / الألوان المخروطية (تقريب اللون / المخروط لتأثير مصادر الضوء المحلية على فوكسل).
تُستخدم هذه المعلومات لاحقًا لحساب لون كل بكسل بدقة معينة. يمكن ضبط دقة الشاشة وفوكسل بشكل مستقل عن بعضها البعض. يمكن تحديث أجزاء من شبكة فوكسل إطارًا بإطار أثناء تحرك الأضواء / الكائنات.
التنفيذ: خرائط الظل
تستخدم هذه الطريقة التنقيط لحساب معظم تأثيرات الظل. يتم تنفيذه على ثلاث مراحل. أولاً ، بالنسبة لكل طبقة ظل ، نقوم بتحديث خريطة الظل ، وإطلاق عدة طبقات من الأشعة من مصدر الضوء إلى المشهد وتذكر نتائج التقاطع. نقوم بعد ذلك ببناء هيكل تسريع مكاني نقوم فيه بتضمين كل كائن ضوئي مرئي ، وهو أساسًا شبكة فوكسل مخروطية مقطوعة (تُعرف أيضًا باسم شبكة فروكسيل).
تغطي الشبكة الجزء الكامل من عالم اللعبة كما تراه الكاميرا. في كل froxel ، نكتب قائمة بجميع الأجسام الخفيفة التي تتقاطع معها. أخيرًا ، من أجل حساب تأثير جميع مصادر الضوء ، عند تقديم المشهد ، نبحث لكل بكسل عن froxel يحتوي على هذا البكسل ، ونكرره على جميع مصادر الضوء ، ولكل ضوء نحسب تأثيره بشكل منفصل باستخدام خرائط الظل التي تم إنشاؤها في المرحلة الأولى.
يقوم النظام بتخزين البيانات في هيكلين:
- أطالس الظل (جميع خرائط الظل المرئية معبأة في نسيج واحد كبير) ؛
- شبكة ضوئية (شبكة فروكسيل تعمل بشكل فعال على تحويل نقطة في الكاميرا إلى قائمة أضواء).
يتم حساب لون كل بكسل ديناميكيًا ولا يتم تخزينه بشكل واضح. يمكن تحديث أجزاء من أطلس الظل إطارًا بإطار أثناء تحرك الأضواء / الكائنات.
الأداء: voxels
تتناسب تقنية voxel بشكل أفضل مع القياس: لتقليل جودة الإخراج ، يمكننا تقليل عدد شبكات فوكسل أو تحديث عدد أقل من وحدات البكسل لكل إطار (مما يؤدي إلى "تأخير الضوء" - تحديث أبطأ للتعرض للضوء للأشياء مقارنة بتحديث الكائنات نفسها)
تتميز Voxels بثلاث خصائص تعقيد: التعقيد الهندسي ، وتعقيد الضوء ، وعدد البكسل. يؤثر التعقيد الهندسي فقط على تكلفة التحويل الصوتي ، لذا فإن إضافة المزيد من العناصر لن يؤدي إلى حدوث تأخير. يؤثر تعقيد الضوء فقط على تكلفة حسابه ، والتي لا تعتمد على التعقيد الهندسي أو عدد وحدات البكسل. أخيرًا ، يتم حساب لون البكسل النهائي من عدد وحدات البكسل / الأضواء / الكائنات ، حتى نتمكن من قياس الدقة دون التأثير على جودة الإضاءة.
يُحسب أداء فوكسل على أنه O (G) + O (L) + O (P) ، حيث G هو عدد المثلثات (التعقيد الهندسي) ، L هو عدد الأضواء ، P هو عدد البكسل.
لسوء الحظ ، فإن ذروة أداء فوكسل ليست مثالية لأن عدد مقاييس فوكسل مثل N3 ووحدات معالجة الرسومات ليست مثالية لطرق التحديث المطلوبة ولا يمكنها الحفاظ على إدارة أداء جيدة. مع إجراء بحث كافٍ حول حوسبة GPU ، يمكن تعويض خسارة الأداء ، لكن التكلفة الأساسية يمكن أن تظل مرتفعة جدًا في الوقت الحالي.
الأداء: بطاقات الظل
تعد بطاقات الظل أكثر ملاءمة لوحدة معالجة الرسومات لأنها مصممة بناءً على التنقيط. يمكن تقليل تكلفة تحديث أطلس الظل جزئيًا عن طريق التخزين المؤقت / تأخير التحديثات (مما يؤدي منطقيًا إلى زمن انتقال إضافي). يؤدي تحسين التمثيل الهندسي (بما في ذلك مستوى شبكة التفاصيل) أيضًا إلى تقليل تكلفة الطريقة.
ومع ذلك ، فإن تحديث الظلال في المشاهد المعقدة لا يزال مكلفًا ، حيث تعتمد التكلفة على كل من مقدار التفاصيل الهندسية وعدد الأضواء التي تلقي بالظلال. داخل المبنى ، في حالة وجود ضوء متحرك ، يحتاج المبنى بأكمله إلى إعادة عرض كل إطار لتحديث معلومات الظل لذلك الضوء. يؤدي الكثير من المصبوبات الضوئية المتحركة في المبنى إلى انخفاض في الأداء: لا يمكننا تحديث جميع الأضواء الموجودة في الإطار مرة واحدة ، مما يؤدي إلى حدوث آثار بصرية.
بالإضافة إلى ذلك ، لا تسمح هذه الطريقة بفصل معلمة الدقة عن كمية الضوء: لكل بكسل ، يتعين علينا إعادة حساب تأثير جميع مصادر الضوء التي تغطيها. لا يمكن تخزين هذه الخطوة مؤقتًا أيضًا ، مما يؤدي إلى مشكلات في الأداء بدقة عالية في المشاهد عالية الإضاءة: 20 مصباحًا متداخلًا في غرفة 4K قد تتطلب 160 مليون تقدير ضوئي.
يتم حساب أداء Shadowmap كـ O (GL) + O (LP) ، حيث G هو عدد المثلثات (التعقيد الهندسي) ، L هو عدد الأضواء ، P هو عدد البكسل.
تقييم الأداء
لمزيد من الوضوح ، تم استخدام كلتا الطريقتين لمستويات لعبة مختارة خصيصًا. لاحظ أن هذه تطبيقات مستوى موجودة مسبقًا وليست مصممة خصيصًا لتقييم الأداء.
باريس (ظلال الشمس ، مصادر ضوء قليلة جدًا غير مظللة)
- Voxels: تحديث الظل - 6 مللي ثانية ، عرض المشهد - 1.5 مللي ثانية ؛
- خرائط الظل: تحديث الظل - 1 مللي ثانية ، عرض المشهد - 2.4 مللي ثانية ؛
- تكلفة حساب ظل فوكسل الأساسي أعلى لأنه يصعب على وحدة معالجة الرسوميات معالجتها.
الكهوف (مصادر عديدة تلقي بظلالها)
- Voxels: تحديث الظل - 7 مللي ثانية ، عرض المشهد - 0.9 مللي ثانية ؛
- خرائط الظل: تحديث الظل - 10 مللي ثانية ، عرض المشهد - 2.1 مللي ثانية ؛
- نظرًا للكم الكبير من الأشكال الهندسية والأضواء المتحركة ، فإن تحديث خرائط الظل يعد مكلفًا.
الغربية (العديد من مصادر الظل)
- Voxels: تحديث الظل - 8 مللي ثانية ، عرض المشهد - 1 مللي ثانية ؛
- خرائط الظل: تحديث الظل - 15 مللي ثانية ، عرض المشهد - 2.5 مللي ثانية ؛
- مع الأضواء المتحركة والكثير من المثلثات ، يعد تحديث خريطة الظل أمرًا مكلفًا.
1000 مصدر ضوء بدون ظل
- Voxels: تحديث خفيف - 20 مللي ثانية ، عرض مشهد - 0.5 مللي ثانية ؛
- خرائط الظل: تحديث الضوء - 0.5 مللي ثانية ، عرض المشهد - 5 مللي ثانية ؛
- المقدار التراكمي للضوء وتداخل فوكسل في هذه الحالة يؤدي إلى إبطاء تحديث فوكسل. بالإضافة إلى ذلك ، يمكنك أن ترى أنه في المرحلة القريبة ، لم يتم إجراء التقريب لـ "ضوء واحد في كل فوكسل".
الأداء: الخاتمة
تتناسب خرائط الظل جيدًا مع أحمال العمل ، ولكن هناك شيئان يجب مراعاتهما:
- ترتفع تكلفة كل بكسل مع زيادة الدقة ، مما يجعل هذا الحل عمليًا فقط بدقة متوسطة (1080 بكسل) ؛ يتطلب تجاوز 1080 بكسل وحدة معالجة رسومات جيدة جدًا.
- تنمو تكلفة تجسيد الظلال بسرعة كبيرة في حالة الهندسة المعقدة مع العديد من الأضواء الديناميكية. يمكن التعويض عن هذا من خلال الاعدام الأفضل ، ولكن في هذه المرحلة يظل مشكلة أساسية.
في الوقت نفسه ، على العكس من ذلك ، فإن أداء فوكسل أقل اعتمادًا على محتوى المستوى ، ولكن له تكلفة أساسية أعلى بكثير. يمكن تعويض ذلك من خلال خوارزميات GPU المحسنة وتقليل وحدات البكسل.
متطلبات الذاكرة
تعتمد متطلبات الذاكرة لخرائط الظل ووحدات البكسل على الجودة المطلوبة.
في حالة الفوكسل ، يتم تخزين العديد من القوام في الذاكرة لكل مرحلة ، لذلك يعتمد حجمها الإجمالي على عدد المراحل وحجم كل منها. حاليًا ، يتم استخدام 4 مراحل (بأحجام voxel 1..8) مع 128x64x128 voxels ، والتي تضيف ما يصل إلى 128 ميغابايت من VRAM المستخدمة. سيكون من الممكن إنشاء مرحلتين أخريين (0.5 فوكسل و 16 فوكسل) أو إعادة تكوين المراحل الموجودة ، مما سيزيد هذه القيمة إلى 192 ميجا بايت. على العكس من ذلك ، يمكن تقليل عدد السلاسل (إزالة بعض التسلسلات القريبة) في الأنظمة ذات الذاكرة المحدودة ، ومن ثم يمكن أن يكون الحد الأدنى لتأثير الذاكرة حوالي 64 ميجابايت مع شلالتين (4..8) وحوالي 96 ميجابايت بثلاثة (4 .. السادس عشر).
في حالة خرائط الظل ، يتم استخدام أطلس خريطة الظل وشبكة froxel. هذا الأخير يعتمد جزئيا على القرار. يمكن تقليل حجم أطلس الظل ، بدوره ، إذا كانت جودة الظلال بحاجة إلى تقليل لتحسين الأداء / الذاكرة. يستخدم النظام الحالي 73 ميجا بايت من ذاكرة الفيديو ، معظمها (64 ميجا بايت) يشغلها أطلس الظل. يمكنك تقليله وبالتالي الحد من عدد الأضواء المظلمة أو جودة الظلال. يمكنك أيضًا التفكير في بعض خيارات خرائط الظل التي تتطلب ذاكرة أكبر لدعم الشفافية ، مما يعني أنها ستشغل مساحة أكبر (تصل إلى 130 ميجابايت أو أكثر). من المحتمل أن يتحقق الحد الأدنى من التأثير على ذاكرة النظام من خلال تقليل حجم أطلس الظل واستخدام نسخته الأبسط ، والتي ستستغرق حوالي 25 ميجا بايت.
بالمقارنة ، فإن نظام الإضاءة الحالي له وضعان: عالي (كمبيوتر شخصي) وجودة منخفضة (محمول). يأخذ إصدار الكمبيوتر الشخصي حوالي 40 ميجابايت (24 ميجابايت رام ، 16 ميجابايت VRAM) ؛ الهاتف المحمول - ~ 11 ميجا بايت (6 ميجا بايت رام ، 5 ميجا بايت VRAM).
في الواقع ، كلتا الطريقتين متقاربتان إلى حد ما من حيث تأثير الذاكرة ، لكن خرائط الظل أكثر قابلية للتوسع إلى حد ما لنفس نطاق الضوء / الظل.
التوافق مع الأجهزة المحمولة
أصبح جمهور اللعبة متنقلًا أكثر فأكثر ، مما يعني أنه عند مقارنة التطبيقات المحددة ، يجب أيضًا مراعاة أجهزة الألعاب المختلفة. في الأجهزة المتطورة ، يجب أن تكون هناك إمكانات كافية لواجهة برمجة التطبيقات لتنفيذ كلتا الطريقتين ، ولكن بالطبع قد لا تكونا عملية من حيث الذاكرة والأداء.
يعد نظام إضاءة voxel الحالي رائعًا للأجهزة المحمولة: فهو يدعم العديد من وظائف الإضاءة المعقدة (ظلال الضوء ، كوة ، وما إلى ذلك) وينفذ معظم الحسابات المعقدة على وحدة المعالجة المركزية ، وبالتالي يوفر الحد الأدنى من المتطلبات لأداء GPU ومجموعة الميزات ... نظرًا لأن هذا النظام سيظل بحاجة إلى الدعم للأجهزة المحمولة وأجهزة الكمبيوتر الشخصية منخفضة التكلفة في المستقبل المنظور ، فقد ظهرت عدة خيارات لدعم مجموعة كبيرة من الأجهزة:
- احفظ النظام الحالي في نموذج محمول ، سيكون النظام الجديد فقط جهاز كمبيوتر / وحدة تحكم. هذا يعني أن شريحة كبيرة من قاعدة المستخدمين لن تتمكن من الوصول إلى النظام الجديد.
- ( , ), /.
- low-end , , .
في كل هذه الحالات ، من الضروري الإجابة على السؤال حول توافق المحتوى ، لأن أحد الوعود الرئيسية للمنصة هو "تنزيل المحتوى مرة واحدة وتشغيله في أي مكان". ما زلنا بحاجة إلى العمل على هذا. في البداية ، يبدو أن حل voxel الجديد أفضل بمعنى أنه يوفر تناسقًا في الجودة / السلوك من النظام القديم إلى النظام الجديد ، بينما تمثل خرائط الظل انتقالًا مفاجئًا إلى جودة أخرى ، ولكن في الوقت نفسه من المرجح أن تتوافق مع الإمكانات المحدودة على الأجهزة المحمولة.
الجودة: مصادر الضوء
يوفر حل خريطة الظل معلومات موثوقة فيما يتعلق بمحاكاة مصادر الضوء: في لقطة الشاشة أدناه مع 1000 مصباح في حالة خرائط الظل ، يمكنك رؤية إبرازات مستنسخة تمامًا - على غرار BRDF ، والتي تمنحنا انعكاسات الضوء التي نريدها.
يعتبر محلول فوكسل أسوأ أساسًا لأنه يقارب تأثير الضوء على كل فوكسل كما لو كان قادمًا من مصدر واحد فقط. من هذا يمكنك أن ترى أن جودة الانعكاس المرآوي تتدهور:
لذلك ، في حالة وحدات البكسل في المنطقة ذات الإبرازات المرآوية ، تندمج الألوان بنسبة 1: 1 ، مما ينتج عنه ضوء أصفر بدلاً من الأخضر والأحمر ، على الرغم من عدم وجود أضواء صفراء في المشهد. في المقابل ، يحاكي حل خريطة الظل مجموعة الألوان بدقة.
في بعض الحالات ، نحصل على نتائج غير حاسمة للغاية ، على الرغم من أنه يمكن تحسينها في المستقبل:
في المثال أعلاه ، يمكنك رؤية إبرازات مرآة منحنية وطويلة ومشوهة ، وفي عدد قليل من وحدات البكسل أسفل أحد الكائنات لا توجد معلومات ضوئية على الإطلاق. تعطي لقطة الشاشة نفسها لخرائط الظل نتيجة أفضل بكثير.
الجودة: الظل
الجودة المحددة لخرائط الظل هي الدقة ، في حين أن ظلال فوكسل ناعمة. توفر خرائط الظل ظلالًا واضحة إلى حد ما مع أقل قدر ممكن من التفاصيل ، ولكنها دقيقة بما يكفي لإنشاء ظل مقنع للشخصية. من ناحية أخرى ، تعد خوارزمية فوكسل جيدة جدًا لإنشاء ظلال ناعمة حقًا ، ومع ذلك ، فإن الظلال من التفاصيل الصغيرة إما لم يتم تسجيلها على الإطلاق أو لها شكل غير منتظم.
لهذا السبب ، يتم استخدام متغير من خريطة الظل حاليًا لتجسيد ظلال الشخصيات - ومع ذلك ، فهي أكثر من مجرد عكاز ، يتم تطبيقها فقط على ظلال الشخصيات التي ترسم الشمس. لا تؤخذ مصادر الضوء الأخرى بعين الاعتبار.
أيضًا ، تتمثل إحدى التقنيات الرئيسية لتسريع وحدات البكسل في استخدام التعاقب. ومع ذلك ، فإن هذا يعني أن بيانات الامتلاء تصبح أكثر خشونة حيث أن المسافة من النقطة في المشهد تهمنا. في هذه الحالة ، تتدهور جودة الظل أيضًا مع زيادة المسافة بين المصدر ومستقبل الظل:
في لقطة الشاشة أعلاه ، سيكون حجم أصغر فوكسل كافيًا لتقديم ظل عالي الجودة من الجسر ، لكن الجسر بعيد جدًا عن سطح الماء ، لذلك تتحول وحدات البكسل الخاصة به إلى خشونة للغاية حتى عندما شريطة أن تكون وحدات البكسل القريبة من سطح الماء جيدة جدًا.
الجودة: كوة
من الوظائف المهمة في خط أنابيب فوكسل حساب معامل الكوة ، والذي يحدد مقدار السماء المرئية من فوكسل الحالي. يتم استخدامه لخلط الإضاءة الداخلية والخارجية وهو فعال للغاية في تحسين جودته. في لقطة الشاشة أدناه ، يجب أن يكون الجزء الخارجي من المنزل أكثر إشراقًا من الداخل ، حتى في المناطق المظللة. يحسب محلول voxel هذا المعامل ويعيد إنتاجه جيدًا ، ولكن في حالة خريطة الظل ، فهو غائب ، وبالتالي لا توجد إمكانية لجعل الظلال باهتة.
الجودة: دقة هندسية
تجدر الإشارة إلى الاختلافات الأساسية في التمثيل الهندسي بين فوكسل وخرائط الظل.
تفترض Voxels أن جميع الكائنات التي يدعمها محرك الضوء يمكن أن تكون "voxelized" - أي لكل فوكسل في عالم اللعبة ، هناك طريقة سريعة لحساب مقدار التقاطع بين الكائن وفوكسل. يعمل هذا بشكل جيد مع الأشكال البدائية ، لكن الكائنات المعقدة مثل CSGs و MeshParts تمثل بالفعل مشكلة خطيرة. الآن ، يساعد التحلل الخام ومجموعة من الاختراقات الأخرى للتعبير الفعال جزئيًا في هذا ، لكن هذا غالبًا ما يؤدي إلى القطع الأثرية المرئية. في الوقت نفسه ، تستخدم خرائط الظل نفس التمثيل متعدد الأضلاع المتضمن في العرض ، بحيث يمكنها تمثيل أشكال جميع الكائنات بشكل مثالي:
الجودة: تسريبات ضوئية
في حين أن شكل الظل مهم للغاية ، ربما يكون من المهم للغاية التعامل مع وحدات البكسل غير المرئية بشكل صحيح. عندما تخالف تقديرات تقريبية مختلفة هذا ، هناك ما يسمى بتسريبات الضوء - خطوط مرئية ، تسبب معظم المشاكل في البيئات عالية التباين - على سبيل المثال ، داخل مبنى به شمس خارجية ساطعة. فيما يلي مثال على تسرب الضوء:
هذا جزء رفيع ومضيء من الأرضية مباشرة مقابل الحائط. تحافظ خرائط الظل على انسداد الضوء بشكل أفضل وتحارب هذه المشكلة.
هناك عدة مصادر لتسريبات وحدات البكسل. يمكن التخفيف من بعضها مع الحفاظ على الامتلاء متباين الخواص: على سبيل المثال ، تخزن الذاكرة الآن 3 قيم لكل فوكسل ، مما يشير إلى "مقدار المادة في إسقاط فوكسل على طول المحور" لجميع المحاور الثلاثة. لسوء الحظ ، في حين أن هذا يساعد التفاصيل الدقيقة في إلقاء الظلال بغض النظر عن سمكها ، إلا أنه لن يصلح جميع التسريبات. الطريقة الوحيدة لضمان الحجب الكامل للضوء في هذا الجانب هي جعل الجزء ضعف سمك الفوكسل. بالإضافة إلى ذلك ، يزداد التسرب مع حجم فوكسل ، مما يعني أنه يصبح أكثر وضوحًا عند مستويات الجودة المنخفضة و / أو بعيدًا.
خرائط الظل ليست محكمة الغلق تمامًا ، لكن التسريبات فيها مشكلة أقل بكثير - على سبيل المثال ، في هذا التطبيق ، لن ينقل كائن بسمك 0.4 فوكسل الضوء المرئي (بسماكة 0.2 فوكسل ، يمكنه نقل جزء من الضوء ، ولكن أيضًا من هذا يمكنك التخلص منها في المستقبل).
الجودة: الخاتمة
بطاقات الظل ممتازة في معظم جوانب الجودة. المنطقة الوحيدة التي تتدلى بشكل كبير هي حساب نسبة الكوة. قد يتطلب ذلك طريقة هجينة تستخدم نظام voxelization للنافذة العلوية ، والتي تقدم بعض العوائق لخط أنابيب فوكسل - أو ربما توجد حلول بديلة لهذه المشكلة. سيكون من الجيد أيضًا أن تكون قادرًا على دعم الظلال الناعمة ، والتي يمكن إجراؤها ببعض الامتدادات لخوارزمية خريطة الظل.
توفر Voxels جودة مقبولة ، ولكن بالمقارنة مع خرائط الظل ، فإنها تفقد الكثير ، خاصة في دقة الظلال والإبرازات المرئية. سيتعين علينا حل هذه المشكلات بطريقة ما حتى نتمكن من تنفيذ إضاءة فوكسل التي يمكن أن توفر ظلالًا جميلة من اللاعب ، لأن استخدام الحل الحالي يعطي فقط تلك من الشمس ، وهو ما يبدو غير متوافق مع الرؤية المستقبلية للعالم في اللعبة.
الرؤية: الشفافية
تجسيد الظلال هي مسألة مدروسة جيدًا للأشياء المعتمة ، لكن الشفافية هي مسألة أخرى تمامًا. نظرًا لأنه في حالة نظام فوكسل ، ينتقل الضوء عبر خلايا فوكسل بناءً على قيمة الامتلاء ، فليس من الصعب جدًا الحفاظ على الظلال شبه الشفافة التي يمكن أن تعطيها الظلال منخفضة التردد (الناعمة) من تأثيرات الجسيمات والأشياء شبه الشفافة الأخرى في المشهد ، بما في ذلك التظليل الذاتي لـ تأثيرات الجسيمات نفسها: يوجد
أدناه مقطع فيديو لهذا التأثير أثناء الحركة:
لا يوجد حاليًا دعم للشفافية لخرائط الظل. هذا يعني أننا إذا أردنا دعم الجزيئات أو الأشياء الشفافة الأخرى التي تلقي بظلالها ، فيجب إيجاد حل آخر. هناك بعض الأبحاث حول تمثيلات خرائط الظل البديلة التي قد تخدم حالة الاستخدام هذه ، ولكن يبقى أن نرى مدى فعالية ذلك.
الرؤية: الغطاء النباتي
على الرغم من أن خرائط الظل لا تقوم بعمل جيد بشكل خاص مع الشفافية ، إلا أنها يمكن أن تعرض تفاصيل دقيقة عن الكائنات (مثل الغطاء النباتي) ، بغض النظر عما إذا كانت مصممة باستخدام الهندسة أو الأنسجة. وحدات البكسل ليست صغيرة بما يكفي لخدمة حالة الاستخدام هذه. بالإضافة إلى ذلك ، في هذه الحالة ، ليس من السهل الوصول إلى معلومات حول النسيج ، لأنه يتطلب نمذجة دقيقة لسطح الشبكة ، وليس الحجم. من المشكوك فيه أنه سيكون من الممكن الحصول على ظلال جميلة من الغطاء النباتي باستخدام وحدات البكسل ، في حين أن خرائط الظل يمكن أن توفر هذا حتى مع المحتوى الموجود ، كما هو موضح في لقطة الشاشة هذه:
الرؤية: الإضاءة الذاتية
نظرًا للطريقة التي يتم بها تنفيذ voxels ، فمن السهل نسبيًا حقن الأضواء ذات الشكل والكمية التعسفية في الشبكة دون التأثير على أداء الأجزاء الأخرى من خط الأنابيب. ومع ذلك ، أثناء إضافة العديد من الأضواء إلى خرائط الظل ، فإن إنشاء أضواء ذات أشكال غير منتظمة به بعض المشكلات المعمارية والأداء. على وجه الخصوص ، من الأسهل بكثير تحقيق الإنارة الذاتية الحقيقية باستخدام وحدات البكسل: تُستخدم مادة النيون حاليًا "لإصدار الضوء" ، ولكنها في الواقع لا تبعث الضوء إلى الأشياء الأخرى القريبة.
نعم ، يمكنك إضافة المزيد من الأضواء ، ولكن سيكون من الجيد القيام بكل ذلك تلقائيًا. خرائط الظل ليست مفيدة جدًا لهذا الغرض ، ولكن voxels تدعم voxelization من أي شكل بحكم الضرورة ، وبالتالي فهي بسيطة للغاية لدعم انبعاث الضوء من الكائنات ذاتية الإضاءة.
الرؤية: إضاءة عالمية
تشير الإضاءة العامة (GI) إلى حساب تأثيرات الإضاءة الثانوية ، مثل الضوء الصادر من مصباح يرتد مرتين عن الجدران لتوفير إضاءة إضافية في المناطق التي لا يمكن لأشعة الضوء المباشر الوصول إليها.
GI في Roblox معقد للغاية ، ومعظم القرارات المتعلقة به يجب أن تضحي بشيء ما من الإضاءة الديناميكية والهندسة الديناميكية والأداء والمشاهد واسعة النطاق. ولا تجوز أي من هذه الأضاحي.
من غير الواضح أي حلول GI ستكون عملية نظرًا لقيود المحتوى الصارمة. حتى الآن ، يبدو أن المؤشر الجلايسيمي المستند إلى فوكسل واعد أكثر من الأساليب الأخرى.
بالطبع ، لا يعني وجود مؤشر جغرافي قائم على فوكسل أن الإضاءة المباشرة يتم حسابها باستخدامها: تتضمن معظم أبحاث GI القائمة على فوكسل اليوم استخدام خرائط الظل لحساب الضوء المباشر وتحسين النتائج باستخدام وحدات البكسل.
ملخص
بناءً على التحليل أعلاه ، سنقوم بتجميع جدول ملخص حول فعالية كلا الحلين. تشير الخلايا المكتوبة بخط مائل إلى أن المزيد من البحث يمكن أن يحسن هذا المجال. التقدير في الجدول كالتالي: سيئ <ضعيف <عادي <جيد <ممتاز.
لذا فإن voxels رائعة لنمذجة الإضاءة غير المباشرة ، ولكنها ليست رائعة عندما يتعلق الأمر بالإضاءة المباشرة. في الوقت نفسه ، فهي كثيفة الاستخدام للموارد ، مما يرتبط ارتباطًا ضعيفًا بمهمة الحفاظ على مجموعة واسعة من الأجهزة.
أدى ذلك إلى قرار إنشاء نظام خريطة الظل للإضاءة المباشرة. لم يتم العثور على حل لمشكلة الكوة والإضاءة العالمية حتى الآن بشكل لا لبس فيه ، ولكن ، على الأرجح ، سيتحول إلى نوع من الهجين لكلا النظامين.