Это технология, которая позволяет сделать как-бы лакированную поверхность в которой отражается местность. Пример применения:
При этом на поверхности нет полного отражения окружающей местности, а проецируется заложенная в модель картинка, что позволяет экономить FPS.
Опубликовано на британском форуме пользователем RealfarmerTom.
Для начала две ссылки на британский форум, где обсуждается это изобретение:
http://www.ls-uk.info/forum/index.php?topic=60017
http://www.ls-uk.info/forum/index.php?topic=59977.msg239436#new
Для тех, кто не зарегистрирован на британском форуме ссылки на архив с необходимыми файлами и трактором над которым ставятся эксперименты.
Трактор John_Deere_6930 5.33 Mb
Архив с файлами и инструкция на английском.
И мой (совместно с Гуглом) перевод с ужасного английского ReadMe:
1. Не изменяйте мод, который вы используете в многопользовательских играх. Добавление отражающей текстуры, приведет к неработоспособности мода в мультиплейере!
2. Убедитесь, что текстуры полностью адаптированы к модели! Любые изменения, сделанные после добавления отражающей текстуры, сделают текстуру не рабочей, и Вам придется повторно переписывать номера в текстовом формате i3d файла!
3. Сделайте резервную копию!
Во-первых, Вам нужно выбрать мод! Выберите что-то простое, с не большим количеством текстурных файлов.
Наложение текстур разобьем на четыре этапа.
1) Распакуйте мод и откройте блокнотом i3d файл модели.
2) Вы увидите строки с текстом и цифрами!
Нужно сконцентрировать внимание на строках с файлами текстур и материалами! Вам нужно посмотреть в файле идентификационные номера от строки 9 до строки 24 (отображается на левой стороне), эти цифры связаны с файлами в папке текстур и номера используются для материалов на вашей модели. Если вы посмотрите на цифры, первой будет 16 (строка 22), то увидите Запомните что нужно сделать, добавить 3 строки текста ниже этого! Но добавить их в секцию файла, например между строками, 24 и 25!
Code
<File fileId="XX" filename="cubemap.dds" relativePath="true"/>
<File fileId="XX" filename="emissiveBillboardShader.xml" relativePath="true"/>
<File fileId="XX" filename="vehicleShader.xml" relativePath="true"/>
То, что Вы добавили, не имеет ID, вместо него здесь стоит "XX". Нужно изменить"XX" на любой номер, который еще не используется в файле. Для этого нужно найти уже использованное наибольшее число. Наибольшее число здесь 16. Что нужно сделать? Нужно начинать нумерацию со следующей десятки, получим номера "20" "21" "22"! Таким образом, когда вы адаптируете большой мод, который использует много файлов текстур, нельзя вписывать уже используемые номера! 3) Теперь к Материалам. Например, мы хотим сделать отражающими панели трактора и внешнюю часть кабины!
Идем вниз файла, пока не увидим:
Code
<TransformGroup name="John Deere" nodeId="168"
Спускаемся на следующую строку:
Code
<Shape name="John Deere>
идем по ней пока не увидим materialIds="12, 24 после (NodeID) видим, что нам нужны материалы 12 и 24. Вернемся в начало документа!
Щелкните вверху на вкладке "Поиск" и введите в поле "Найти» materialId =" 12 " это действие перенесет Вас к нужной строке (строке 35), ниже в строке 36 надпись Code
<Texture fileId="12"/>
это ссылка на файлы, которые ранее мы видели вверху. Откройте окно снова и через поиск найдите materialId = "24"! Это материал 13 файла johndeere3.png!
Нужно только изменить materialid = "12". Что нужно сделать? Добавить текстовую строку ниже промежуточных строк 36 и 37!
Code
<Reflectionmap fileId="XX" type="cube" wrap="false" refractiveIndex="1" bumpScale="0.1"/>
Снова видим fileid = "XX" Что нужно сделать? Достаточно изменить хх на 20 (или какой либо другой номер, который Вы выберете для файла cubemap.dds!) Сохранить и выйти!
4) Файлы cubemap.dds, emissiveBillboardShader.xml и vehicleShader.xml из папки Files скопируйте в папку, в которой находится i3d файл!
RealfarmerTom
P.S.
Чтобы показать, отражающий скрин на плоской стороне, а не только на крайних углах:
Code
<Reflectionmap fileId="XX" type="cube" wrap="false" refractiveIndex="1" bumpScale="0.1"/>
Измените refractiveIndex = "1" на refractiveIndex = "2":
Code
<Reflectionmap fileId="XX" type="cube" wrap="false" refractiveIndex="2" bumpScale="0.1"/>