Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разноцветная поверхнось в OpenGl

247
29 октября 2005 года
wanja
1.2K / / 03.02.2003
Как в OpenGl рисовать поверхность(из полигонов, например), так, чтобы с одной стороны она бвла одного цвета, а с другой - другого?
8.2K
30 октября 2005 года
Akela
64 / / 13.05.2005
см. "Наложение текстуры на плоскость".
262
30 октября 2005 года
Iktomy
1.2K / / 11.10.2004
Цитата:
Originally posted by wanja
Как в OpenGl рисовать поверхность(из полигонов, например), так, чтобы с одной стороны она бвла одного цвета, а с другой - другого?



Код:
glBegin(GL_TRIANGLES);
 glColor3f(1.0f,0.0f,0.0f);      // Красный цвет
 glVertex3f( 0.0f, 1.0f, 0.0f);

 glColor3f(0.0f,1.0f,0.0f);      // Зеленный цвет
 glVertex3f(-1.0f,-1.0f, 0.0f);

 glColor3f(0.0f,0.0f,1.0f);      // Синий цвет
 glVertex3f( 1.0f,-1.0f, 0.0f);
       
 glEnd();

Dj тебе разноцветный треугольник, если я правильно твой вопрос понял.
7.7K
31 октября 2005 года
Anton S.
45 / / 20.03.2005
Нельзя, вроди полигон с разных сторон красить... по крайней мере через функции OGL и DirectX... или просчитывать видимость и бить поверхность на несколько разных цветов. Или рисуй два полигона разных цветов на маленьком расстоянии друг от друга.
8.2K
01 ноября 2005 года
Akela
64 / / 13.05.2005
Товарищи, о чём вы говорите????????
Включаете polygon culling, рисуете сначала фронтальную сторону полигона одним цветом, а после заднюю - другим. И всё!!!
279
03 ноября 2005 года
bave
456 / / 07.03.2004
Не делайте из мухи слона:
1. Врубить интерполяцию по вершинам (лучше в ините)
2. И можно задовать цвет у каждой вершины полигона

//1.
glShadeModel(GL_SMOOTH);

//2. - И как было сказано выше:
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f); // Красный цвет
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.0f,1.0f,0.0f); // Зеленный цвет
glVertex3f(-1.0f,-1.0f, 0.0f);
glColor3f(0.0f,0.0f,1.0f); // Синий цвет
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
7.7K
03 ноября 2005 года
Anton S.
45 / / 20.03.2005
Зесь вопрос не о покраске вершин полигона, а о раскраске полигона с разных сторон.
279
08 ноября 2005 года
bave
456 / / 07.03.2004
Цитата:
Originally posted by Anton S.
Зесь вопрос не о покраске вершин полигона, а о раскраске полигона с разных сторон.



Да...,я сначала не так понял в чём вопрос...
-----------------------------------------
Нужно разными цветами покрасть полигон с фронтальной и обратной стороны??? - Ну, для
этого можешь разные параметры для фронтальной
и обратной стороны задать:
//Задаем параметры материала для лицевых граней
GLfloat specular_front[] = {0.0,0.3,0.9,1.0};
GLfloat ambient_front[] = {0.0, 0.1, 0.3, 1.0};

glMaterialfv(GL_FRONT,GL_SPECULAR,specular_front);
glMaterialfv(GL_FRONT,GL_AMBIENT, ambient_front);

//для обратных
GLfloat specular_back[] = {1.0,0.0,0.0,1.0};
GLfloat ambient_back[] = {0.5,0.1,0.1,1.0};
glMaterialfv(GL_BACK,GL_SPECULAR, specular_back);
glMaterialfv(GL_BACK,GL_AMBIENT, ambient_back);

если еффект будет не очень, то можно еще в параметрах матерьяла и GL_DIFFUSE
задать и чтоб его параметры совпадали с
GL_SPECULAR

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог