Ребят, спешу поделиться информацией, которую наконец удалось найти по теме создания ssbump-текстур. Объясню в кратце что это такое, чтобы не было лишних вопросов. Те кто давно в курсе - ничего нового не узнают.
Как известно, Valve гордится тем, что реализовала систему самозатенения в движке OrangeBox образца 2007 года. Работает она только на шейдере LightmappedGeneric, но все равно является более чем "вкусной". Суть ее заключается в том, что эффект рельефа помимо привычной карты нормалей дополняется картой высот, и она видна как при обычном освещении, так и при работе фонарика (отбрасываются тени, чего не наблюдается при бампе). И запечатывается все это в одну текстуру (карта высот - в альфа-канале). Все бы ничего, но у нее есть особенность - карта нормалей хранится в особом виде, засчет которого накладывается дополнительная информация о тенях (то чем заведует например ambient occlusion на моделях), и все это (ВНИМАНИЕ!) работает даже быстрее, чем обычная карта нормалей засчет предварительного расчета некоторых операций, которые раньше делал шейдер. Соответственно главным вопросом было - как создать такую текстуру
Честно говоря не проверял на практике, будет ли работать обычная карта нормалей с картой высот в альфа-канале, может быть.. Но эффект от нее 100% будет куда меньше, а вкусностей хочется.
Ну вот и настал момент (турум-пум-пум) - вот оно:
http://forums.facepunchstudios.com/...ad.php?t=529746
По этой ссылке можно попасть на тутор по созданию текстур ssbump и скачать прогу, с использованием которой это делается. Хотя ссылку на прогу дать могу и я
) Скачиваем отсюда:
http://www.xnormal.net/Downloads.aspx Прога знатная нужно сказать, судя по описанным возможностям. В кратце - кухонный комбайн по созданию различных карт нормалей, occlusion, карт высот, конечно же на основе моделей.
В качестве затравки приведу изображение Valve и одну из их текстур ssbump. Пример использования:
"LightmappedGeneric"
{
"<dx90"
{
"$fallbackmaterial" "nature/rockwall_cave02a_dx8"
}
"$basetexture" "nature/rockwall_cave02a"
"$surfaceprop" "concrete"
"$bumpmap" "Nature/rockwall_cave_02a_height-ssbump"
"$ssbump" "1"
"$normalmapalphaenvmapmask" 1
"$envmaptint" "[ .2 .2 .2 ]"
"$envmap" "cubemaps/cubemap_cave01"
"%keywords" "ep2"
"$seamless_scale" 0.005
"LightmappedGeneric_hdr_dx9"
{
"$envmaptint" "[ .2 .2 .2 ]"
"$envmap" "cubemaps/cubemap_cave01"
}
}