Народный учебник по OpenGL

Грузоперевозки руза еще на сайте. |

Урок 26. Реалистичное отражение с использование буфера шаблона и отсечения. - часть 14


 

Нарисовав сначала пол, последующим отображением пола мы придадим отраженному изображению мяча легкую окраску пола.

 

  glLightfv(GL_LIGHT0, GL_POSITION, LightPos);// Положение источника

  // Включить смешивание (иначе не отразится мяч)

  glEnable(GL_BLEND);

  // В течение использования смешивания отключаем освещение

  glDisable(GL_LIGHTING);

  // Цвет белый, 80% прозрачности

  glColor4f(1.0f, 1.0f, 1.0f, 0.8f);

  // Смешивание, основанное на «Source Alpha And 1 Minus Dest Alpha»

  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

  DrawFloor();// Нарисовать пол

 

Теперь нарисуем «настоящий» мяч (парящий над полом). При рисовании пола освещение было отключено, но теперь мы опять его включим.

 

Так как смешивание нам более не потребуется, мы его отключаем. Если мы этого не сделаем, изображение мяча смешается с изображением пола. Нам не нужно, чтобы мяч выглядел, как его отражение, поэтому мы и отключаем смешивание цветов.

 

Мы не будем отсекать «настоящий» мяч. Если мяч будет проходить через пол, мы должны видеть его выходящим из пола снизу. Если мы будем использовать отсечение, мяч снизу пола не появится. При возникновении необходимости запретить мячу появляться снизу пола вы можете применить значение плоскости отсечения, где будет указано положительное значение Y-координаты. При этом мяч будет виден, только когда он будет рисоваться в верхней части экрана, до той Y-координаты, которую вы укажете в выражении плоскости отсечения. В данном демонстрационном примере у нас нет необходимости этого делать, поэтому мяч будет виден по обе стороны пола.

 

Затем мы перемещаемся на позицию вывода, заданную в переменной heght. Только теперь ось Y не перевернута, поэтому мяч двигается в направлении, противоположном направлению движения отраженного мяча.

 

Мяч вращается, и, опять же, поскольку ось Y на данный момент не перевернута, мяч будет вращаться в направлении, обратном направлению вращения отраженного мяча. Если отраженный мяч вращается к вам, «реальный» мяч вращается от вас. Это дополняет иллюзию отражения.




- Начало -  - Назад -  - Вперед -



Книжный магазин