Противники подхода "каждая модель содержит встроенные текстуры" упирают на то, что эти текстуры потенциально могут быть использованы вообще где угодно, а не только в этой модели. И в качестве реального примера приводят руки игрока от первого лица, где действительно используется одна и та же текстура, а когда я их спрашиваю: "а еще примеров можно?", начинают нести какой-то трэш в стиле "а вот я щас возьму текстуру кирпичей и натяну её на персонажа". Ну то есть всегда приводится один и тот же пример. Немного подумав и поанализировав я пришёл к выводу, что в той же параное, например, есть еще одно место, где действительно одна и та же текстура используется повторно - это трубы.
Но с системой скейла по трём осям надобность иметь одинаковые модельки, вытянутые в длину или наоборот сплющенные. полностью отпадает.
Зато исчезает необходимость искать эти чортовы текстуры по разным папкам, если вы захотели с кем-нибудь поделиться своей моделькой.
Причём текстуры отдельно от модели кладут по идее в сорсе, ну возможно в сталкере, т.е. в готовой игре. А в тех же клонах ку3 и д3 предпочитают держать текстуры одной модели в той же папке что и сама модель, прописывая пути из другой модели в шейдере. Этот подход еще смешнее на самом деле - вот мы удалили папку с моделью и по всей игре исчезли текстуры, которые использовали другие модели, зачем-то залезая в чужую папку.
Вообщем эта тема - ваш последний шанс пофлудить и порассуждать об шареных текстурах на моделях. Моё мнение прежнее - ничего кроме путаницы этот подход не приносит.
Да что тут рассуждать? Вот если бы товарищ Скрама был жив, ну или по меньшей мере посещал наш форум, то рассказал бы, что в своих проп-моделях регулярно использовал обычные текстуры уровней. Да, собственно, и модели он делал в редакторе уровней, экспортируя потом в ase. Поэтому в волатиле сохранился этот подход, и текстуры с моделями разделены на самом верхнем уровне - модели в папке models (и подпапках), текстуры в папке textures (и подпапках). Модель в итоге может брать абсолютно любые текстуры, какие ей заблагорассудятся - хоть текстуры спецэффектов, чтобы потом deformvertex-autospritом рисовать полноценные glow-спрайты, не тратя ни одного эдикта (что безусловно должно порадовать нашего иксвайдера, например).
Я соглашусь с тем, что в ку3 и д3 подход идиотский (хотя ещё больший идиотизм - удалять какие-то модели из игры и ожидать, что она будет правильно работать). Равно как и в халфе, где приходится копировать одну и ту же текстуру в разные модели - если это какая-нибудь glue-текстура, т.е. используемая для закраски малозначимых мест на развёртке. А вот в волатиле - подход самый грамотный и удобный, на мой взгляд.
Не удивлюсь, если Дядя Миша в итоге заберёт его себе в ксаш.
Что-то мне подсказывает, что если на модельки пропсов подходят текстуры с планарных фейсов, то это в конечном итоге означает крайне низкую детализацию этих самых пропсов, ну примерно как и в самой Q3. Другой, напрашивающийся очевидный вывод - это низкодетализированные пропсы можно сделать брашами и обратить их в func_detail.
Добавлено 13-10-2016 в 12:51:
В ку3 был пропс скелетика. Ни разу не видел, чтобы его текстуру юзали где-то еще, кроме собственно, одной модельки. Потому что как только модель набирает достаточное число полигонов, текстура автоматически становится уникальной и не реюзабельной.
Дядя Миша писал: Потому что как только модель набирает достаточное число полигонов, текстура автоматически становится уникальной и не реюзабельной.
Совершенно бездоказательное утверждение, взятое с потолка. Сразу видно человека, который ни разу не сделал ни одного пропа сложнее коробки (да и за последнюю не уверен).
Если ты делаешь проп, который ставится строго в определённое место на уровне, то тебе, вполне вероятно, придётся "подружить" его с прилегающими брашами или другими пропами. И тут почти наверное понадобятся их текстуры. Будешь делать копии?
Этот вопрос я поднимал на хлру лет эдак 10 назад... или больше.
Шаред-текстуры/анимации/прочие ресурсы - нужны и быть должны. Вопрос только в наследовании. Идиотизмов морра/обливона/скурима нам не надо.
Дядя Миша писал: В ку3 был пропс скелетика. Ни разу не видел, чтобы его текстуру юзали где-то еще, кроме собственно, одной модельки.
Обратите внимание, использован классический приём демагога: в ответ на посыл "существуют модели, где текстуры используются повторно" демагог сообщает о существовании модели, где текстуры повторно не используются, что изначально вовсе не оспаривалось.
Цитата:
Дядя Миша писал: эта тема - ваш ... шанс пофлудить
У меня нет желания флудить и упражняться в демагогии, поэтому я, пожалуй, уйду из темы.
XaeroX писал:
в волатиле сохранился этот подход, и текстуры с моделями разделены на самом верхнем уровне - модели в папке models (и подпапках), текстуры в папке textures (и подпапках)
XaeroX писал: Совершенно бездоказательное утверждение, взятое с потолка.
То есть ты отвергаешь принципиальную разницу между планарными фейсами и трианглами в составе модели? На модели развертка обычно ложится и зачастую в диапазон 0-1. А на планарных фейсах репит-текстура.
Ясно же дело, что репит-текстуру куда как легче заменять на любую другую, чем то, что тщятельно наложено на каждый треугольничег и подогнано. Исключение составляют только примитивные пропсы, в форме змеипараллелепипеда. Пока писал, вспомнил, что в той же параное есть такие прикладки из моделек, которые прикладываются навроде плинтуса между стенкой и полом. Ну это вроде как небольшие насыпи из мусора, сами понимаете. И всё равно там своя отдельная текстура.
Так что мой вывод таков - если в игру можно вкомпиливать модельки, навроде как обычные браши (а в ку3 можно), то разумеется шареные текстуры полезны. Но если же нельзя, то их следует делать брашами и обращать в функ_детайл и следовательно щареные текстуры смысла не имеют. Иными словами нельзя об этом спорить не имея в виду конкретный движок. Пожалуй так будет правильно.
Цитата:
XaeroX писал: ни разу не сделал ни одного пропа сложнее коробки (да и за последнюю не уверен).
Мой подвиг заключается в том, что я портировал редемир из UT99 в ксашмод. Это умственное упражнение навсегда отбило у меня охоту моделить.
Ну прям как в сорсе - в папке materials лежит файлик, описывающий текстуру, и сама текстура. В папке models у модели стоит путь до текстуры. В некоторых рескинах под ксс кидают новую текстуру в материалы, а потом хексом в модели изменяют под новый путь до этого материала.
В параное память тратится на текстуры. А что если у некоторых моделей одинаковые бамп или какие-нибудь нейтральные общие текстуры? Они же ведь движком не различаются и он их всех запихает
ILZM писал: А что если у некоторых моделей одинаковые бамп или какие-нибудь нейтральные общие текстуры?
Цитата:
Представьте себе, что вдруг потребуется немедленная и одновременная
уплата всех долгов в мире! - воскликнул он слабеньким, но преисполненным
ужаса голосом. - Что тогда будет при существующем порядке вещей?
Я лично сделал так - текстуры в папке с игрой могут дублироваться, но при загрузке они кэшируются, соответственно в памяти остается только один экземпляр. Пока что проверка чисто по пути, то есть в кэш как ключ записывается полный путь до текстуры. Но теоретически можно сделать сравнение raw массива и тогда полностью исключить совпадение текстур в памяти. Правда какое время оно будет грузится...
Встроенные текстуры - лишнее неудобство при разработке. Сидишь собираешь-разбираешь модели.
Всё для того, чтобы делиться моделями? Не слишком ли редкий кейс?