HLFX.Ru Forum Страницы (3): [1] 2 3 »
Показать все 40 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Реюзабельность текстур в играх (https://hlfx.ru/forum/showthread.php?threadid=4870)


Отправлено Дядя Миша 13-10-2016 в 09:14:

Реюзабельность текстур в играх

Противники подхода "каждая модель содержит встроенные текстуры" упирают на то, что эти текстуры потенциально могут быть использованы вообще где угодно, а не только в этой модели. И в качестве реального примера приводят руки игрока от первого лица, где действительно используется одна и та же текстура, а когда я их спрашиваю: "а еще примеров можно?", начинают нести какой-то трэш в стиле "а вот я щас возьму текстуру кирпичей и натяну её на персонажа". Ну то есть всегда приводится один и тот же пример. Немного подумав и поанализировав я пришёл к выводу, что в той же параное, например, есть еще одно место, где действительно одна и та же текстура используется повторно - это трубы.
Но с системой скейла по трём осям надобность иметь одинаковые модельки, вытянутые в длину или наоборот сплющенные. полностью отпадает.
Зато исчезает необходимость искать эти чортовы текстуры по разным папкам, если вы захотели с кем-нибудь поделиться своей моделькой.
Причём текстуры отдельно от модели кладут по идее в сорсе, ну возможно в сталкере, т.е. в готовой игре. А в тех же клонах ку3 и д3 предпочитают держать текстуры одной модели в той же папке что и сама модель, прописывая пути из другой модели в шейдере. Этот подход еще смешнее на самом деле - вот мы удалили папку с моделью и по всей игре исчезли текстуры, которые использовали другие модели, зачем-то залезая в чужую папку.
Вообщем эта тема - ваш последний шанс пофлудить и порассуждать об шареных текстурах на моделях. Моё мнение прежнее - ничего кроме путаницы этот подход не приносит.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-10-2016 в 09:25:

Да что тут рассуждать? Вот если бы товарищ Скрама был жив, ну или по меньшей мере посещал наш форум, то рассказал бы, что в своих проп-моделях регулярно использовал обычные текстуры уровней. Да, собственно, и модели он делал в редакторе уровней, экспортируя потом в ase. Поэтому в волатиле сохранился этот подход, и текстуры с моделями разделены на самом верхнем уровне - модели в папке models (и подпапках), текстуры в папке textures (и подпапках). Модель в итоге может брать абсолютно любые текстуры, какие ей заблагорассудятся - хоть текстуры спецэффектов, чтобы потом deformvertex-autospritом рисовать полноценные glow-спрайты, не тратя ни одного эдикта (что безусловно должно порадовать нашего иксвайдера, например).
Я соглашусь с тем, что в ку3 и д3 подход идиотский (хотя ещё больший идиотизм - удалять какие-то модели из игры и ожидать, что она будет правильно работать). Равно как и в халфе, где приходится копировать одну и ту же текстуру в разные модели - если это какая-нибудь glue-текстура, т.е. используемая для закраски малозначимых мест на развёртке. А вот в волатиле - подход самый грамотный и удобный, на мой взгляд.
Не удивлюсь, если Дядя Миша в итоге заберёт его себе в ксаш.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-10-2016 в 09:51:

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

Добавлено 13-10-2016 в 12:51:

В ку3 был пропс скелетика. Ни разу не видел, чтобы его текстуру юзали где-то еще, кроме собственно, одной модельки. Потому что как только модель набирает достаточное число полигонов, текстура автоматически становится уникальной и не реюзабельной.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено mittorn 13-10-2016 в 09:59:

Дядя Миша
Если идёт речь о ксаше - то func_detail - плохой выход


Отправлено XaeroX 13-10-2016 в 10:21:

Цитата:
Дядя Миша писал:
Потому что как только модель набирает достаточное число полигонов, текстура автоматически становится уникальной и не реюзабельной.

Совершенно бездоказательное утверждение, взятое с потолка. Сразу видно человека, который ни разу не сделал ни одного пропа сложнее коробки (да и за последнюю не уверен).
Если ты делаешь проп, который ставится строго в определённое место на уровне, то тебе, вполне вероятно, придётся "подружить" его с прилегающими брашами или другими пропами. И тут почти наверное понадобятся их текстуры. Будешь делать копии?

__________________

xaerox on Vivino


Отправлено ~ X ~ 13-10-2016 в 10:24:

Этот вопрос я поднимал на хлру лет эдак 10 назад... или больше.
Шаред-текстуры/анимации/прочие ресурсы - нужны и быть должны. Вопрос только в наследовании. Идиотизмов морра/обливона/скурима нам не надо.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 13-10-2016 в 10:24:

Цитата:
Дядя Миша писал:
В ку3 был пропс скелетика. Ни разу не видел, чтобы его текстуру юзали где-то еще, кроме собственно, одной модельки.

Обратите внимание, использован классический приём демагога: в ответ на посыл "существуют модели, где текстуры используются повторно" демагог сообщает о существовании модели, где текстуры повторно не используются, что изначально вовсе не оспаривалось.
Цитата:
Дядя Миша писал:
эта тема - ваш ... шанс пофлудить

У меня нет желания флудить и упражняться в демагогии, поэтому я, пожалуй, уйду из темы.

__________________

xaerox on Vivino


Отправлено nemyax 13-10-2016 в 11:14:

Цитата:
XaeroX писал:
в волатиле сохранился этот подход, и текстуры с моделями разделены на самом верхнем уровне - модели в папке models (и подпапках), текстуры в папке textures (и подпапках)

Годно.


Отправлено Дядя Миша 13-10-2016 в 15:16:

Цитата:
XaeroX писал:
Совершенно бездоказательное утверждение, взятое с потолка.

То есть ты отвергаешь принципиальную разницу между планарными фейсами и трианглами в составе модели? На модели развертка обычно ложится и зачастую в диапазон 0-1. А на планарных фейсах репит-текстура.
Ясно же дело, что репит-текстуру куда как легче заменять на любую другую, чем то, что тщятельно наложено на каждый треугольничег и подогнано. Исключение составляют только примитивные пропсы, в форме змеипараллелепипеда. Пока писал, вспомнил, что в той же параное есть такие прикладки из моделек, которые прикладываются навроде плинтуса между стенкой и полом. Ну это вроде как небольшие насыпи из мусора, сами понимаете. И всё равно там своя отдельная текстура.
Так что мой вывод таков - если в игру можно вкомпиливать модельки, навроде как обычные браши (а в ку3 можно), то разумеется шареные текстуры полезны. Но если же нельзя, то их следует делать брашами и обращать в функ_детайл и следовательно щареные текстуры смысла не имеют. Иными словами нельзя об этом спорить не имея в виду конкретный движок. Пожалуй так будет правильно.
Цитата:
XaeroX писал:
ни разу не сделал ни одного пропа сложнее коробки (да и за последнюю не уверен).

Мой подвиг заключается в том, что я портировал редемир из UT99 в ксашмод. Это умственное упражнение навсегда отбило у меня охоту моделить.

Добавлено 13-10-2016 в 18:16:

Цитата:
mittorn писал:
func_detail - плохой выход

почему?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 13-10-2016 в 15:18:

Цитата:
Дядя Миша писал:
почему?

vis + rad миллионы часов

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 13-10-2016 в 15:27:

~ X ~ а то есть, наложить на вкомпиленную в карту модельку лайтмапу - не тоже самое?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 13-10-2016 в 16:11:

Ну прям как в сорсе - в папке materials лежит файлик, описывающий текстуру, и сама текстура. В папке models у модели стоит путь до текстуры. В некоторых рескинах под ксс кидают новую текстуру в материалы, а потом хексом в модели изменяют под новый путь до этого материала.

В параное память тратится на текстуры. А что если у некоторых моделей одинаковые бамп или какие-нибудь нейтральные общие текстуры? Они же ведь движком не различаются и он их всех запихает


Отправлено Дядя Миша 13-10-2016 в 16:26:

Цитата:
ILZM писал:
А что если у некоторых моделей одинаковые бамп или какие-нибудь нейтральные общие текстуры?

Цитата:

Представьте себе, что вдруг потребуется немедленная и одновременная
уплата всех долгов в мире! - воскликнул он слабеньким, но преисполненным
ужаса голосом. - Что тогда будет при существующем порядке вещей?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 13-10-2016 в 16:33:

Я лично сделал так - текстуры в папке с игрой могут дублироваться, но при загрузке они кэшируются, соответственно в памяти остается только один экземпляр. Пока что проверка чисто по пути, то есть в кэш как ключ записывается полный путь до текстуры. Но теоретически можно сделать сравнение raw массива и тогда полностью исключить совпадение текстур в памяти. Правда какое время оно будет грузится...

__________________
-Brain is dead-


Отправлено ncuxonaT 13-10-2016 в 16:38:

Встроенные текстуры - лишнее неудобство при разработке. Сидишь собираешь-разбираешь модели.
Всё для того, чтобы делиться моделями? Не слишком ли редкий кейс?


Временная зона GMT. Текущее время 16:32. Страницы (3): [1] 2 3 »
Показать все 40 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024