Design: قم بتمرير صفيف C ++ إلى WebGL بدون نسخ

تم إنشاؤها على ١٨ ديسمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: WebAssembly/design

يمكن تطوير لعبة ثلاثية الأبعاد باستخدام WebAssembly مع WebGL ، إذا تمكنا من تمرير مجموعة C ++ إلى واجهة برمجة تطبيقات WebGL دون نسخ المصفوفة.

نحتاج إلى تمرير بيانات المصفوفة إلى WebGLRenderingContext.bufferData () ، لكنها تقبل فقط JavaScript ArrayBuffer أو ArrayBufferView. إذا كان يقبل مصفوفة C ++ ، أو إذا كان بإمكاننا إنشاء ArrayBufferView بدون نسخ بيانات المصفوفة ، فسيتم حلها.

التعليق الأكثر فائدة

هذا بالفعل يعمل اليوم. تقبل وظائف WebGL ArrayBufferView ، ومن الممكن إنشاء مثل هذا العرض على ذاكرة WebAssembly. تقوم بشكل أساسي بإنشاء عرض مصفوفة مكتوبة على ArrayBuffer of the Memory ، ثم تقوم بعمل .subarray (على سبيل المثال ، تقوم ارتباطات Emscripten GL بهذا).

يعمل هذا إذا كانت البيانات مسطحة في الذاكرة. بالنسبة إلى مصفوفة C أو C ++ std::vector هذا هو الحال. لذا فإن إرسال مصفوفات C ++ إلى WebGL هو بالفعل طريقة عمل الأشياء اليوم ، في معظم الحالات.

هذا لا يعتمد على المرور عبر JS atm ، كما هو الحال في هذا الرابط من وقت سابق. لكن لم يتم إنشاء نسخة هناك! (سيكون تخطي JS أمرًا رائعًا أيضًا ، كمسألة منفصلة ، ونعم ، ستسمح المواصفات الجديدة ، مثل أنواع الواجهة ، كما ذكر Macil .)

ال 3 كومينتر

أعتقد أن مقترحات ربط المضيف و / أو المرجع و / أو GC ستسمح لمثيلات WebAssembly بإنشاء ArrayBufferViews مباشرةً (يمكن بعد ذلك تمريرها إلى WebGL).

هذا بالفعل يعمل اليوم. تقبل وظائف WebGL ArrayBufferView ، ومن الممكن إنشاء مثل هذا العرض على ذاكرة WebAssembly. تقوم بشكل أساسي بإنشاء عرض مصفوفة مكتوبة على ArrayBuffer of the Memory ، ثم تقوم بعمل .subarray (على سبيل المثال ، تقوم ارتباطات Emscripten GL بهذا).

يعمل هذا إذا كانت البيانات مسطحة في الذاكرة. بالنسبة إلى مصفوفة C أو C ++ std::vector هذا هو الحال. لذا فإن إرسال مصفوفات C ++ إلى WebGL هو بالفعل طريقة عمل الأشياء اليوم ، في معظم الحالات.

هذا لا يعتمد على المرور عبر JS atm ، كما هو الحال في هذا الرابط من وقت سابق. لكن لم يتم إنشاء نسخة هناك! (سيكون تخطي JS أمرًا رائعًا أيضًا ، كمسألة منفصلة ، ونعم ، ستسمح المواصفات الجديدة ، مثل أنواع الواجهة ، كما ذكر Macil .)

يبدو أنه تم الرد على هذا القلق ، لذا أغلق. يرجى إعادة فتح إذا كان خلاف ذلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

JimmyVV picture JimmyVV  ·  4تعليقات

beriberikix picture beriberikix  ·  7تعليقات

Thaina picture Thaina  ·  8تعليقات

void4 picture void4  ·  5تعليقات

ghost picture ghost  ·  7تعليقات