В glut у куба нет одной грани.

Компьютеры программирование OpenGL

#include <glut.h>

void draw()
{
glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT); //очищаем экран
glColor3f(1,0,0);
glPushMatrix();
glTranslatef(0,0,-6);
glRotatef(40,1,1,1);
glScalef(2,1,1);

glutSolidCube(1);

glutSwapBuffers();
}

void Reshape(GLint w, GLint h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat)w/(GLfloat)h, 0.1f, 100.0f );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

void glInit(int argc, char *argv[]) //инициализация glut
{
glutInit(&argc, argv);
glutInitWindowPosition(300,200);
glutInitWindowSize(400,400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Виселица");
glViewport(0, 0, 400, 400);

glutDisplayFunc(draw);
glutReshapeFunc(Reshape);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
float pos[4] = {3,3,3,1};
glLightfv(GL_LIGHT0, GL_POSITION, pos);
}

int main(int argc, char *argv[])
{
glInit(argc,argv); //инициализируем glut
glutMainLoop(); //запуск программы
return 0;
}

Примечание:
Хотя я тут посмотрел, получается что не видно те грани которые ближе всего. Почему - я не знаю.
Ответы:
Попробуйте в Reshape(GLint w, GLint h) заменить:
gluPerspective(45.0f, (GLfloat)w/(GLfloat)h, 0.1f, 200.0f ); // увеличить zFar до 200
и добавить под ней еще и камеру:
gluLookAt(100.0f, 100.0f, 100.0f, 0, 0, 0, 0, 200, 0);


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.