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);
Проективные тени
http://zmiy-data.narod.ru/Incorrect_shadow.jpg . Параметры текстуры:
Скажите, пожалуйста, как нормально наложить текстуру.
Здравствуйте. Пытаюсь сделать projective shadow maps. Рисую в текстуру объект чёрным цветом на белом фоне с позиции источника света. Затем накладываю полученную текстуру на другой объект при автоматическом расчёте координат. Вот что получается:
Код:
Скажите, пожалуйста, как нормально наложить текстуру.