<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=90.150.213.198&amp;*</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=90.150.213.198&amp;*"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/90.150.213.198"/>
		<updated>2026-05-14T08:49:45Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%82%D1%80%D0%B0%D0%B2%D1%83_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C</id>
		<title>Глобальное озеленение, добавляем траву на уровень</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%82%D1%80%D0%B0%D0%B2%D1%83_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C"/>
				<updated>2009-01-05T09:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;90.150.213.198: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
 |''Автор:'' '''[[Участник:Neo|Neo][]]'''&lt;br /&gt;
 |}&lt;br /&gt;
__TOC__&lt;br /&gt;
В данном туториале я попытаюсь научить вас работать с детальными объектами. Пока это только трава и листья, но можно добавить мусор, который был в первых билдах, &lt;br /&gt;
но, конечно, при наличии соответствующих моделей.&lt;br /&gt;
&lt;br /&gt;
== Теория ==&lt;br /&gt;
В комплекте пакета SDK идёт уже откомпилированный и настроенный список детальных объектов([[Detail List]]), файл SDK/rawdata/detail_list.dti. Смысл Detail List заключается в привязке детальных объектов к цвету нарисованной особым образом текстуры, которая определяет положение и тип детального объекта на уровне.&lt;br /&gt;
&lt;br /&gt;
'''''Структура текстуры:'''''&lt;br /&gt;
*Цвет - определяет типа объекта в соответствии с Detail List.&lt;br /&gt;
*Альфа канал - определяет плотность объектов.&lt;br /&gt;
Не люблю теорию, поэтому переходим к практике, лучше один раз сделать, чем сто раз прочитать :)&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
Надеюсь у вас уже есть свой уровень на который вы хотите добавить траву и листья, я возьму свой тестовый уровень.&lt;br /&gt;
[[Изображение:SDK Level-Editor.jpg|thumb|500px|left|Level Editor с загруженным уровнем]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Рисуем детальную текстуру ===&lt;br /&gt;
[[Изображение:SDK-Deatil-List-Load.gif|thumb|left|Загрузка списка детальных объектов]]&lt;br /&gt;
[[Изображение:SDK-Details-Texture.gif|thumb|Детальная текстура]]&lt;br /&gt;
Первым делом надо нарисовать детальную текстуру для своего уровня, для чего она смотри в разделе &amp;quot;Теория&amp;quot;.&lt;br /&gt;
Перед тем как начать рисовать, узнаем какими же цветами мы можем рисовать, для этого:&lt;br /&gt;
&lt;br /&gt;
1. В Level Editore переключимся на режим редактирования детальных объектов;&amp;lt;br&amp;gt;&lt;br /&gt;
2. В группе DO Commands, нажмём Object List. Откроется редактор Detail Objects;&amp;lt;br&amp;gt;&lt;br /&gt;
3. Загрузим уже настроенный список деталей(SDK/rawdata/detail_list.dti).&lt;br /&gt;
&lt;br /&gt;
После загрузки списка в правой колонке вы увидите цвета и соответствующие им объекты, можно создавать новые цвета и им присваивать произвольные объекты, это даёт возможность иметь различные объекты в любых сочетаниях.&lt;br /&gt;
Ну что ж, теперь мы знаем какому цвету что соответствует можем приступить и к рисованию. Запустим Photoshop, создадим новый файл размером 512х512. Вообще размер может быть любым кратным степени двойки, т.е. 128х128, 512х512, 1024х1024 и т.д.&lt;br /&gt;
&lt;br /&gt;
Начинаем рисовать расположение объектов на уровне в соответствии с тем цветом, который назначен в редакторе Detail Objects. Напомню, что альфа канал отвечает за плотность объектов.&lt;br /&gt;
Мой вариант текстуры можно увидеть справа(рисовал для наглядности).&lt;br /&gt;
&lt;br /&gt;
Сохраняем получившуюся текстуру в папку SDK/import в формате Targa(TGA - 32bit/px, без сжатия).&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
=== Применяем детальную текстуру к уровню ===&lt;br /&gt;
{|align=left&lt;br /&gt;
 |[[Изображение:SDK-Find-new-texture.gif|thumb|left|200px|Редактор нашёл текстуру]]&lt;br /&gt;
 |-&lt;br /&gt;
 |[[Изображение:SDK-Properties-DO.gif|thumb|200px|left|Свойства детальных объектов]]&lt;br /&gt;
 |}&lt;br /&gt;
[[Изображение:SDK-Update-Image-Dialog.gif|thumb|300px|Диалог импорта текстур]]&lt;br /&gt;
&lt;br /&gt;
Переходим к работе с Level Editor-ом. Сначала добавим нашу текстуру в редактор, Images -&amp;gt; Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List.&lt;br /&gt;
Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша карта есть в списке текстур редактора. &lt;br /&gt;
Напоминаю, что редактор должен быть в режиме работы с детальными объектами.&lt;br /&gt;
&lt;br /&gt;
Лезем Tools-&amp;gt;Properties, либо просто нажимаем &amp;quot;Enter&amp;quot;, если не меняли настройки горячих клавиш. В свойствах детальных объектов нам необходимо выбрать в качестве базовой текстуры нашу, щёлкаем по полю Base Texture. &lt;br /&gt;
Откроется диалог Select Texture, в котором находим нашу текстуру.&lt;br /&gt;
&amp;lt;!--[[Изображение:SDK-Select-texture-Dialog.gif|thumb|300px|center|Диалог Select Texture]]--&amp;gt;&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
[[Изображение:SDK-Fill-Snap-List.gif|frame|Snap List -&amp;gt; Commands -&amp;gt; Make List From Selected]]&lt;br /&gt;
Теперь переключаемся на режим редактировани Object, выбираем объекты, которые хотим покрыть детальными объектами, т.е. в нашем примере, что на данном этапе выберем, то и будет покрыто травой. Переключаемся обратно в режим редактирования Detail Objects, необходимо заполнить Snap List, для этого даём команду Snap List -&amp;gt; Commands -&amp;gt; Make List From Selected.&lt;br /&gt;
&lt;br /&gt;
Список заполнен, проводим первую инициализацию(DO Commands -&amp;gt; First Initialize). В итоге у нас должно получиться что-то типа того, что изображено на левом скриншоте ниже, я специально вставил скрин исходника текстуры для сравнения.&lt;br /&gt;
&lt;br /&gt;
Работа закончена, осталось собрать и откомпилировать уровень.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
 |[[Изображение:SDK Level-Editor DO.jpg|thumb|500px|Вид на наш уровень сверху]]&lt;br /&gt;
 |[[Изображение:SDK Level-Editor DO zoom.jpg|thumb|500px|Более близкий взгляд]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Компиляция ==&lt;br /&gt;
Компиляция детальных объектов осуществляется компилятором xrDO_light. Т.е. после сборки уровня(Compile -&amp;gt; Build) компилируется уровень(xrLC), а потом просчитывается освещение для детальных объектов(xrDO_light). Таким образом, если пришлось поменять что-то в детальных объектах, нет необходимости заново компилировать уровень, достаточно просчитать освещение детальных объектов и всё, т.е. Compile -&amp;gt; Make Detail + xrDO_light&lt;br /&gt;
&lt;br /&gt;
Вот как это выглядит в игре.&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-12-07 03-13-49 (ai).jpg|thumb|400px|Детальные объекты в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-12-07 03-15-39 (ai).jpg|thumb|400px|Разная плотность детальных объектов]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория: SDK]]&lt;/div&gt;</summary>
		<author><name>90.150.213.198</name></author>	</entry>

	</feed>