| PMG http://forum.pmg.org.ru/ |
|
| OpenGL монохромность, почему так? http://forum.pmg.org.ru/viewtopic.php?f=1&t=8085 |
Страница 1 из 1 |
| Автор: | skill_ [ 23 май 2011 14:43 ] |
| Заголовок сообщения: | OpenGL монохромность, почему так? |
Добрый день. Осваиваю, или пытаюсь это сделать, OpenGL. К сожалению не так много подробной информации как хотелось бы можно найти. Столкнулся с такой проблемой - сцена отображается в черно-белых тонах, хотя, как казалось бы, должна быть цветной. Помогите, плз, разобраться почему так. Пишу на C# с использованием Tao framework. Вот код, простой как сибирский валенок... При инициализации формы Код: // инициализация OpenGL // инициализация бибилиотеки glut Glut.glutInit(); // инициализация режима экрана Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE); // установка цвета очистки экрана (RGBA) Gl.glClearColor(255, 255, 255, 1); // установка порта вывода Gl.glViewport(0, 0, AnT.Width, AnT.Height); // активация проекционной матрицы Gl.glMatrixMode(Gl.GL_PROJECTION); // очистка матрицы Gl.glLoadIdentity(); Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 2000); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_LIGHTING); Gl.glEnable(Gl.GL_LIGHT0); Отрисовка, происходит по таймеру Код: private void draw() { // очистка буфера цвета и буфера глубины Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glClearColor(255, 255, 255, 1); // очищение текущей матрицы Gl.glLoadIdentity(); Gl.glPushMatrix(); // перемещаем камеру для более хорошего обзора объекта Gl.glTranslated(0, 0, -zoom); Gl.glRotated(rotationX, 1, 0, 0); Gl.glRotated(rotationY, 0, 1, 0); Gl.glRotated(rotationZ, 0, 0, 1); Gl.glBegin(Gl.GL_LINES); Gl.glColor3f(255, 0, 0); Gl.glVertex3d(0, 0, 0); Gl.glVertex3d(100, 0, 0); Gl.glColor3f(0, 255, 0); Gl.glVertex3d(0, 0, 0); Gl.glVertex3d(0, 100, 0); Gl.glColor3f(0, 0, 255); Gl.glVertex3d(0, 0, 0); Gl.glVertex3d(0, 0, 100); Gl.glEnd(); /// /// Рисуем плоскость на которой расположены объекты /// синим цветом /// Gl.glColor3f(0, 0, 0.9f); Gl.glNormal3f(0, 1, 0); Gl.glBegin(Gl.GL_QUADS); Gl.glVertex3f(-100, -25, -100); Gl.glVertex3f(-100, -25, 100); Gl.glVertex3f(100, -25, 100); Gl.glVertex3f(100, -25, -100); Gl.glEnd(); /// /// Рисуем красный куб /// Gl.glColor3f(1, 0, 0); Glut.glutSolidCube(48); /// /// Рисуем зеленую сферу /// Gl.glColor3f(0, 1, 0); Gl.glPushMatrix(); Gl.glTranslated(-60, 0, 0); Glut.glutSolidSphere(25, 64, 64); Gl.glPopMatrix(); /// /// Рисуем желтый конус /// Gl.glColor3f(1, 1, 0); Gl.glPushMatrix(); Gl.glRotated(-90, 1, 0, 0); Gl.glTranslated(60, 0, -24); Glut.glutSolidCone(25, 50, 64, 64); Gl.glPopMatrix(); /// /// Рисуем пуппурный тор /// Gl.glColor3f(1, 0, 1); Gl.glPushMatrix(); Gl.glTranslated(0, 0, 60); Glut.glutSolidTorus(8, 16, 64, 64); Gl.glPopMatrix(); /// /// Рисуем голубой октаэдр /// Gl.glColor3f(0, 1, 1); Gl.glPushMatrix(); Gl.glTranslated(0, 0, -60); Gl.glScaled(25, 25, 25); Glut.glutSolidOctahedron(); Gl.glPopMatrix(); Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); } А вот печальный результат:
|
|
| Автор: | skill_ [ 23 май 2011 16:48 ] |
| Заголовок сообщения: | Re: OpenGL монохромность, почему так? |
Ответ найден: Код: Gl.glEnable(Gl.GL_COLOR_MATERIAL);
|
|
| Автор: | MagicWolf [ 08 июн 2011 14:44 ] |
| Заголовок сообщения: | Re: OpenGL монохромность, почему так? |
хм, странно... |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|