تظليل جزء العين الفضاء بلا مقياس عمق التنسيق

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

  •  01-10-2019
  •  | 
  •  

سؤال

أحاول استخدام بلا مقياس (المسافة الحقيقية من الجبهة لقطة الطائرة) المسافة إلى الكائنات في المشهد في GLSL تظليل جزء.على gl_FragCoord.قيمة z هي أصغر مما كنت تتوقع.في vertex shader, أنا فقط استخدام ftransform() لتعيين gl_Position.أنا أرى القيم بين 2 و 3 عند أتوقع لها أن تكون بين 15 و 20.

كيف يمكنني الحصول على العين الحقيقية الفضاء العميق ؟ وذلك بفضل!

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

المحلول

تمرير ما تريد إلى أسفل كما متفاوتة من vertex shader.

قيمة Z المتاحة في تظليل جزء قد ذهب من خلال التطبيع على z-قرب/z-الآن (من مصفوفة الإسقاط) ، DepthRange.لذلك فمن غير مباشرة ما كنت بعد.عمليا, قد تتمكن من محاولة لإعادة بنائه قبل العودة مختلف OpenGL العمليات على ض أن يحدث بعد vertex shader, لكنه على الأرجح المزيد من المتاعب (بدءا من حقيقة أن العودة مصفوفة الإسقاط هو غير الخطية) من تمرير ما تريده بالضبط.

كملاحظة جانبية, Z سيكون لك حساب مع gl_ModelViewMatrix * gl_Vertex هو Z من وجهة نظر وليس قرب-Z الطائرة.

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