HLFX.Ru Forum
Показать все 5 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Смена изображения от угла обзора (https://hlfx.ru/forum/showthread.php?threadid=1296)


Отправлено Дядя Миша 16-05-2008 в 20:50:

Смена изображения от угла обзора

Речь не об монстрах из первого дуума, а о плавной смене изображения.
Все, кто родился в 80х годах помнят календарики, которые под разным углом давали две разных картинки, другой пример тут
http://www.dezinfo.net/post/3360
Вопрос к ксероксу главным образом.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 17-05-2008 в 04:21:

В чем заключается вопрос?

__________________

xaerox on Vivino


Отправлено Дядя Миша 17-05-2008 в 05:26:

Ну как в чем
Имеем две текстуры, одну из которых видно, только перпендикулярно нормали, а вторую - под определенным углом.
Мне пока ничего в голову не приходит, кроме тупого изменения прозрачности.
А как тоже самое на шейдерах реализовать?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 17-05-2008 в 05:50:

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 17-05-2008 в 09:35:

XaeroX ну яж и спрашивал, как бы похитрее сделать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 16:09.
Показать все 5 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024