![]() |
![]() |
|
![]() |
#1 |
Разработчик
Регистрация: 11.05.2007
Адрес: Рига, Латвия
Сообщений: 1,330
Вы сказали Спасибо: 613
Поблагодарили 2,176 раз(а) в 632 сообщениях
![]() |
![]()
Спешу поделиться информацией, которую я добыл. Многие моделисты сталкиваются с необходимостью моделировать стеклянные (полупрозначные) объекты структуры, например, кусок стекла. Делая какое-то стеклянное здание, пользователь потом обнаруживает проблему с альфой. Когда ты смотришь в стекло, то оно словно рентген - просвечивает насквозь. В такие моменты пропадают и другие объекты из поля зрения, пока ты смотришь в это стекло. Некоторые люди дают советы (в основном в 3D Max), мол надо назвать материал стекла как AlphNorm1s2s3s4s5s6s7s8 и что-то в этом духе.
Я вплотную столкнулся с такой проблемой, что мне надо было видеть сразу три стекла друг в друге. Задача, казалось, невыполнимой. Некоторые стороны здания были видны нормально, но некоторые просвечивались насквозь. Использовались материалы AlphNorm (чуть темноватая обычная текстура с 8-мибитной альфой) и AlphCrcfrm (осветлённая обычная текстура с 8-мибитной альфой), но толку не было. Менял и порядок, и привязки, и материалы всех кусочков на объекте. Иногда эта обзорность появлялась в одном месте, но пропадала в другом. И вот, я решил копнуть по-глубже, и.... у меня получилось! Парни, всё гораздо проще! Почти у каждого типа материала есть двойник со знаком "+" и "-". Это не просто так. Это приоритетность в "слоёном пироге" и влияет на порядок отрисовки или игнорирования какой-то текстуры. Для примера, я взял один и тот же материал - AlphCrcfrm. Если ты смотришь на три стекла, причём сквозь друг друга, то нужно чтобы материалы стояли в следующем порядке: - сначала AlphCrcfrm+ - это самый приоритетный полигон. Всё что имеет AlphCrcfrm+ скорее всего не будет видно, но внутри будут видны AlphCrcfrm и AlphCrcfrm-. - второй по приоритету стоит AlphCrcfrm. В нём ты скорее всего не увидишь AlphCrcfrm, точно на 100% не увидишь AlphCrcfrm+, но ты увидишь AlphCrcfrm-. - последний замыкающий AlphCrcfrm-. Самый низкий приоритет. В нём ты 100% не увидишь AlphCrcfrm+ и AlphCrcfrm, т.к. они должны быть главнее. В каждый момент времени твоя обзорная камера может смотреть на 3 стекла. И чтобы увидеть все три друг в друге - нужно всего лишь соблюдать эту очерёдность в камере обзора. Внешняя сторона здания со стеклянной стеной обязательно должна быть максимально важной как AlphCrcfrm+. Внутренняя сторона этой стены должна быть либо AlphCrcfrm, либо AlphCrcfrm-. Если стёкол больше нет, то нет разницы (лишь бы не AlphCrcfrm+). Если есть ещё какие-то стёкла, то просто добейтесь того, чтобы каждый полигон под всеми углами отображался именно в этом порядке приоритетности. Любое значение, которое выше того, в которое смотришь - 100% не будет видно в этом стекле. Если материал совпадает по значению с тем, в которое смотришь - тогда это уже на усмотрение симулятора. Что-то увидишь, а что-то нет. Не забывайте, что изнутри здания тоже нужно соблюдать этот порядок. Если внутреннее стекло это AlphCrcfrm, то вы сможете увидеть только AlphCrcfrm- и некоторые AlphCrcfrm. ![]() ![]() Последний раз редактировалось APK-LVDZ; 19.02.2024 в 02:50. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
|
![]() Что это? |