Показать сообщение отдельно
Старый 15.11.2007, 13:09   #44
Новичок
 
Аватар для NecRoMat
 
Регистрация: 28.10.2007
Адрес: x^3-y^2=n
Сообщений: 69
Репутация: 30 [+/-]
помощь по мапперству


Здраствуйте заглянул на форум вижу мало информации по мапперству ,
когда то я был новечком в этом деле нечего не знал везде лазил и очень часто задавал вопросы . вот как раз для начинающих мапперов эта тема и посвещена.
Я буду выкладывать ссылки на другие сайты где учебники и т.п.
1. http://cs-mapping.com.ua/ очень большой источник знаний по мапперству.

2. http://halflife2.filefront.com/files...ides/VTMs;4385 видеопо созданию моделей и карт (жаль что на английском)

3. http://iwannamap.com/ маппинг , моделинг , кодинг и текстуринг

4. http://ssdk.ru/ приличный сбор информации по мапперству.

5. http://cs-mapper.by.ru/ громадный обьём знаний по мапперству

6. http://source-inside.ru/ средний обьём знаний по мапперству

7. http://www.milena.monolife.fatal.ru/hl2_css.htm программы , учебные карты , туториалы и переводы

вот тут самый большой обьём знаний по мапперству .

Главное чтоб глаза смотрели ,а руки делали.

Удачи в мапперстве!. в следующей теме я напишу про текстуры и дам на них адресаты и также напишу как переводить текстуры из фотошопа в формат *vtf

Создание текстур и материалов под Source

Каждая текстура в Source состоит из двух файлов: *.vtf и *.vmt; никакие другие графические форматы не поддерживаються.


Первым делом разберемся с *.vtf (расшифровываеться как Valve Texture File) - в этом формате храниться сама текстура. Проще всего сконвертировать вашу текстуру в этот формат с помощью VTF Plug-In for Photoshop. Установите этот плагин по инструкции идущей с ним - и сможете открывать/сохранять vtf-текстуры Photoshop-ом. Помните, что размеры сторон текстуры могут быть только такими: 32, 64, 128, 256, 512, 1024, 2048 пикселей. При попытке сохранить текстуру другого размера вы получите ошибку "Couldn,t save image as .vtf, because image width is not a power of two" (рус. "Не могу сохранить текстуру, потому что ширина(высота) изображения не являються степенью двойки"). Опции, доступные при сохранении в формат VTF:



Чтобы не ломать моск над этими всеми опциями выбирайте в верхней строке Template (рус. "шаблон") значение Compressed texture (рус. "сжатая текстура"). Выбор этого шаблона автоматически расставит все галочки и опции в нужные позиции. Жмите "Ок" и получите свою текстуру в формате vtf; пусть имя будет wall.vtf.

Теперь разберемся со вторым необходимым файлом - *.vmt (расшифровываеться как Valve MaTerial - файл материала). Это текстовый файл с описанием свойств текстуры; редактируеться блокнотом или чем вам удобно. Движок Source (а также все утилиты из SSDK, например Hammer) не увидит вашу vtf-текстуру до тех пор, пока вы не создадите к ней файл материала vmt. Создайте текстовый файл, переименуйте его в "wall.vmt" и скопируйте туда следующий текст:

LightmappedGeneric
{
"$basetexture" "wall" //где "wall" - имя текстуры wall.vtf без ".vtf"
"$surfaceprop" "concrete" //где "concrete"(рус. "бетон") - тип поверхности
}
Вот для начала и все, остаеться только скопировать эти два файла (wall.vtf + wall.vmt) в папку "materials" вашего мода или игры, под которую вы делаете карту. Перезапустите Hammer - и вы можете найти свою текстуру в общем списке текстур. Если вы положите эти файлы в какую-нибудь папку внутри папки materials - вы не увидите текстуру в игре, вместо неё будут фиолетовые квадраты.

Все о формате VMT.

В статье Создание текстур и материалов под Source мы сделали простейший файл материала wall.vmt; разберем его содержимое:

