Для тех, кто любит рисовать текстуры

Автор dSpair, 06 ноября 2004 01:00:29

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

DimaS

Потолки еще могут быть наклонными (треугольными).


Zontik

ЦитироватьНеужели такая проблема создать отдельное семейство? У меня некоторые насчитывают по 1-3 текстур
Soul_Tear, пока не поздно, хочу тебя предостеречь: ты на скользком пути.
Ты ведь делаешь кампанию?
В игре существует ограничение на использованные палитры. Их может быть только 256. И это относится ко всей кампании в целом. Причем сюда включаются не только семейства текстур, но и элементы интерфейса (карты, задания, стартовые экраны) и все текстуры, использованные на объектах.
256 - это нормально для отдельной миссии, немного проблематично для двух (в Истории Короля я уложился с трудом, оставив мизерный запас на случай незнания чего-либо)... Для большой кампании - это хроническая головная боль. По крайней мере, должна быть таковой.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#137
Семейств у меня около дюжины, а про объекты не понял. У тебя в "Короле" 840 текстур объектов, ты им всем общую палитру задавал? И как ты это делал?
Например, если объединить 100 разных текстур в одно семейство, затем открыть в фотошопе файл full, сохранить его палитру, и далее к каждой из этих ста текстур подгружать сохраненную палитру - это тот путь? Если так, то можно сколько угодно текстур грузить под одной палитрой, ведь именно по такой схеме работает загрузка семейств. Тогда подвох пока не ясен.

Zontik

ЦитироватьУ тебя в "Короле" 840 текстур объектов, ты им всем общую палитру задавал?
Упаси бог, нет, конечно. Но собственную палитру используют буквально единицы. Остальные пользуются или общей палитрой Thief, или одной из семейств FAM (наиболее подходящей по цвету).
ЦитироватьНапример, если объединить 100 разных текстур в одно семейство, затем открыть в фотошопе файл full, сохранить его палитру, и далее к каждой из этих ста текстур подгружать сохраненную палитру - это тот путь?
Да, это тот путь. Только невероятно,чтобы 100 взятых наугад текстур могли обойтись единственной общей палитрой - разве что лишь в том случае, если все эти 100 текстур известны заранее и общая палитра будет создана на основе адаптации к ИХ цветам. Что бывает на практике? Собрать все текстуры до строительства уровня невозможно. Значит, приходится добавлять к уже существующим семействам, если не хочешь без конца плодить новые. Но у всех семейств свои особенности: скажем, семейство Wooden содержит гамму красно-коричневых оттенков, но имеет заметный провал в области светлых цветов. И если у тебя текстура светлого потолка, которую надо добавить, то при использовании палитры Wooden она вся рассыпется на разноцветные точки. Придется подбирать другую палитру, где есть множество оттенков белого. И так без конца, а когда семейств становится довольно много, подбор превращается в пытку: переберешь все, а потом окажется, что ни одна не подошла.
С объектами то же самое, но там есть еще спасательный круг в виде разрешения использовать формат TGA. И тем не менее: как только ты помещаешь на уровень какой-либо стандартный объект из оригинальной игры -  будь готов, что твой счетчик текстур скакнет вверх на 1, 2, 3, а то и на 5 единиц. Доходило до того, что мне приходилось переделывать стандартные текстуры Thief, адаптируя их под собственные палитры.
Команда palmgr_count мне теперь разве что не снится.
А подвох в том, что каждая миссия в кампании обычно использует собственный набор семейств, а счетчик - один на всех. Поэтому, чтобы хотя бы примерно оценить затраты на текущий момент, нужно открывать в редакторе ВСЕ миссии кампании подряд и только после открытия последней запустить команду проверки. Будет показано ОБЩЕЕ количество использованных палитр... за минусом элементов интерфейса, расходы на которые довольно сложно оценить. Ну а если при загрузке какой-то очередной миссии редактор вылетает - значит, все, перерасход.
Ну и самый надежный (и изуверский) способ проверить, все ли в порядке со счетчиком палитр - это пройти готовую кампанию до конца. Если не вылетит - то все в порядке.
Короче, я просто хотел сказать, что 256 - это безумно мало. Да, уложиться возможно (T2X тому пример). Но лучше знать об этой засаде с самого начала, чтобы потом не пришлось заново перекрывать текстурами всю кампанию.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#139
Стоп. А ты вообще как создаешь палитры? Из твоего поста у меня сложилось впечатление, что ты не знаешь о методе Nameless Voice'a. По-моему, это самый универсальный и безпроблемный способ, и в данном случае ничто не мешает совмещать несовместимые оттенки. Ты же на ttlg заходишь, и тема эта давно там висит, там где коды для bat-файлов и инструкции. Я когда здесь спрашивал про текстуры, DJ Riff пытался задать мне направление, но это был не совсем тот путь, возможно я не до конца разобрался, но в любом случае, этот путь слишком трудоемкий, чтобы быть быстрым. Уже потеряв почти все надежды, я забрел к нашим европейским друзьям и сразу же наткнулся на эту тему, ссылку не сохранил, но тему несложно найти. И оказалось, что грамотное создание семейства текстур - это проще, чем размещение объекта из иерархии в браши. Поэтому и сейчас не вижу никаких проблем: взять любые текстуры и перепрогнать их через код, потом скинуть все эти 100, 200, 1000 файлов в txt16 и идти за печеньками.
Я все дефолтные текстуры намерен заменить своими. Про команду проверки только сейчас узнал, как набрал оказалось, что на один недостроенный уровень уже 152 палитры, так бы я не вытянул конечно :)
А теперь с твоей наводкой проблема можно сказать уже решена, чего тебе и желаю.
Сейчас проверил, взял несколько разноцветных текстур и объединил в одно семейство:


