Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: CProger от Июнь 14, 2009, 01:02



Название: Почему не меняется цвет "вершин" у фигуры?
Отправлено: 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();
а вот почему фигура получается одного цвета? Помню градиентная заливка получалась, а вот сейчас не получается... Почему так?


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: Авварон от Июнь 16, 2009, 11:30
чтобы градиент был там надо что-то установить... Смотри режими огл установленные... можешь конечно попробовать заменить glColor на qglColor, но вообще должно работать...
ЗЫ: возможно у тебя так настроено освещение что родной цвет просто не  учитывается


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: CProger от Июнь 17, 2009, 15:09
qglColor пробовал, но не проканало. Скорее всего, действительно, что-то нужно установить.. только что :)


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: Авварон от Июнь 17, 2009, 17:15
код glInit'а в студию... а еще желательно проектик тестовый... у меня просто достаточно сложно выковырять будет нужное - там текстуры, свет... писалось на скорую руку, потому ничего не помню:)


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: CProger от Июнь 17, 2009, 17:32
Вот тестовый проект...


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: Авварон от Июнь 17, 2009, 18:05
так и есть - настройки светоцвета. закомменти glShadeModel( GL_FLAT ); и будет тебе градиент


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: CProger от Июнь 17, 2009, 18:21
так и есть - настройки светоцвета. закомменти glShadeModel( GL_FLAT ); и будет тебе градиент
вау.. работает!! Супер!
Спасибо большое!!

(я перерабатывал пример из QT - "hellogl", вот и унаследовалась, ещё непонятная для меня, константа.. :) ).


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: Авварон от Июнь 17, 2009, 18:28
glShadeModel говорит о том, как заливать цвет если я правильно помню. Вообще есть 2 способа - вершинная закраска (то что ты делал). И закраска материалами (там больше возможностей, в основном нужных для работы с освещением - в каких пропорциях смешивать цвета освещения\материала и тп). Причем GL_FLAT как раз выключает вершинную закраску (иначе нужно GL_SMOOTH передавать)


Название: Re: Почему не меняется цвет "вершин" у фигуры?
Отправлено: CProger от Июнь 17, 2009, 20:24
glShadeModel говорит о том, как заливать цвет если я правильно помню. Вообще есть 2 способа - вершинная закраска (то что ты делал). И закраска материалами (там больше возможностей, в основном нужных для работы с освещением - в каких пропорциях смешивать цвета освещения\материала и тп). Причем GL_FLAT как раз выключает вершинную закраску (иначе нужно GL_SMOOTH передавать)
Видимо они рассчитывали на другой тип заливки, а я на этом попался.. Спасибо за объяснение!