Добавление текстуры для земли и ящиков
В данной статье мы постараемся разобраться, как разделить текстуры большого и малого куба. Таким образом мы сможем задать текстуру для земли отдельную от ящиков и наоборот.
Начнем с того, что поменяем имя материала для большого куба (по умолчанию оно соответствует имени малого куба)
Для этого необходимо открыть файл /media/meshes/cube_big.mesh.xml в любом текстовом редакторе и поменять название материала на любое другое.
Например вот так: <source lang="xml"> <mesh>
<submeshes> <submesh material="Deeptown/Demo/CubeBig" usesharedvertices="false" use32bitindexes="false" operationtype="triangle_list">
</source>
В данном примере название материала "Deeptown/Demo/CubeBig".
Сохраеяем файл. Далее необходимо сконвертировать файл в бинарный формат mesh. Для конвертации используется OgreXMLConverter, который можно скачать на сайте (пакет "Command-line Tools").
Для использования OgreXMLConverter необходимо перейти в директорию meshes и ввести команду:
ogrexmlconverter cube_big.mesh.xml cube_big.mesh
Затем открываем файл материала куба /media/materials/cube.material любым текстовым редактором и копируем описание материала Deeptown/Demo/Cube в тот же файл. Меняем название на то, что ввели в файле модели. Так же меняем имя файла текстуры.
Вот что у меня получилось: <source lang="kpp"> material Deeptown/Demo/Cube {
technique { pass { lighting off
texture_unit { texture /media/textures/cube_small.png } } }
}
material Deeptown/Demo/CubeBig {
technique { pass { lighting off
texture_unit { texture /media/textures/cube_big.png } } }
} </source>
В данном случае большой куб Deeptown/Demo/CubeBig будет являться поверхностью, на которой расположены ваше авто и ящики. Для него указываем текстуру земли. Для малого куба указываем текстуру, которую вы хотели бы видеть на ящиках.
Сохраняем файл cube.material и если вы добавляли текстуры, а вы как минимум одну новую добавили :) необходимо удалить файл индекса и запустить deep. После индексации смотрим результат.
--Stmf 22:41, 21 июля 2008 (EDT)