void TForm1::Draw()
{
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
//поле
glBegin(GL_QUADS);
glColor3f(1,1,0);
glVertex3f(-212,0,-212);
glColor3f(1,1,1);
glVertex3f(212,0,-212);
glColor3f(0,1,1);
glVertex3f(212,0,212);
glColor3f(1,0,1);
glVertex3f(-212,0,212);
glEnd();
//фигура
glBegin(GL_QUAD_STRIP);
glColor3f(1,0,0);
glVertex3f(x,5,z);
glVertex3f(x,15, z);
glColor3f(0,0,1);
glVertex3f(x2, 5,z2);
glVertex3f(x2, 15,z2);
glColor3f(0,1,0);
glVertex3f( x3, 5,z3);
glVertex3f( x3, 15, z3);
glColor3f(1,0,0);
glVertex3f(x,5,z);
glVertex3f(x,15,z);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1,0,0);
glVertex3f(x,5,z);
glColor3f(0,0,1);
glVertex3f(x2, 5,z2);
glColor3f(0,1,0);
glVertex3f( x3, 5,z3);
glColor3f(1,0,0);
glVertex3f(x,15,z);
glColor3f(0,0,1);
glVertex3f(x2, 15,z2);
glColor3f(0,1,0);
glVertex3f(x3, 15,z3);
glEnd();
//фигура создана
//glRotatef(3, 0,1,0);
////
SwapBuffers(ghDC);
}
поворот фигуры в OpenGL?
Код:
поле вращатся не должно.
подскажите пожалуйсто.
да еще, не кто не знает кто из разразработчиков выложил исходники движока своей игрушки бесплатно, если можно ссылочку(знаю что есть но найти не могу):confused:
glTranslatef
glRotatef
glScalef
насчет движка...
Сначала делай Rotate, а уж потом рисуй.
Короче, там вот какое дело... Сначала, по идее, сохраняешь текущую матрицу, потом делаешь ротейт, потом восстанавливаешь матрицу. Это нужно для того, чтобы вращать или иным образом трансформировать только то, что нужно, и ничего другого (в твоем случае: чтобы повернулась только сама модель, без поля). Хотя блин, может я непонятно сказал, если что - обращайся.
Цитата: coolcoder
Rezus666
Короче, там вот какое дело... Сначала, по идее, сохраняешь текущую матрицу, потом делаешь ротейт, потом восстанавливаешь матрицу. Это нужно для того, чтобы вращать или иным образом трансформировать только то, что нужно, и ничего другого (в твоем случае: чтобы повернулась только сама модель, без поля). Хотя блин, может я непонятно сказал, если что - обращайся.
Короче, там вот какое дело... Сначала, по идее, сохраняешь текущую матрицу, потом делаешь ротейт, потом восстанавливаешь матрицу. Это нужно для того, чтобы вращать или иным образом трансформировать только то, что нужно, и ничего другого (в твоем случае: чтобы повернулась только сама модель, без поля). Хотя блин, может я непонятно сказал, если что - обращайся.
Уточни: я должен нарисовать модель, сохранить матрицу, ротейтить, возвратить матрицу на место, потом рисовать поле?
Цитата: Rezus666
Уточни: я должен нарисовать модель, сохранить матрицу, ротейтить, возвратить матрицу на место, потом рисовать поле?
и все же, почитай док про эти функций
glTranslatef, glRotatef, glScalef и конечно glPushMatrix и glPopMatrix
Еще пару ссылок, если не сложно, на доки, а то всё что я находил самоучители, а хотелось бы справочник функций (желательно на русском)
http://pmg.org.ru/nehe/index.html
а полное описание всех функции есть в windows sdk
а полное описание всех функции есть в windows sdk
спасибо, очень полезная ссылка
Цитата: Rezus666
Уточни: я должен нарисовать модель, сохранить матрицу, ротейтить, возвратить матрицу на место, потом рисовать поле?
Сначала рисуешь фон (у тебя это поле), потом сохраняешь матрицу, потом ротейтишь, потом рисуешь фигуру, потом восстанавливаешь матрицу.