ПрограммированиеФорумГрафика

Детальные текстуры и освещение

#0
18:00, 15 дек 2010

Накладываю на ландшафт детальную текстуру с помощью

  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
  glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB);

  glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB);
  glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);

  glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
  glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);

  glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_CONSTANT_ARB);
  glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA);
  color := Vector4(0,0,0, 0.8);
  glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, @color);

  т.е. цвет в точке определяется, как  С = Сtex0*0.8 + Ctex1*0.2;

  При дневном освещении все красиво,
  но  когда дневной свет пропадает, оказывается, что источник света влияет только на первую текстуру,
  а вторая так и остается яркой и светится в ночи.
  Что я не так делаю?

#1
18:11, 15 дек 2010

Kasjan
Освещать шейдером?

#2
14:46, 16 дек 2010

-Eugene-
Это понятно,
но неужели нет возможности правильное освещение детальной текстуры без шейдеров сделать?

#3
14:48, 16 дек 2010

Kasjan
пользуешься arb_env_crossbar ? давно не работал с комбайнерами ...

#4
17:42, 16 дек 2010

innuendo
Нет, а что это такое?

#5
17:47, 16 дек 2010

Kasjan
> Нет, а что это такое?

http://www.opengl.org/registry/specs/ARB/texture_env_crossbar.txt

ПрограммированиеФорумГрафика

Тема в архиве.