LightmappedGeneric Шейдер
{ {
"$baseTexture" "wall" "$Параметр" "значение параметра"
"$surfaceprop" "concrete" "$Параметр" "значение параметра"
} }
Что такое файл материала? Это текстовый файл c расширением .vmt; его содержимое начинаеться с названия используемого шейдера, далее в в фигурных скобках идут параметры (их может быть несколько десятков); имя vtf-текстуры являеться всего лишь одним из параметров. Вы можете указать имя и путь к любой текстуре, в том числе и находящейся в GCF-файле вашей игры. Точно также можно подключить любую карту нормалей или отражений к вашей текстуре - т.е. файл материала может быть очень гибким и удобным инструментом, позволяющим скомбинировать что угодно с чем угодно. В списке текстур хаммера отображаеться имя файла материала vmt, а не имя подключенных в нем текстур.

Разберем по порядку шейдеры, параметры и дополнительные опции и фичи.

Шейдеры
Шейдер - это программа рендеринга текстуры. Вписав имя нужного шейдера в файл материала мы определим как текстура будет обрабатываться Source и рендериться в игре, какие параметры будут доступны. Для каждой задачи есть оптимальный шейдер - выбирайте какой вам нужен из списка:


LightmappedGeneric - "С наложением карты освещения; базовый тип". Предназначен для текстур, накладываемых на браши/дисплейсмент (на 3D-моделях не работает). На текстуре будет реалистичное освещение, тени. Почти все браши, которые вы видели в Half-Life2, используют этот шейдер.


VertexLitGeneric - "Вертексное освещение; базовый тип". Предназначен исключительно для текстур, используемых на 3D-моделях. Отсуцтвуют собственные тени (модель не может отбрасывать тень на саму себя), рассчет освещенности/затенения такой текстуры выполняеться по упрощенным алгоритмам. Почти все модели, которые вы видели в Half-life2 используют этот шедер. Если наложить текстуру с таким шейдером на браш - в игре яркость текстуры будет меняться от черной до белой, т.е. будет некрасивый глюк.


UnLitGeneric - "Без освещения; базовый тип". Текстуры с этим шейдером игнорируют освещение (никакого изменения яркости и без теней - как нарисуете текстуру в фотошопе, так она и будет выглядеть в игре; карты нормалей также с этим шейдером не работают). Используеться в "неоновых" текстурах, лампах и текстурах неба (skybox); работает как на 3D-моделям(требуеться параметр "$model" 1 в vmt) так и на брашах/дисплейсменте.


WorldVertexTransition - "Управляемое смешивание двух текстур". Этот шейдер предназначен для смешивания двух текстур на дисплейсменте в hammer. С помощью Paint alpha tool вы можете кистью стирать верхнюю текстуру в нужных местах - под ней будет видна нижняя текстура. Таким образом делаеться плавный переход от одной текстуры к другой (от земли к листьям например). Работает только на дисплейсментах; хотя в общем то работает и на брашах - но в консоли пишеться о скором отключении этой возможности в движке Source.


Water - "Вода". Этот шейдер предназначен для текстуры воды - соответственно может быть использован только тем же образом и с теми же тонкостями, как и штатные текстуры воды. Имеет большой набор параметров; работает только на брашах в hammer .


Refract - "Преломление". Этот шейдер предназначен для создания прозрачных преломляющих текстур типа рельефного стекла или витража. Имеет большой набор параметров. Работает и на брашах(требуеться превратить браш в ентитю func_brush) и на моделях.

Полный список шейдеров (на англ.) c официального сайта по SSDK. Если вы можете описать какой-нибудь из них и привести картинку-пример - это будет хорошим делом, т.к. вышеописанные шейдеры - это все что я знаю .

Параметры

Параметры
Параметры - определяют какую текстуру использовать и какие эффекты на неё накладывать; "файл материала" потому так и называеться, что в нем с помощью параметров мы воссоздаем реальный материал, подключая по мере надобности различные эффекты (отражения, прозрачность, изменения цвета, анимацию и т.п), текстурные карты и задаем численными значениями силу их действия.