Заменил ранние файлы, теперь счетчик показал 144. Время потрачено - пара минут. Разве не прелесть?

Zontik

C объектами проще. Во-первых, вообще можно использовать TGA, во-вторых, все файлы лежат в одной папке. Замена палитры у отдельно взятого файла ничего не портит.
С семействами текстур для брашей все не так. Если текстура изначально лежит в папке какого-то семейства (и использована где-то на уровне), трогать ее ты уже не моги. А ведь именно эти текстуры в основном и определяют вид уровня.
С текстурами, что на картинке, проблем и не должно быть. С этим даже тупой Фотошоп справится. Вот попробуй набросать пару десятков совершенно разноплановых текстур (трава, звездное небо, светящиеся окна на темной стене, пятна свежей крови) и создать одно общее семейство - увидишь, что будет.
Не в курсе насчет описываемого метода... используется какая-то специальная программа? А проверка на прозрачность цвета туда встроена? А то так вернешься с печеньками, а весь уровень в дырах. Крысы, наверное...
Короче, отвечая на вопрос: я создаю семейство, когда текстур накопится порядочно. Если их мало, подбираю максимально разноцветные. Если их совсем мало - в будущем неизбежны проблемы: новые текстуры на эту палитру ложиться не захотят.
Вот в том-то и проблема, что на определенном этапе можно только догадываться, в каких текстурах из тех, которых еще нет, возникнет необходимость.
Я пока на весь довольно большой уровень обошелся пятью или шестью семействами, включая пелену облаков (да, это отдельная палитра!), но ни одного объекта еще нет, впрочем, и ломаю голову над тем, как бы объединить два из них, случайно оказавшихся похожими.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

Цитата: Zontik от 27 марта 2012 17:02:05
Вот попробуй набросать пару десятков совершенно разноплановых текстур (трава, звездное небо, светящиеся окна на темной стене, пятна свежей крови) и создать одно общее семейство - увидишь, что будет.

Что будет - я тебе показал на скриншоте ;) Ну а если все-таки существуют какие-то отдельные моменты, то думаю, для них всегда хватит палитр, так что эта проблема, отнюдь не проблема.

Цитировать
Не в курсе насчет описываемого метода... используется какая-то специальная программа? А проверка на прозрачность цвета туда встроена? А то так вернешься с печеньками, а весь уровень в дырах. Крысы, наверное....

Удивлен, что ты не в теме. Пройдись по первым страницам гильдии редакторов, в заголовке что-то про палитры, автор NV, товарищ разработал несколько кодов, но я использую только один, код называется Family. Через блокнот делается bat-файл, вместе с текстурами кидается в папку с программой bright183, и по запуску family.bat генерируется семейство. Все, что надо сделать, это сохранить готовые текстуры в bmp и потрудиться запустить bat-файл, а затем удалить full.gif, если текстуры делались для объектов.
У тебя, кстати, в "Короле" такие gif-семейства были, я думал ты их и делал. Эта загадочная полосочка-палитра оказывается создается именно таким способом. А, например, в "Календре" палитры выглядели как мой скриншот, где все использованные текстуры переносились в один в файл. Хотя у меня этот номер не прошел, но сейчас уже неважно.

