Russian Qt Forum
Ноябрь 24, 2024, 19:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему не меняется цвет "вершин" у фигуры?  (Прочитано 5778 раз)
CProger
Гость
« : Июнь 14, 2009, 01:02 »

Помню ведь, работала вот такая фишка на OpenGL (когда программировал без QT). Сейчас я рисую на QGLWidget'е.
Попытался сделать такое:
Код:
glBegin( GL_TRIANGLES );

glColor3f( 1, 0, 0 );
glVertex3f( 0, 0, 0 );

glVertex3f( 1, 0, 0 );

glColor3f( 0, 1, 0 );
glVertex3f( 0, 1, 0 );

glEnd();
а вот почему фигура получается одного цвета? Помню градиентная заливка получалась, а вот сейчас не получается... Почему так?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Июнь 16, 2009, 11:30 »

чтобы градиент был там надо что-то установить... Смотри режими огл установленные... можешь конечно попробовать заменить glColor на qglColor, но вообще должно работать...
ЗЫ: возможно у тебя так настроено освещение что родной цвет просто не  учитывается
Записан
CProger
Гость
« Ответ #2 : Июнь 17, 2009, 15:09 »

qglColor пробовал, но не проканало. Скорее всего, действительно, что-то нужно установить.. только что Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июнь 17, 2009, 17:15 »

код glInit'а в студию... а еще желательно проектик тестовый... у меня просто достаточно сложно выковырять будет нужное - там текстуры, свет... писалось на скорую руку, потому ничего не помню:)
Записан
CProger
Гость
« Ответ #4 : Июнь 17, 2009, 17:32 »

Вот тестовый проект...
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Июнь 17, 2009, 18:05 »

так и есть - настройки светоцвета. закомменти glShadeModel( GL_FLAT ); и будет тебе градиент
Записан
CProger
Гость
« Ответ #6 : Июнь 17, 2009, 18:21 »

так и есть - настройки светоцвета. закомменти glShadeModel( GL_FLAT ); и будет тебе градиент
вау.. работает!! Супер!
Спасибо большое!!

(я перерабатывал пример из QT - "hellogl", вот и унаследовалась, ещё непонятная для меня, константа.. Улыбающийся ).
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Июнь 17, 2009, 18:28 »

glShadeModel говорит о том, как заливать цвет если я правильно помню. Вообще есть 2 способа - вершинная закраска (то что ты делал). И закраска материалами (там больше возможностей, в основном нужных для работы с освещением - в каких пропорциях смешивать цвета освещения\материала и тп). Причем GL_FLAT как раз выключает вершинную закраску (иначе нужно GL_SMOOTH передавать)
Записан
CProger
Гость
« Ответ #8 : Июнь 17, 2009, 20:24 »

glShadeModel говорит о том, как заливать цвет если я правильно помню. Вообще есть 2 способа - вершинная закраска (то что ты делал). И закраска материалами (там больше возможностей, в основном нужных для работы с освещением - в каких пропорциях смешивать цвета освещения\материала и тп). Причем GL_FLAT как раз выключает вершинную закраску (иначе нужно GL_SMOOTH передавать)
Видимо они рассчитывали на другой тип заливки, а я на этом попался.. Спасибо за объяснение!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.