"$basetexture" "путь/имя_текстуры" - подключает указанную vtf-текстуру. Путь всегда указываеться относительно папки "materials"; по этому если текстура просто лежит в папке "materials" - достаточно вписать имя текстуры, в нашем примере "$basetexture" "wall"(расширение ".vtf" указывать не надо). Однако если мы положим vtf-текстуру в какую-нибудь подпапку (например в "my_textures"), нужно будет указать путь к ней - "$basetexture" "my_textures/wall". Если вы хотите подключить какую-нибудь текстуру, лежащую внутри gcf-файлов - укажите путь к ней относительно папки "materials" внутри gcf, например "$basetexture" "Wood/cabinets01a". Главное помните, что если вы делаете карту под half-life2 - вам доступно содержимое gcf-файлов только от HL2. Пробелы и русские символы в именах файлов и папок не допустимы; если вы неправильно укажете путь/имя текстуры - в игре вы увидите фиолетовую "шашечную" текстуру-заплатку.
"$basetexture2" "путь/имя_текстуры" - подключает вторую указанную vtf-текстуру. Этот параметр нужен только для шейдеров, использующих две текстуры (как вышеописанный WorldVertexTransition).

"$surfaceprop" "материал" - задаем материал, который ближе всего подходит к нашей текстуре. Впишем "metal"(металл) - и браш с такой текстурой будет давать искры при попадании в него пули, звук хотьбы по такому брашу будет соответственно "металлический", пули будут плохо пробивать даже при малой толщине, оставляя характерные вмятины, в помещении из такой текстуры будет "металлическое" эхо, сила трения будет средняя и т.д.; впишем "glass"(стекло) - и вместо вмятин от пуль будут характерные трещины, звук хотьбы по такому брашу будет "стеклянным", пули будут пробивать его значительно лучше, эхо другое, сила трения другая и т.д. Список поддерживаемых Source материалов:
Бетон, камни, скалы: Baserock Boulder Brick Concrete Concrete_block Gravel Rock
Жидкости: slime water wade
Металлы: canister chain chainlink combine_metal crowbar floating_metal_barrel grenade gunship metal metal_barrel metal_bouncy Metal_Box metal_seafloorcar metalgrate metalpanel metalvent metalvehicle paintcan popcan roller slipperymetal solidmetal strider weapon
Разное: brakingrubbertire cardboard carpet ceiling_tile combine_glass computer default default_silent floatingstandable glass glassbottle item jeeptire ladder no_decal paper papercup plaster plastic_barrel plastic_barrel_buoyant Plastic_Box plastic player player_control_clip pottery rubber rubbertire slidingrubbertire slidingrubbertire_front slidingrubbertire_rear
Органика: alienflesh antlion armorflesh bloodyflesh flesh foliage watermelon zombieflesh
Снег, лед: snow ice
Земля, трава, грязь: antlionsand dirt grass gravel mud quicksand sand slipperyslime tile
Древесина, ящики: wood Wood_Box Wood_Crate Wood_Furniture Wood_lowdensity Wood_Plank Wood_Panel Wood_Solid

Если не указывать в файле материала параметр "$surfaceprop" "материал" то Source автоматически задаст этой текстуре свойства материала "default"(рус. "по умолчанию"). Если вы делаете свой мод, вы можете сами создавать дополнительные материалы и назначать им свойства и звуки - см. файлы scripts/surfaceproperties.txt, scripts/surfaceproperties_hl2.txt и scripts/surfaceproperties_manifest.txt (в этих же файлах можно посмотреть полный список свойств каждого материала).

"$envmap" "env_cubemap"
"$envmaptint" "[.число .число .число]"
"$envmapmask" "путь/имя_карты_отражений"
"$basealphaenvmapmask" "1"
"$normalmapalphaenvmapmask" "1"
"$envmapcontrast" "число"
"$envmapsaturation" "число"
"$envmapmaskframe" "номер_кадра"
"$envmap" "путь/имя_текстуры_отражения"

Группа параметров, подключающих и настраивающих отражения (блеск, зеркальность) на вашей текстуре.


"$alpha" ".число"
"$translucent" "1"
"$alphatest" "1"
"$translucent_material" "путь/имя_материала"
"$additive" "1"
Группа параметров, тем или иным способом делающих текстуру прозрачной.


