سؤال

لدي مشهد OpenGL مع بعض الأرقام على ذلك. هل يمكن أن تخبرني بما يجب أن أفعله لحساب مواقف القمة بعد "التقديم"؟ أعلم أنني ربما أحتاج إلى ضرب بعض المصفوفات ، لكنني لا أعرف أي منها وكيف.

شكرا مقدما على أي مساعدة!

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

المحلول

نصائح أخرى

هل تريد معرفة الحد الأقصى لمدى الشاشة على شاشتك في وحدات البكسل؟

إذا كان الأمر كذلك ، فإن أبسط طريقة للذهاب هي استدعاء Gluproject لجميع رؤوسك وتخزين المواضع الحد الأقصى والحد الأدنى X و Y.

يمكن أن تبدو هكذا:

GLdouble modelview[16], projection[16]
GLint viewport[4];

glGetDoublev(GL_MODELVIEW_MATRIX, *modelView);
glGetDoublev(GL_PROJECTION_MATRIX, *projection);
glGetIntegerv(GL_VIEWPORT, *viewport);

double tx, ty, tz;

for(i = 0; i < VertexCount; i++)
{
  glProject(vertices[i].x, vertices[i].y, vertices[i].z, 
    modelview, projection, viewport,
    *tx, *ty, *tz);

  //  now, the 2d position of the ith Vertex is stored in tx, ty, tz.
  // you can now use these values to determine the 2d-extends on your screen

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