Raysail هو Raytracer من نوع Monte Carlo استنادًا إلى Ray Ray في سلسلة عطلة نهاية أسبوع واحدة باستخدام Rust. تم تشويهه من مشروع REMDA ، الذي ينفذ الميزات من أول كتابين من السلسلة. لقد حاولت إضافة ميزات الثالثة ، لكن لديّ شكوك في أن الكود الخاص بي صحيح بالفعل ، حتى أن الصور الناتجة تبدو على ما يرام.
علاوة على ذلك ، يشتمل Raysnail على رمز من TRACER QBVH-Rust-Ray ، أي وحدة شبكة Triangle ، وتحميل ملف OBJ ورمز مادة Blinn-Phong.
إلى جانب العمل المستمر لدمج جميع التحسينات التي تم وضعها في الكتاب الثالث من السلسلة ، والتي تم تسميتها بشكل مناسب "The Bey of Your Life" ، هناك بعض الميزات التي أريد إضافتها إلى Raysnail التالي.
هناك تطبيق خام للغاية لنافذة معاينة الآن في مثال "Fearive_SDL2" ، ولكنه يحتاج إلى أن يصبح أكثر فصلًا عن أمثلة المشهد ومعاملات سطر الأوامر لتتبع بعض المشهد مع ارتفاع وعرض معين باستخدام المعاينة.
أرغب في تنفيذ الدعم الجزئي على الأقل للغة تعريف مشهد Povray (SDL). للأسف ، تختلف تعريفات مواد Povray تمامًا عن المواد الموجودة في Raysnail ، وقد يكون من الصعب أو حتى من المستحيل محاكاة مواد Povray بشكل صحيح ، أمثلة تافهة سابقة. في وقت كتابة هذا التقرير ، قمت بتطبيق محلل SDL بدائي للغاية يمكنه قراءة تعريفات الكاميرا والكاميرا Povray (انظر SDL/Example.SDL). أرغب في توسيع هذا الأمر لمزيد من الهندسة والمواد ، ولكن من المحتمل أن تدعم مجموعة فرعية فقط من ميزات Povray SDL.
بصفتي معجبًا بالفراغالات ثلاثية الأبعاد ، أود تنفيذ بعض رمز التقديم الكسري. في الوقت الحالي ، هناك تنفس خام من Mandelbulb ، الذي يجعل الجودة منخفضة للغاية فقط ، ولكن يمكن أن يكون بمثابة دليل على مفهوم أن IUT ممكن لاستخدام رمز Raysnail لتقديم كسورات ثلاثية الأبعاد. ربما يتطلب واجهة مختلفة رغم ذلك.
يرجى التحقق من الويكي للحصول على قائمة كاملة بالميزات والخطط: https://github.com/varkalandar/raysnail/wiki
إذا كنت قد قمت بتثبيت الصدأ والبضائع ، فإن طريقة سهلة لتشغيل Raysnail هي هذا الأمر:
cargo run -r --bin raysnail -- -w 800 -h 500 --samples 65 --scene sdl/example.sdlGPLV3
يستثني:
example/earth-map.png ، تنزيل من ناسا ، يقع في المجال العام.