opengL: зеркальный объект в шейдере glsl - PullRequest
1 голос
/ 22 марта 2011

возможно ли зеркально отобразить объект вдоль некоторой оси, только в вершинном шейдере?

Если я просто масштабирую одну ось на -1 в матрице проекции, я получу неправильный выбор и мне нужно будет изменитьотбраковка от лицевой стороны к лицевой стороне в приложении.Есть ли способ сделать это без изменения отбраковки?

спасибо!

1 Ответ

4 голосов
/ 22 марта 2011

Отбор выполняется на основе так называемой хиральности грани, то есть направления поворота, в котором нарисованы вершины.Основным свойством отражения является то, что оно меняет киральность.Таким образом, вам неизбежно придется переключать режим отбраковки, поскольку отбор на задней / передней поверхности происходит исключительно из-за киральности в пространстве экрана.

Вы можете использовать шейдер geometry для обмена двумя вершинамикаждый треугольник, который также переключит хиральностьНо, честно говоря: отражения требуют некоторых дополнительных мер предосторожности, таких как маскировка трафарета и тому подобное;переключение функции выбраковки тоже не страшно.

...