جهاز ZX Spectrum Raytracer، باللغة الأساسية

جهاز ZX Spectrum Raytracer، باللغة الأساسية

عقدة المصدر: 3085593

يعرف [غابرييل غامبيتا] بعض الأشياء عن أدوات تتبع الأشعة، كونه مؤلف Tiny Raytracer، وهو عبارة عن أداة تتبع أشعة مكتوبة بـ 912 بايت فقط من JavaScript. كفترة طويلة زميل الذي يعاني من ZX Spectrum المصمم في المملكة المتحدة، هل يمكن دمج علاقتي الحب هذين؟ هل يمكن أن يتناسب جهاز Tiny Raytracer مع ZX Spectrum؟ في الأساسية؟ الجواب هو بالإيجاب، وإن كان ذلك مع القيود العديدة التي تفرضها مواصفاتنا الحبيبة.

<img decoding="async" data-attachment-id="661085" data-permalink="https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/screenshot-from-2024-01-25-21-02-18/" data-orig-file="https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic-1.png" data-orig-size="940,648" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Screenshot from 2024-01-25 21-02-18" data-image-description="

https://gabrielgambetta.com/zx-raytracer.html

” data-image-caption data-medium-file =”https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic.png” data-large-file =”https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic-1.png?w=800″ class=”wp-image-661085 size- متوسط” src =”https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic.png” alt width=”400″ height=”276″ srcset= "https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic-1.png 940w، https://platoaistream.com/wp-content/uploads/ 2024/01/a-zx-spectrum-raytracer-in-basic-1.png?resize=250,172 250 واط، https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer -in-basic-1.png?resize=400,276 400 واط، https://platoaistream.com/wp-content/uploads/2024/01/a-zx-spectrum-raytracer-in-basic-1.png?resize= 800,551 800 واط” الأحجام =”(أقصى عرض: 400 بكسل) 100 فولت واط، 400 بكسل”>

تتبع الأشعة بـ 15 لونًا أساسيًا فقط

تبدأ القصة بـ [جبرائيل]. خوارزميات raytracer لرسومات الكمبيوتر من الصفر (CGFS). وقاعدة تعليمات برمجية موجودة تم نقلها إلى لهجة BASIC المحدودة جدًا لـ ZX Spectrum، باستخدام VSCode للتحرير، BAS2TAP لإنشاء ملف صورة شريط (مسار صوتي بشكل أساسي) ويتم تنفيذه باستخدام FUSE. من خلال فرز سلسلة الأدوات، يضيف [Gabriel] تعليمات برمجية كافية للتعامل مع معادلات تقاطع الشعاع للكرة، ويعرض مشهدًا ثلاثي الكرات إلى صورة ملونة بحجم 32 × 22 بكسل، ويستغرق 15 دقيقة فقط من وقت التشغيل. سوف يتذكر زملائك الذين يعانون من أن الطيف كان يحتوي على مصفوفة سمات كتلة 32 × 22 (أو مصفوفة ألوان) مع قيمتي لون لوحدات البكسل الأمامية والخلفية. تحتوي كل كتلة سمة على 8 × 8 بكسل، يمكن أن تكون كل منها في المقدمة (تشغيل) أو خلفية (إيقاف). وكانت المرحلة التالية بعد ذلك هي توسيع التعليمات البرمجية للتعامل مع وحدات البكسل وكذلك الكتل، وذلك ببساطة عن طريق توسيع تتبع الشعاع إلى 256 كاملًا دقة ×176، ولكل كتلة، قم ببساطة بتحديد اللونين الأكثر شيوعًا، وقم بتشغيلهما مع الكتلة بأكملها. إنه يعمل نوعًا ما، بأسلوب "صراع السمات" المتنوع للغاية.

ولكن الآن أصبح وقت التشغيل 17 ساعة! بعد ذلك، نقطة من التغيير والتبديل في الأداء، باستخدام عدد لا بأس به من الاختراقات الأساسية للطيف، وبعض التقديرات الرسومية مثل صب الأشعة لكل بكسل زاوية من الكتلة، وإذا كانت متطابقة، قم بتلوين جميع البكسلات الـ 60 المتبقية بنفس الطريقة والمضي قدمًا . أدى هذا الجهد إلى تقليل وقت التشغيل إلى ساعتين.

بعد ذلك، يتخلى [غابرييل] بشجاعة عن نموذج الإضاءة المسطحة، ويصمم مصدرًا واحدًا للضوء ويسحب الخدعة الوحيدة المتبقية في عالم الطيف أحادي اللون، وهي قيم شدة الثبات لكل كتلة، باستخدام طريقة بسيطة 8 × 8 نمط ثبات مرتب، هذا لا يبدو سيئًا للغاية، مع أخذ كل الأمور في الاعتبار. توقف سريع في الطريق إلى الانتهاء، ل إضافة الظلال وعاد وقت التشغيل إلى 17 ساعة، لكن الأمر يستحق ذلك. من الواضح أن هذا تم تحسينه لنوع مشهد واحد، حيث تظهر المجالات في الغالب، ولكن المبادئ موجودة، والمكعبات على بعد بضعة أسطر أخرى من التعليمات البرمجية. أي من الأشخاص يود ذلك؟

تعد Raytracing واحدة من تلك المهام الممتعة، ولكنها معقدة، والتي يحب الناس دمجها في أجهزة غير مناسبة، مثل هذه الآلة الحاسبة الرسومية TI-84Plus CE، وإذا كان الوصول إلى ذلك صعبًا بعض الشيء، فإليك شيئًا مجنونًا بنفس القدر يعمل في Excel القديم عادي.

الطابع الزمني:

اكثر من هاك يوم