أوصى جوانب البرمجة ثلاثية الأبعاد للضوء / الليزر عرض محاكي؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

يا شباب، أود تطوير محرر إضافي / ليزر محاكي ومحاكاة، ولهذا بالطبع سأتعلم بعض برامج الرسومات. أنا أفكر في استخدام C # وشنا.

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

على سبيل المثال، ما هي وسيلة عملية للذهاب إلى تقديم "ليزر" عرض / لون متنوع؟ قرأت في مكان ما فقط لرسم اسطوانة وتطبيق شادته، أود أن أؤكد أن هذه هي الطريقة.

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

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

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

المحلول

يعتمد الإجابة على هذا على مستوى التطور الذي تحتاجه في محاكاة العرض الخاصة بك. رسومات الكمبيوتر هي في نهاية المطاف محاكاة نقل الضوء؛ يمكن أن تكون هذه المحاكاة متطورة لأن حساب جزء من ضوء الليزر المنحرف من قبل الجزيئات في الغلاف الجوي للعين المشاهد، أو بسيطة مثل رسم خط. جرب تأثير الاسطوانة ومعرفة ما إذا كان يعمل في مشروعك. إذا كنت بحاجة إلى شيء أكثر تطورا، فابحث في برمجة التظليل (باستخدام NVIDIA CG، على سبيل المثال)، والتظليل الحجمي كما ذكرت؛ أيضا تأثيرات الوهج بعد المعالجة قد تكون مفيدة. بالنسبة إلى OpenGL، أعتقد أن هناك حد من 8؟ مصادر الضوء في مشهد، لكن هل يمكن أن تعمل من تصور حول هذا الحد عن طريق القيام بمنطق التظليل الخاص بك.

نصائح أخرى

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

على الرغم من أنها أسرع، أعتقد أن أفضل حالاتها لعدم استخدام إضاءة الأجهزة الفانيليا بسبب قيودها. يمكن أن يساعدك تظليل البكسل في مهمة. كما قد ترغب في اختيار OpenGL بسبب قابلية النقل ووضوحها في أساليب التقديم. عملت على Direct3D منذ عدة سنوات قبل التبديل إلى OpenGL. أسهل وظائف OpenGL والدول أسهل في التعلم وتقديم الطرق (مثل التقديم متعدد الأبعاد) هو واضح كثيرا. إذا كنت ترغب في الكود على C # (الذي لا أوصي بهذه المهام)، يمكنك استخدام مكتبة CSGL للوصول إلى وظائف OpenGL.

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