Как подобрать тексель — простой и универсальный метод

Ниже я объясняю как это работает. Но если лень читать, то в самом низу конечная формула ждёт тебя :)

Возьмём за эталон мотоцикл с текселем 16px/cm. Как по мне, отличный баланс качества и оптимизации для работы в портфель.

Для наглядности я накинул шахматку. Каждая клетка шахматки имеет размер на модели 1х1см. Получается, что каждая клетка 16х16 пикселей, ведь тексель показывает сколько пикселей приходится на 1см текстуры.

Как подобрать тексель — простой и универсальный метод

Запекаю текстуры, чтобы оценить. Получаю отличное качество фасок, флоатеров.

Как подобрать тексель — простой и универсальный метод

Для наглядности накинул стикер с надписью, показать, что пиксельности или мыла нет.

Как подобрать тексель — простой и универсальный метод

Окей, с мотоциклом разобрались. Давай теперь возьмем для примера Colt, примерим ему такой же тексель — 16px/cm. Теперь шахматка выглядит вот так 👇, каждая клетка 1х1см и 16х16 пикселей. Думаю уже только по этой картинке понятно, что пикселей теперь гораздо меньше, чем было на мотоцикле.

Как подобрать тексель — простой и универсальный метод

Запекаем фаски. Увеличь картинку, видишь пиксели, размытость текста. Провал.

Как подобрать тексель — простой и универсальный метод

На всякий случай уточню, если не понятно. На мотоцикле таких клеток (1х1см) помещается очень много, он большой (длина 230 см). У пистолета таких клеток мало, потому что он всего 36 см в длину. Поэтому чтобы количество пикселей было как у мотоцикла, квадратик 1х1 см должен иметь не 16х16 пикселей, а гораздо больше.

Обратный пример, возьмем танк. Примеряем нашу тексельную шахматку (16 px/см). Получаем очень много клеток, их даже не разглядеть. То есть при текселе 16 у нас избыток пикселей. Ведь мы же убедились выше (на примере мотоцикла) сколько клеток нам нужно, чтобы качество было отличное. Избыток пикселей будет зря нагружать ПК.

Как подобрать тексель — простой и универсальный метод

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

Логика прослеживается простая, чем меньше модель, тем больше тексель нужен, и наоборот, чем больше модель, тем меньше тексель.

Может показаться, что достаточно лишь понять, во сколько раз отличаются размером модели. Площадь поверхности мотоцикла в 9 раз больше площади поверхности кольта. Получается возьмем тексель в 9 раз больше? Увы, нет, потому что мы видим не всё покрытие модели разом, много остается за кадром или на тыльной стороне. И тут для каждой модели в зависимости от её формы будут разные пропорции. А нам бы универсальный подход.

К счастью, не габариты модели играют главную роль в выборе текселя, а расстояние с которого мы смотрим на модель. Влияние габаритов или размеров на тексель, это как следствие, вытекающее из факта, что чем модель больше, тем дальше нужно отодвинуть камеру, чтобы модель влезла в экран. Осознание этого позволяет выявить нужный тексель сравнением не размеров моделей, а расстояний от камер до моделей.

Измеряем. Обрати внимание, что провожу линейку через центр камеры до пересечения с моделью.

Как подобрать тексель — простой и универсальный метод
Как подобрать тексель — простой и универсальный метод
Как подобрать тексель — простой и универсальный метод
Как подобрать тексель — простой и универсальный метод

Кроме этого, есть ещё важный параметр, который отвечает за размер объекта в кадре, это фокусное расстояние камеры. С ним мы не можем не считаться. Поэтому, для усложнения примера, я беру разные фокусные расстояния для всех трёх случаев.

Дано:

1. Кольт — расстояние до камеры 0,63 м, фокус 50 мм;

2. Мотоцикл — расстояние 5,42 м, фокус 75 мм;

3. Танк — расстояние 32,9 м, фокус 100 мм.

За эталон берем мотоцикл, ведь у него нужное нам качество.

Сравниваем:

У кольта, расстояние отличается в 5,42/0,63 = 8,6 раз, а фокус отличается в 75/50 = 1,5 раза.

Значит для кольта нужен тексель 16 * 8,6 / 1,5 = 91,8 px/см.

У танка, расстояние отличается в 5,42/32,9 = 0,16 раз,а фокус в 75/100 = 0,75 раз.

Значит для танка нужен тексель 16 * 0,16 / 0,75 = 3,51 px/cм.

Новичку такая разница в значениях текселя может показаться пугающей, но с математикой глупо спорить.

Теперь, для наглядности, я изменил размеры текстур у кольта и танка, так чтобы тексель соответствовал полученным расчётным значениям:

Как подобрать тексель — простой и универсальный метод
Как подобрать тексель — простой и универсальный метод
Как подобрать тексель — простой и универсальный метод

Тексель теперь разный, размеры клеток (в см), если мерить по поверхности модели, теперь разные. Но, мы видим, что относительно размера кадра, шахматка выровнялась на всех моделях, то есть количество текстурных пикселей на 1х1 см экрана стало везде одинаковое. А значит и визуальное качество одинаковое. Profit!

Проверим запеканием.

С пистолетом теперь всё в порядке, никакой пиксельности или мыла.

Как подобрать тексель — простой и универсальный метод

Хватит ли танку текселя 3,5 ?)

Как подобрать тексель — простой и универсальный метод

Даже приблизив камеру в несколько раз, всё выглядит достойно.

Как подобрать тексель — простой и универсальный метод

Итак, какие выводы?

1) Чем ближе модель к камере, тем больше px/см нужно, чтобы отрисовка текстур была качественной.

2) Имея в распоряжении удачный пример, можно пересчитать тексель на любую другую модель, чтобы она тоже стала удачным примером. Формулу получилась такая:

Как подобрать тексель — простой и универсальный метод

где TD - искомый тексель, px/cm;

TDэ - тексель эталона, px/cm;

L - расстояние от камеры до поверхности модели, м;

Lэ - расстояние от камеры до поверхности модели у эталона, м;

F - фокусное расстояние камеры, мм;

Fэ - фокусное расстояние камеры у эталона, мм.

Если у тебя нету удачного примера (эталона), то можно использовать значения, полученные в этом эксперименте: 16*5,42/75 = 1,15. Остается только подставить своё фокусное расстояние камеры и расстояние от камеры до модели. Расчёт надо делать на самую ближайшую камеру.

Как подобрать тексель — простой и универсальный метод

Спасибо ребятам за модели:

Мотоцикл — Егор Сергеев

Как определить количество текстурных групп для модели — статья

Автор: Анатолий Коробейников

119119
26 комментариев

Только при чем здесь геймдев? Там все иначе считается.
Опять статья про портфолио и презенташки.

12

потому что геймдев это про работу и заработок.
Графон, NFT, монетизация, фриланс, Киты, поток, курсы, портфолио.

1

Шикарно. Про плотность текселя реально инфу фиг найдёшь, а тут так быстро на русском.

4

вангую что ты даже и не пытался толком

10

И вы собираетесь это через камеру и FOV считать? А если камера передвинется, повернется в другой ракурс? Я не говорю, что не надо считать, метод какой-то бредовый.
Для картинки в портфель - 4k текстура, можно 8, если комп позволяет. Все, что нужно знать.

6

Плюсую. Тексель нужен только для сцен с несколькими объектами в кадре, чтобы на всех объектах был один уровень детализация. Для рендера одиночного объекта вообще нет смысла над этим заморачиваться

1

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

2