| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
Угу, только в отличие от фокусов с Z-Buffer необходимо заморачиваться с порядком рендеринга таких объектов. |