ЦитироватьКороче, отвечая на вопрос: я создаю семейство, когда текстур накопится порядочно. Если их мало, подбираю максимально разноцветные. Если их совсем мало - в будущем неизбежны проблемы: новые текстуры на эту палитру ложиться не захотят.
Вот в том-то и проблема, что на определенном этапе можно только догадываться, в каких текстурах из тех, которых еще нет, возникнет необходимость.
Я пока на весь довольно большой уровень обошелся пятью или шестью семействами, включая пелену облаков (да, это отдельная палитра!), но ни одного объекта еще нет, впрочем, и ломаю голову над тем, как бы объединить два из них, случайно оказавшихся похожими.

Слава небесам, что меня все это миновало, я бы наверное с ума сошел, так и не добившись результата. Но благодаря NV можно про все это забыть. Цвета сбиться не могут в принципе, потому что файл лишь меняет расширение и получает общую на все текстуры палитру, то есть включающую и его исходную, поэтому не обламывается ни на пиксель цвета. По крайней мере, мой глаз не в состоянии заметить разницу между оригиналом и модификацией.
Мне это помогло решить проблему с невозможностью загружать новые семейства, чем-то я сильно, видать, напортачил а выяснить так и не удалось, поэтому просто объединяю несколько семейств или добавляю в них отдельные текстуры. В этом случае иногда приходится заново обклеивать браши, зато выравнивание и масштаб не пропадают.
Единственной проблемой были некоторые текстуры, в основном на прозрачном фоне, когда после прогонки из bmp в gif картинка сдвигалась, однако если их правильно откадрировать все будет, как надо. На худой конец на такие текстуры так и быть можно выделить отдельную палитру, а подавляющее большинство легко сможет ограничиться и одной.

Zontik

ЦитироватьУ тебя, кстати, в "Короле" такие gif-семейства были, я думал ты их и делал. Эта загадочная полосочка-палитра оказывается создается именно таким способом.
Я их и делал. Естественно. Только вручную (выбирал "адаптированная" в Фотошопе). Но вот насчет полосочек... если честно, уже надоело рассказывать. Но, похоже, всегда будут находиться люди, которые этого еще не знают. Поэтому прошу прощения за многократный повтор...
Итак, "полосочка" не несет никакой полезной функции. Кроме зашитой в нее палитры, которая, однако, таким же в точности образом содержится и в любом другом файле семейства. Зачем движку нужен для чтения палитр отдельный файл - загадка, но зато тут его можно и нужно обломать по максимуму. Итак, в моем случае Full.gif (или Full.pcx, по желанию - вторые больше по объему, но зато лучше сжимаются) - это любая текстура семейства, выбранная наугад и уменьшенная до размеров 1х1 пиксель. А больше и не требуется. Причем какого цвета будет этот пиксель - движку абсолютно по барабану.
Подводя итог: Full.gif (pcx) - это НЕ палитра, а всего лишь dump-текстура. Палитра - это ее обязательная составляющая (как и у любой другой 256-цветной текстуры).
Возможно, единственная функция той самой "линеечки" - это визуальный контроль палитры (глянуть и понять, подходит ли она для нового семейства). Но в этом смысле она недостаточно информативна.
Цитироватьне обламывается ни на пиксель цвета.
По крайней мере, мой глаз не в состоянии заметить разницу между оригиналом и модификацией.
Последнее уточнение, разумеется, вернее утверждения в начале. При 256 цветах иного и быть не может. Но что есть Вор в целом, как не коллекция иллюзий?
И да, я не в теме, потому что даже на данный момент меня полностью устраивает ручной метод. Просто он требует чуть больше организованности, но это никогда не вредит. Хотя твой восторг меня заинтересовал. Наверное, посмотрю, что там такое и как работает.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

Не знаю, к чему ты это все написал, я тебе показал короткий путь, другое дело, что если торопиться некуда и хочется осмотреть достопримечательности по пути, то лучше, наверное, длинный :)

clearing


LongShad

Фу, пошлятина. Такое ощущение что из 2D-игры утянули.
Посмотрел текстуры, какие-то они не натуральные, искусственные.


Soul_Tear

Спасибо, есть из чего выбирать.