"$selfillum" "1"
"$selfillumtint" "нет_данных"
"$hasselfillum" "1"
Группа параметров, включающих излучение света этой текстурой.

"$bumpmap" "путь/имя_карты_нормалей" - Подключает карту нормалей для создания рельефа на текстуре.
"$bumpmap2" "путь/имя_карты_нормалей" - Подключает вторую карту нормалей; Этот параметр нужен только для шейдеров, использующих две текстуры (как вышеописанный WorldVertexTransition) - вторая карта нормалей наложиться на вторую текстуру.
"$color" "[.число .число .число]" - Изменяет цветность и яркость текстуры - эти три числа управляют RGB. Например впишите "[.2 .2 .2]" - и текстура будет всего 20% яркости (R=0.2 G=0.2 B=0.2). Впишите "[1 0 0]" - и текстура станет красного цвета (R=1 G=0 B=0). Этот параметр пригодиться в том случае, если сама текстура находиться в gcf-файле (просто создайте к ней vmt-файл и измените в нем цвет этой текстуры - вуаля, готова "новая" текстура). Персонально я использую этот метод для экономии веса карты под CSS - зеленую текстуру радара можно сделать с помощью этого параметра из нормальной текстуры радара - прописав "$color" "[.4 1 .4]" в втором vmt-файле вместо того, чтобы в фотошопе делать еще одну текстуру зеленого цвета.
"$detail" "путь/имя_текстуры" - накладывает детальную текстуру (микрорельеф). Подробнее см. статью Детальные текстуры (detail textures).
"$detailscale" 5 - задает количество повторений детальной текстуры на одно повторение основной текстуры.
"$nocull" "1" - текстуры с таким параметром рендеряться с обоих сторон полигона. Используеться для листвы деревьев или крошащихся стекол.
"$decal" "1" - указывает на то, что данная текстура будет декалью.
"$decalscale" "число" - размер декали в игре. Т.к. декали (в отличие от оверлеев) не могут быть масштабируемы в hammer - размер декали как раз и задаеться этим параметром. В качестве "числа" могут использоваться целые числа (1-2-3-10 и т.п.) и дробные (0.1, 0.25 и т.д.).
"$model" "1" - указывает на то, что данная текстура накладываеться на 3D-модель или брашевую модель (на func_brush к примеру).


"$bluramount" "число"
"$refractamount" ".число"
"$refracttinttexture" "путь/текстура"
"$dudvmap" "путь/имя_DUDV_карты"
"$refracttint" "{число число число}"

Группа параметров, специфичных для вышеописанного шейдера Refract. Подробно описаны в статье Преломляющие текстуры(refract).


"$abovewater" "1_или_0"
"$bottommaterial" "путь/материал"
"$dudvmap" "путь/имя_DUDV_карты"
"$fogcolor" "{число число число}"
"$fogenable" "1_или_0"
"$fogend" "(число_в_юнитах_хаммера)"
"$fogstart" "(число_в_юнитах_хаммера)"
"$forcecheap" "1_или_0"
"$forceexpensive" "1_или_0"
"$reflectamount" (float)
"$reflectentities" "1_или_0"
"$reflecttexture" "источник_отражений"
"$reflecttint" "{число число число}"
"$refractamount" "число"
"$refracttexture" "источник_преломлений"
"$refracttint" "{число число число}"

Группа параметров, специфичных для вышеописанного шейдера Water. Подробно описаны в статье Вода: текстуры и материа

Сдесь вы можете ознакомиться с полным списком всех доступных параметров (на англ.).

Proxies

Proxies - скрипты, выполняющие различные действия с вашей текстурой. Малоисследованная область параметров, по которой практически нет документации даже на английском. Они могут быть добавлены в любой файл материала, см. синтаксис в приведенных ниже примерах.

На текущий момент известно, что proxies могут:

Анимировать многокадровую текстуру с указанной частотой кадров(основное их применение)
Вращать/скроллить обычную текстуру с указанной скоростью
Анимировать многокадровую текстуру normal map (например волны на воде в half-life 2 или преломляющие стекла с движущимся преломлением (комбринские блок-посты))
Менять скейл текстуры без перекомпиляции карты
Менять скейл normal map/specular map относительно текстуры, на которую они наложены
Менять прозрачность текстуры в зависимости от расстояния до игрока (!) - это вы видели в half-life2, энергетические барьеры сделанны именно так.
Анимировать многокадровую текстуру по команде от триггера (см. статью Переключающаяся текстура на браше (Toggle Texture))
Делать разбиваемую текстуру (крошашиеся стекла).

