Как создать ограничивающий прямоугольник вокруг 3D-объекта, который я создал в 3DS MAX, а затем использовать его в приложении openGL? Мне нужна ограничивающая рамка для обнаружения конфликтов, но я не понимаю, как связать ограничительную рамку с объектом. Функция, которая создает объект является:Ограничительная коробка в opengl c программировании
void drawR2D2(){
if (xrot <= 5.0) xrot = 5.0;
if (xrot >= 70.0) xrot = 70.0;
if (ztransKit2 >= 0.7) ztransKit2 = 0.7;
if (xtransS1 >= 0.2) xtransS1 = 0.2;
if (ztransKit2 <= 0.0) ztransKit2 = 0.0;
if (xtransS1 <= 0.0) xtransS1 = 0.0;
glPushMatrix();
drawBodyR2();
glPopMatrix();
glPushMatrix();
glTranslatef(0.0, 1.2, 0.0);
glScalef(2.85, 2.85, 2.85);
glRotatef(yrotHead, 0.0, 1.0, 0.0);
drawHeadR2();
glPopMatrix();
glPushMatrix();
glScalef(3.5, 3.5, 3.5);
drawLegsR2();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.41, 0.45, 0.26);
glScalef(1.4, 1.4, 1.4);
glRotatef(xrotKit1, 1.0, 0.0, 0.0);
drawKit1R2();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.2, 0.5, 0.0 + ztransKit2);
glScalef(2.0, 2.0, 2.0);
glRotatef(zrotKit2, 0.0, 0.0, 1.0);
drawKit2R2();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.25 + xtransS1, 0.48, 0.45);
glScalef(1.55, 1.55, 1.55);
drawShield1R2();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.44 + xtransS2, 0.48, 0.37);
glScalef(1.12, 1.12, 1.12);
drawShield2R2();
glPopMatrix();
}
Другие функции: drawBodyR2(), drawHeadR2 и т.д. являются компонентами всего объекта.
Код для drawBodyR2, например, является:
void drawBodyR2(){
InitModel("r2d2/body.obj", &body);//function to initialize the object
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, bodyId);
glmDraw(body, GLM_SMOOTH | GLM_TEXTURE);
glDisable(GL_TEXTURE_2D);
}
Может кто-нибудь показать мне, как создать ограничительную рамку вокруг объекта, в результате из drawR2D2 функции ?
Столкновение не имеет никакого отношения к рендерингу. И OpenGL предназначен для рендеринга. Поэтому, если вы не намереваетесь нарисовать этот ограничивающий прямоугольник, OpenGL не поможет вам. –
@ NIcol Bolas Хорошо, но как рисовать ограничивающий прямоугольник вокруг моего объекта, поэтому, когда я перемещаюсь по своей сцене, не будет проходить через другие объекты, у которых также должна быть рамка вокруг них. Объект, который я описал выше, является моим единственным движущимся объектом, управляемым клавиатурой и мышью. Благодарю. – sixfeet
Рисование ограничивающей рамки имеет * ничего *, чтобы перемещать ее или не пропускать через что-то другое. –