سؤال

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

  • يجب أن تكون قادرة على القيام Raytracing
  • يجب أن تكون لغرض مستوى عال (بيثون، .NET، إلخ). من فضلك لا c / c ++
  • يجب أن يكون لديك وثائق جيدة، ويفضل مع الأمثلة.

هل يعرف أحد بمكتبة جيدة يمكنني استخدامه للخداع؟

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

المحلول

أعتقد أن هناك عدد قليل من الناس يضعون معا تراسات الأشعة باستخدام XNA Game Studio..

مثال واحد على هذا مع رمز يمكن أن ينظر إليه على:

برامج مفصل »راي تتبع - المواد

نصائح أخرى

إلقاء نظرة على Blender.org - إنه مشروع ثلاثي الأبعاد مفتوح المصدر مع إمكانيات البرمجة النصية Python.

أول شيء يأتي إلى ذهني هو المصدر المفتوح الشهير POV RayTracer (www.povray.org). يتم تعريف مشاهد POV بالكامل مع ملفات البرنامج النصي، وجعل بعض الأشخاص رمز بيثون لتوليدهم بسهولة.

http://code.activestate.com/recipes/205451/

http://jabas-unblog.blogspot.com/2007/04/Easy-procedural-Graphics-Python-and-pov.html

أنا لست على علم بأي مكتبات تلبي طلبك (على الأقل ليس فقط ما لم أقرر نشر الكود الخاص ب Tracer الخاص بي ...).

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

في أي حال، "مكتبة" ليست كل ما تستخدمه كثيرا من تلقاء نفسه - إلى حد كبير كل راي تراكر يحتوي على مكتباتها الداخلية الخاصة بها ولكنها محددة على التتبع. تشمل عادة ما يلي:

  1. فئة قاعدة لتمثيل الكائنات ثلاثية الأبعاد
  2. الفئات الفرعية من ذلك لكل بدائية هندسية
  3. فئات ناقلات ومصفوفة (3D و 4D)
  4. وظائف الملطخة و / أو الفصول الدراسية
  5. فصول خفيفة من أنواع مختلفة (ضوء نقطة، بقعة ضوء، إلخ)

للحصول على التتبع الخاص بي أنا فعلا تستخدم javax.vecmath حزم ل # 3 أعلاه، ولكن كان عليها أن تكتب الرمز الخاص بي ل # 1 و # 2 بناء على دفتر الزجاج. كل شيء على ما يرام أقل من 2K خطوط التعليمات البرمجية، ومعظم الفصول الفردية حوالي 40 خطا طويلا.

Raytracers المطورة التي هي المصدر المفتوح

بالنسبة لليوم 3D 3D (سيكون اللغة تعتمد على اللغة بالطبع) هناك JmonkeyEngine. (Java) غير متأكد مما إذا كان ذلك يفي بمتطلبات "لغة عالية المستوى".

يمكنك التفكير في لغة البرمجة النصية ثلاثية الأبعاد أيضا، مثل gamecore. أو blitzbasic.

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