Показать сообщение отдельно
Старый 19.02.2024, 02:48   #583
APK-LVDZ
Разработчик
 
Аватар для APK-LVDZ
 
Регистрация: 11.05.2007
Адрес: Рига, Латвия
Сообщений: 1,324
Вы сказали Спасибо: 612
Поблагодарили 2,167 раз(а) в 629 сообщениях
APK-LVDZ стоит на развилке (репутация по умолчанию)
По умолчанию

Спешу поделиться информацией, которую я добыл. Многие моделисты сталкиваются с необходимостью моделировать стеклянные (полупрозначные) объекты структуры, например, кусок стекла. Делая какое-то стеклянное здание, пользователь потом обнаруживает проблему с альфой. Когда ты смотришь в стекло, то оно словно рентген - просвечивает насквозь. В такие моменты пропадают и другие объекты из поля зрения, пока ты смотришь в это стекло. Некоторые люди дают советы (в основном в 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.
APK-LVDZ вне форума   Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо APK-LVDZ за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА