Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Прозрачные стены


Автор: Div 11.8.2005, 20:30
Наверное все играли в Diablo II или другие RPG! Видели как там реализован эффект? Когда герой заходит за стену, она становиться прозрачной, а главное частично! Никогда не сталкивались с таким вопросом? А вот мне довелось!

Мне кажется, что на эту часть стены просто накладывается другая текстура, хотя не будут же они хранить все текстуры, ведь вокруг "прозрачности" рисуется старая текстура.

Может кто-нибудь знает, как это можно реализовать?

Автор: Coriolis 27.9.2005, 12:08
Вот такая идея:
Можно в месте, где прозрачность должна быть, в Z буфере наложить круг из таких значений, при которых пикселы стены не проходили бы Z test. Причём чем ближе к герою, тем больше концентрация таких точек, а чем дальше - тем меньше. Т.е. это будет не настоящая прозрачность, а потделка. Но при большом разрешении будет не заметно.
Напр, в Fallout, Diablo - так и сделано (в смысле псевдо прозрачность).
Ну а если надо сделать именно прозрачный круг, то вроде есть буфер альфа канала, или что-то типа того. (я точно не знаю, но alpha-test имеет место быть. значит есть и некий буфер).
А вообще, интересный вопрос.

Автор: Helicopterr 17.10.2005, 00:02
Если в любимом 3D редакторе накладывать на объект (будь то стены или что-то ёщё) текстуры поддерживающие альфа канал, например dds, то можно реализовывать определённую степень прозрачности объекта или его части.
Кстати, Div, в Cinema 4D это делать просто здорово!

Автор: Neitron 17.10.2005, 14:26
3ds max тоже не отстает.

Автор: DENNN 20.10.2005, 15:56
Цитата(Helicopterr @ 17.10.2005, 00:02)
текстуры поддерживающие альфа канал, например dds, то можно реализовывать определённую степень прозрачности объекта или его части.

Угу, только в отличие от фокусов с Z-Buffer необходимо заморачиваться с порядком рендеринга таких объектов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)