Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Программирование графики
Перезагрузить страницу OpenGL монохромность как с ней работать
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_skill_ imported_skill_ вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.10.2009
По умолчанию OpenGL монохромность как с ней работать - 23.05.2011, 13:39

Добрый день.
Осваиваю, или пытаюсь это сделать, OpenGL.
К сожалению не так много подробной информации как хотелось бы можно найти.
Столкнулся с такой проблемой - сцена отображается в черно-белых тонах, хотя, как казалось бы, должна быть цветной.
Помогите, плз, разобраться почему так.
Пишу на C# с использованием Tao framework.

Вот код, простой как сибирский валенок...

При инициализации формы
csharp Код:
// инициализация 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);

Отрисовка, происходит по таймеру
csharp Код:
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();
        }

А вот печальный результат(Опция вставки картинки вставляет тег Visual Prolog'а):
[IMAGE= "http://h1813090.stratoserver.net/files/share/23_5_2011/OtnAsKujMkm07lmk1PKCUQ.png"][/IMAGE]
Скриншот 2011-05-23 12:37 :: floomby.ru
Ответить с цитированием
  (#2 (permalink)) Старый
imported_skill_ imported_skill_ вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.10.2009
По умолчанию 23.05.2011, 17:43

Ответ найден, и, как это часто бывает, весьма прост:
csharp Код:
Gl.glEnable(Gl.GL_COLOR_MATERIAL);
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
opengl doug1as Видеокарты 0 20.02.2012 20:28
openGL+linux johnnybravo Программирование графики 0 29.06.2011 22:47
OpenGL Help! stregok1 Форум программистов 0 22.05.2011 15:38
OpenGL в Delphi XE как с ним работать P.A.S.C.A.L. Программирование графики 1 16.02.2011 00:11
OpenGL как с ним работать HeroDiver Программирование графики 1 19.10.2009 18:54
Как работать с глубиной, OpenGL dralexthk Программирование графики 2 23.01.2007 19:54
Как работать с OpenGL или DirectX в С# ProgmanSharp .NET 2 04.02.2006 15:15
Как работать с моделями 3dsMax под OpenGL-ем из VС++ и D6 imported_Pashka Программирование графики 4 07.12.2005 12:45
PHP+OpenGL RENegade PHP 2 08.11.2005 20:51
OWL и OpenGL мгут ли они совместно работать Devill С/С++ 1 12.10.2005 19:30
Текстуры OpenGL как с ними работать Drey^the^first Программирование графики 3 14.06.2005 02:00
Как работать с OpenGL в Delphi Багдат Delphi 1 10.12.2004 09:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов