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

Ваш аккаунт

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

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

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

Проективные тени

20K
05 декабря 2006 года
Змiй
12 / / 05.12.2006
Здравствуйте. Пытаюсь сделать projective shadow maps. Рисую в текстуру объект чёрным цветом на белом фоне с позиции источника света. Затем накладываю полученную текстуру на другой объект при автоматическом расчёте координат. Вот что получается: http://zmiy-data.narod.ru/Incorrect_shadow.jpg . Параметры текстуры:

Код:
const
PlaneS: Array [0..3] of Single = (1, 0, 0, 0);
PlaneT: Array [0..3] of Single = (0, 1, 0, 0);
PlaneR: Array [0..3] of Single = (0, 0, 1, 0);
PlaneQ: Array [0..3] of Single = (0, 0, 0, 1);
GL_CLAMP_TO_EDGE = $812F;
...
 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
 glEnable(GL_TEXTURE_GEN_S);
 glEnable(GL_TEXTURE_GEN_T);
 glEnable(GL_TEXTURE_GEN_R);
 glEnable(GL_TEXTURE_GEN_Q);
 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
 glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
 glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
 glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
 glTexGenfv(GL_S, GL_EYE_PLANE, @PlaneS);
 glTexGenfv(GL_T, GL_EYE_PLANE, @PlaneT);
 glTexGenfv(GL_R, GL_EYE_PLANE, @PlaneR);
 glTexGenfv(GL_Q, GL_EYE_PLANE, @PlaneQ);
 glMatrixMode(GL_TEXTURE);
 glLoadIdentity;
 glTranslatef(0.5, 0.5, 0);
 glScalef(0.5, 0.5, 1);
 // Установка проекции и вида камеры
 glMatrixMode(GL_MODELVIEW);  
 glTexImage2D(GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_RGB, GL_UNSIGNED_BYTE, @ShadowArr);


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