كيف تكتب محرك رسومات ثلاثي الأبعاد يمكن استخدامه في JavaScript؟[مغلق]

StackOverflow https://stackoverflow.com/questions/1651145

  •  22-07-2019
  •  | 
  •  

سؤال

لقد ركزت مؤخرًا على رسم بعض الأشكال الرائعة في لوحة HTML 5.0.وأريد أن أكتب محرك رسومات ثلاثي الأبعاد يمكن استخدامه في JavaScript.لقد انتهيت بالفعل من مكعب دوار.وأريد إنهاء الأشكال مثل هذا المثال: http://gyu.que.jp/jscloth/touch.html.

من سبق له أن جرب في هذا المجال؟

هل كانت مفيدة؟

المحلول

تحرير: سئل هذا السؤال قبل سنوات عديدة. ومنذ ذلك الحين، كل متصفح IE باستثناء (<لأ href = "http://withinwindows.com/2013/3/30/blues-clues-how-to-enable-webgl-in-internet-explorer-11" يختلط = "نوفولو noreferrer"> في الوقت الراهن؟ ) تمت إضافة دعم لتقنية WebGL. يمكنك ان ترى العديد من العينات هنا: http://www.chromeexperiments.com/webgl/

وأنا حقا لا أريد أن يثني عليك، ولكن من أجل أن يكتب 3D المحرك في جافا سكريبت، عليك أن تكون على دراية جيدة للغاية وحميمية في الرياضيات / المنطق وراء تقديم 3D.

وبما انك لم تذكر الخبرات الحالية، أفترض أنك لا ... في هذه الحالة أقترح بشدة أن تبدأ في مكان آخر. على سبيل المثال، XNA لعبة ستوديو . يمكنك كتابة التعليمات البرمجية في C #، وهناك بالفعل الكثير من واجهات برمجة التطبيقات مكتوبة جيدا أن معظم مجردة (ولكن بالتأكيد ليس كل) من الأجزاء الصلبة. لكنه وسيلة رائعة لمعرفة الكثير من المفاهيم والرياضيات وراء تقديم 3D.

إذا ومع ذلك، كنت متصلبا على بدء مع جافا سكريبت، وهناك بالفعل الكثير من الموارد على شبكة الإنترنت حول هذا الموضوع. على سبيل المثال هذا :-) واحد
http://dev.opera.com / المواد / رأي / 3D الألعاب، مع قماش، وraycasting جزء /

وحظا سعيدا!

نصائح أخرى

وكتبت محرك جافا سكريبت 3D قبل نحو سنة، حول الوقت الذي أصدرت جوجل متصفح كروم مع محرك V8 جافا سكريبت فائق السرعة. ومما يؤسف له أنه لا متصفح يعرض واجهة برمجة تطبيقات الرسومات 3D (مثل برنامج OpenGL أو Direct3D)، هذا المحرك الإعوجاج الصور النقطية على صفحة ويب من أجل تحقيق مثلثات المعنونة الملمس أفيني (والتي هي أقل شأنا من مثلثات المعنونة الملمس المنظور الصحيح)، وهو بطيئة للغاية.

وكنت لي محرك جافا سكريبت 3D لبناء 3D مكتبة نموذجية . (تلميح: لا عرض النموذج الأول - هو أكبر وأبطأ لعرض!). الأداء هو حوالي 10 لقطة في الثانية لنموذج 3D مع حوالي 1000 مثلثات في جوجل كروم على جهاز الكمبيوتر.

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

ومشروعي الحيوانات الأليفة الحالي هو سيلفرلايت 3D المحرك ونموذج المشاهد ، وهو البرنامج محرك 3D (أي بي C # رمز له السيطرة على لون كل بكسل). سيلفرلايت 3 هو أسرع بكثير من جافا سكريبت، ولكن هو غير القياسية، ومتصفح الملحق وما زال لا يدعم 3D أجهزة الرسومات المتسارع (من دون الكثير من النفقات العامة).

وتحديث: ومنذ ذلك الوقت وأنا أصلا كتبت هذا المنصب، وتحديث نموذج المشاهد سيلفرلايت المذكورة أعلاه لاستخدام سيلفرلايت 5 والأجهزة تسارع 3D

.

وماذا عن ربط مكتبة 3D الموجودة من قبل إلى تشغيل الجافا؟ مثل برنامج OpenGL.

V8-GL يعرض 80٪ من API برنامج OpenGL إلى تشغيل الجافا:

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

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

وهذا سيضع بعض القيود على ما يمكنك القيام به إذا كنت دعم IE.

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

وبمجرد الانتهاء من ذلك، ويمكنك نقلها من مكان في الفضاء 3D، ثم كنت تريد أن تبدأ في النظر في إضافة الكاميرات، ولكن ذلك لن يكون من السهل نسبيا بالمقارنة إلى الخطوة 1.

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

وأعتقد أن أفضل رهان هو الانتظار، و، في أواخر عام 2007 كان هناك بلوق لفايرفوكس وأوبرا أن يكون الدعم 3D في قماش: <لأ href = "http://starkravingfinkle.org/blog/2007/11/ موحية، مع قماش / "يختلط =" نوفولو noreferrer "> http://starkravingfinkle.org/blog/2007/11/animating-with-canvas/

والسبب هو أنه إذا كان سيتم بناؤها في المتصفح ثم أكثر من العمل الشاق وسيتم ذلك، وإسبانيا إذا كان يدعم بعض نكهة من OpenGL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top