Речь не об монстрах из первого дуума, а о плавной смене изображения.
Все, кто родился в 80х годах помнят календарики, которые под разным углом давали две разных картинки, другой пример тут http://www.dezinfo.net/post/3360
Вопрос к ксероксу главным образом.
Ну как в чем
Имеем две текстуры, одну из которых видно, только перпендикулярно нормали, а вторую - под определенным углом.
Мне пока ничего в голову не приходит, кроме тупого изменения прозрачности.
А как тоже самое на шейдерах реализовать?
Ну для начала получаешь вектор на наблюдателя, потом переводишь его в касательное пространство. Затем берешь, скажем, tsView.y (это по горизонтали будет) и делаешь во фрагментной программе lerp двух текстур.
По сути это тоже тупое "изменение прозрачности", разве что в один проход.
Можно сделать хитрее. Допустим, поверхность ребристая, и правое ребро содержит одну картинку, а левое - вторую. Тогда берешь карту нормалей ребристости и вычисляешь d = dot(tsView, N).
А потом допустим так:
c = lerp(tex0, tex1, d*0.5+0.5);