OpenGL/GLSL: ما هي أفضل خوارزمية لتقديم السحب/الدخان من البيانات الحجمية؟

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

  •  25-09-2019
  •  | 
  •  

سؤال

أرغب في تقديم بيانات الحجم ثلاثي الأبعاد: الكثافة (يمكن تعيينها إلى قناة ألفا) ، ودرجة الحرارة (يمكن تعيينها إلى RGB). حاليا أنا محاكاة الحد الأقصى لإسقاط الكثافة ، على سبيل المثال: تقديم البكسل الأكثر كثافة/غير معتمة في النهاية. لكن هذه الطريقة تفقد تصور العمق.

أود تقليد التأثير مثل النار داخل الدخان.

إذن سؤالي هو ما هي التقنيات في OpenGL لإنشاء الصور بناءً على البيانات المتاحة؟

أي فكرة مرحب بها.

شكرا أرمان.

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

المحلول

سأجرب العجلات Ray Ray أولاً.

يمكنك Google "Volume Visualization with Ray Casting" وينبغي أن يمنحك معظم ما تحتاجه. NVIDIA لديها عينة رائعة (باستخدام OpenG) من تصبغ الأشعة من خلال نسيج ثلاثي الأبعاد.

في تطبيقك المحدد ، ستحتاج فقط إلى الاستمرار في التجول في وحدة التخزين التي تتراكم درجة الحرارة حتى تصل إلى الكثافة المطلوبة.

إذا كان مستوى الصوت الخاص بك لا يتناسب مع ذاكرة الفيديو ، فيمكنك القيام بإلقاء الأشعة في القطع ثم القيام بخطوة تكوين.

وصف سريع لتلقي راي:

وحدة المعالجة المركزية: 1) جعل مكعب ستة جوانب في الفضاء العالمي كما الرسم البدائي تأكد من استخدام إعدام العمق.

تظليل Vertex: 2) في متجر تظليل الرأس قبالة الموضع العالمي للرؤوس (هذا سوف يتنازل عن كل شظية)

تظليل الشظية: 3) استخدم الموضع المحرف مطروحًا منه موضع الكاميرا للحصول على متجه اجتياز من خلال مستوى الصوت. 4) استخدم حلقة من الوقت للتخطي من مستوى الصوت من النقطة على المكعب عبر الجانب الآخر. 3 طرق لمعرفة متى تنتهي. أ) في كل اختبار خطوة إذا كانت النقطة لا تزال في المكعب. ب) قم بتقاطع شعاع مع المكعب وحساب المسافة بين التقاطعات. ج) قم بدماء المكعب مع إعدام الوجه الأمامي وتخزين الأعماق في خريطة نسيج ثانية ثم مجرد sampe في بكسل الشاشة للحصول على المسافة.

5) تراكم أثناء حلقة وضبط لون البكسل.

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