Прокси вращения текстуры:

LightmappedGeneric
{
"$basetexture" "путь/имя_текстуры"
"$myRotation" 10 //скорость вращения, градусов в секунду (?).
"Proxies"
{
"Sine"
{
"resultVar" "$myRotation"
"sineperiod" 20
"sinemin" -180
"sinemax" 180
}
"TextureTransform"
{
"rotateVar" "$myRotation"
"resultVar" "$basetexturetransform"
}
}
}


Прокси изменения скейла карты отражений (specular map) относительно основной текстуры (т.е. повторение карты отражений n раз на один повтор основной текстуры):

LightmappedGeneric
{
"$basetexture" "путь/имя_текстуры"
"$envmap" "env_cubemap"
"$envmapmask" "путь/имя_карты_отражений"
"$envmapmaskscale" "5" //количество повторений карты отражений
"Proxies"
{
"TextureTransform"
{
"scaleVar" "$envmapmaskscale"
"resultVar" "$EnvmapmaskTransform"
}
}
}


Прокси изменения скейла normal map относительно основной текстуры (т.е. повторение карты нормалей n раз на один повтор основной текстуры):

LightmappedGeneric
{
"$basetexture" "путь/имя_текстуры"
"$bumpmap" "путь/имя_карты_нормалей"
"$bumpscale" "4" //количество повторений карты нормалей
"Proxies"
{
"TextureTransform"
{
"scaleVar" "$bumpscale"
"resultVar" "$bumpTransform"
}
}

Служебные параметры

Служебные параметры - будучи добавленными в фаqл материала вашей текстуры обеспечивают дополнительные функции:


"%detailtype" "имя_группы_травы_из_файла_detail.vbsp" - этот параметр сделает спрайтовую траву на вашей текстуре (работает только на дисплейсментах, на обычных брашах трава не появиться). Подробнее вы можете узнать в статье Спрайтовая трава.
"%keywords" "ключевое_слово" - заданное "ключевое_слово" используеться для облегчения поиска в списке текстур Hammer-а; ключевых слов может быть несколько, указываються через запятую. Например у Valve все текстуры разложены по папкам с названиями материала текстур ("wood","rock","concrete" и т.п.) - а ключевые слова описывают, на какой карте/эпизоде они используються: "%keywords" "c17downtown,c17industrial" . Если не понятно - не важно, эти ключевые слова становяться полезными только при действительно большом обьеме текстур.
"%tooltexture" "путь/имя_изображения" - вы просто рисуете картинку-символ в фотошопе, сохраняете её в формат vtf и подключаете этим параметром в нужном файле/ах материалов - и в списке текстур Hammer-a видите её, а не изображение текстуры. Эта подключенная картинка видна ТОЛЬКО в списке текстур hammer-a, в игре/окне 3D-вида ваша текстура будет видна как обычно.
"%notooltexture" "1" - исключает текстуру из списка текстур в hammer.
"%compilepassbullets" 1 - указав этот параметр в файле материала вы сделаете его "прозрачным" для пуль в игре. По брашу, окрашенному такой текстурой можно ходить, от него отскакивают гранаты, он выглядит также как и обычный - но пули пролетают его насквозь без сопротивления и эффектов столкновения (искры и т.п.). Используеться в текстурах, накладываемых на кустарник или тонкие решетки заборов.
"%compileskip" 1 - сделать аналог текстуры toolsskip ; используеться также, как служебная текстура toolsskip.
"%compilesky" 1 - нет информации. Предположительно браш, окрашенный такой текстурой, будет рендериться также, как служебная текстура "toolssky".- т.е. размер текстуры на нем будет постоянным, вне зависимости от того, на сколько близко/далеко вы от этого браша.
"%compilenonsolid" 1 - браш, окрашенный такой текстурой, будет иллюзией (через него можно будет ходить, стрелять и т.д.).
"%compileclip" 1 - сделать аналог текстуры toolsclip ; в игре эта текстура не рендериться, но физбокс от неё остаеться - через неё не проходят пули и гранаты, игроки и NPC.
"%compilewater" 1 - этот параметр обязательно должен быть указан в файлах воды; по практическому применению нет информации, но предположительно - браш окрашенный такой текстурой будет работать также как и вода; т.е. снаружи будет выглядеть согласно главному файлу материала воды, а когда игрок зайдет в него ("погрузиться в воду") - будет запущен другой файл материала, указанный в главном файле материала. Законы физики в воде также другие, игрок может находиться там ограниченное время (иначе задохнеться) и т.д.
"%compilefog" 1- сделать аналог текстуры toolsfog ; по практическому применению нет информации.
"%compilehint" 1 - сделать аналог текстуры toolshint ; эта текстура будет использоваться для нарезки листьев видимости и не будет видна в игре.
"%compileladder" 1 - сделать аналог текстуры toolsladder ; эта текстура будет использоваться для создания лестниц и не будет видна в игре.
"%compilenodraw" 1 - сделать аналог текстуры toolsnodraw ; эта текстура будет использоваться для создания NODRAW-поверхностей, которые режут уровень на листья и обладают всеми свойсвами обычного браша, но не рендеряться - что повышает производительность.
"%compilenpcclip" 1 - сделать аналог текстуры toolsnpcclip; в игре браш, окрашенный такой текстурой, будет "стеной" с точки зрения NPC - для игрока же он будет невидим и не ощущаем.
"%compileorigin" 1 - сделать аналог текстуры toolsorigin ; в игре используеться также как и служебная текстура toolsorigin.
"%compileplayercontrolclip" 1 - сделать аналог текстуры toolsplayercontrolclip; в игре используеться также как и служебная текстура toolsplayercontrolclip.
"%compiletrigger" 1 - сделать аналог текстуры toolstrigger; в игре используеться также как и служебная текстура toolstrigger.
"%compiledetail" 1 - нет информации (func_detail!?).
"%compilewet" 1 - нет информации.

Сдесь вы можете найти более подробное описание tool textures (на англ). Приветствуеться любая проверенная информация по теме вышеописанных параметров.

Fallback-параметры

"Fallback material" - рус. "Обратно-совместимый материал". Они нужны для того, чтобы ваш навороченный материал(например с преломлениями, с картами нормалей и т.д.) имел запасной вариант для тех пользователей, видеокарты которых не поддерживают современные версии DirectX (как следствие - не умеют работать с картами нормалей, преломлениями и т.д.). Общий синтаксис таков:


"Шейдер"
{
"$Параметр" "значение параметра" //Это содержимое вашего типичного файла
"$Параметр" "значение параметра" //материала. Код fallback-совместимости
"$Параметр" "значение параметра" //вставляеться после всех параметров.
"Шейдер_DX81"
{
"$fallbackmaterial" "путь/имя_материала_совместимого_с_DirectX8.1"
}
"Шейдер_DX80"
{
"$fallbackmaterial" "путь/имя_материала_совместимого_с_DirectX8"
}
"Шейдер_DX70"
{
"$fallbackmaterial" "путь/имя_материала_совместимого_с_DirectX7"
}
"Шейдер_DX60"
{
"$fallbackmaterial" "путь/имя_материала_совместимого_с_DirectX6"
}
}
Также есть возможность организовать обратную совместимость удобнее, не создавая кучи файлов материалов обратной совместимости. Для этого нужно писать свой файл материала вот по такой логике:

Шейдер
{
"$Параметр" "значение параметра" //Параметры, поддерживаемые всеми
"$Параметр" "значение параметра" //версиями DirectX (от 6й до 9.х)
"Шейдер_DX9"
{
"$Параметр" "значение параметра" //Сюда впишем параметры, которые
"$Параметр" "значение параметра" //поддерживаються только в DirectX 9
}
"Шейдер_DX8"
{
"$Параметр" "значение параметра" //Cюда впишем параметры, которые
"$Параметр" "значение параметра" //будут совместимыми с DirectX 8
}
"Шейдер_DX7"
{
"$Параметр" "значение параметра" //Cюда впишем параметры, которые
"$Параметр" "значение параметра" //будут совместимыми с DirectX 7
}
"Шейдер_DX6"
{
"$Параметр" "значение параметра" //Cюда впишем параметры, которые
"$Параметр" "значение параметра" //будут совместимыми с DirectX 6
}
У некоторых шейдеров нет разницы между directX 8.1 и 8.0 или там 6.0 и 7.0 - у них не будет поддержки параметра "Шейдер_DX81", а будет только "Шейдер_DX80" или "Шейдер_DX60" - список поддерживаемых параметров по каждому шейдеру можно посмотреть тут (на англ).


Дополнительная информация

Порядок поиска движком Source ресурсов при загрузке карты: сначала - внутри самого файла карты (внутри BSP), потом - внутри папок игры (materials, models, sounds и т.п.), в конце - внутри gcf-файлов игры. Если необходимый ресурс (текстура, модель, звук и т.п.) находитсья в одном из этих мест - поиск останавливаеться и Source загружает этот ресурс, потом переходит к поиску следующего ресурса по тому же алгоритму и так пока все не загрузит.
Допустим вы хотите заменить текстуру у модели. Все бы хорошо, но модель - стандартная и лежит соответственно в gcf-файле игры. И текстура к ней лежит там же. Можно вытащить модель и текстуры к ней, декомпилировать модель, скомпилировать её заново, указав использовать новые текстуры. Но заменить текстуру можно проще - если вы создадите одноименные файлы материалов и положите их в одноименные папки - при загрузке уровня Source использует их, а не те, что лежат по такому же пути в gcf. Скачайте любой "скин" из интернета и посмотрите на это вживую.
Точно также можно подменить модель или звук, лежащие в gcf-файлах: просто поместите по такому же пути файлы с такими же названиями - (звуки - в папке sounds, модели - в папке models и т.п.).

Где искать фото-референсы

Фотографии на все темы

http://search.deviantart.com/ - 37 млн. работ (рисунки всех типов, флешки, фотки, дизайн и т.п.) на май 2007го. Я всегда начинаю поиск оттуда, т.к. ДевиантАрт - это художественный ресурс, что дает преимущество в том плане, что люди стараються выкладывать туда красивое. А красивый референс - это уже полдела. Недостатки ресурса - ключевые слова; если на платных ресурсах при выкладывании фотки стараютсья максимально подробно описать материал, фактуру и т.п. обьекта, то на ДевиантАрте ессно такого не делают, это просто большая галерея художников и творческих людей. По этому ища, допустим, референсы меди - вы можете ввести слово "copper" в поиск и получить шишь, или ввести название какогонибудь медного предмета - монеты, подсвечники, посуда - и получить кучу красивых фоток этих предметов, многие из которых как раз из той самой меди. Такой "ассоциативный" поиск еще пригодиться вам. Также помните, что незарегистрированным пользователям сначала показываеться работа промежуточного размера(~450х450 пикс) и лишь кликнув на неё вы увидите фотку-оригинал.

http://images.google.ru/ - поиск картинок по всей сети мира. После вывода результатов поиска у вас есть возможность выбрать, какого размера картинки выводить - только большие, только средние, только маленькие. Хорошо ищет референсы и по русским словам.

http://bbs.nashalife.ru/showthread.p...threadid=28860 - "Идеи для маппинга (архитектура, дизайн)" - тема на форуме NashaLife.

http://www.cydonian.com/photos/ - Небольшое количество индастриал фотографий и текстур (нетайленных).

http://www.afflict.net/option_1/option_1.htm - небольшой сборник текстур (нетайленных).

http://www.3dimplant.com/images.php - небольшой сборник текстур (нетайленны) для скачивания необходима регистрация.

http://www.texturewarehouse.com/gallery/index.php - небольшой зборник разнообразных фотографий для создания текстур.
__________________
http://theprogamers.ru - мой портал про cs 1.6 скоро будет еще WoW
NecRoMat вне форума  
Отправить сообщение для NecRoMat с помощью ICQ Ответить с цитированием