Где-то что-то не так в моем коде, но для любого количества примитивов, которые я рисую, несмотря на вызов glClearColor, а затем выбор цвета с помощью glColor3f, цвета, которые появляются, полностью случайны .. .
Итак, в моем классе визуализации я перебираю все объекты и вызываю их методы рисования, для примитивов они будут выглядеть так:
inline void PrimitiveDrawer::drawWireframePrism(Vector3 pos, float radius, Vector3 col){
glClearColor( 1.0f, 1.0f, 1.0f, 1.0f );
glColor3f(col.x, col.y, col.z);
glLineWidth(3);
glBegin (GL_LINE_LOOP);
...
glEnd()
Но независимо от того, какой цвет я выберу, я всегда получаю разные ...Интересно, что все примитивные линии, которые я рисую с помощью этого метода, принимают цвет моделей, которые они связывают (они предназначены для ограничивающих объемов для сеток) ... Может ли это иметь отношение к загрузчикам моделей, которые я использую?
Это влияет на каждую фигуру (кроме фигур вокруг моделей), где каждый GL_LINE имеет один и тот же цвет (по какой-то причине зеленый), включая glutBitMapCharacter, который я пытаюсь нарисовать ... Это основная мысль, которая беспокоит меня, поскольку Я хотел бы выбрать цвет для рисования текста, сейчас я делаю это:
void renderBitmapString(float x, float y, void *font,char *string)
{
char *c;
glRasterPos2f(x, y);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(font, *c);
}
}
void drawText(char text[20], float x, float y){
glPushMatrix();
setOrthographicProjection();
glLoadIdentity();
glClearColor( 0, 0, 0, 0 );
glColor4f(0, 0, 1, 1);
renderBitmapString(x, y,(void *)font, text);
resetPerspectiveProjection();
glPopMatrix();
}
Но текст становится зеленым, а не синим?