Фотографичность в Unity? Повышаем четкость картинки.

Научился сам? Помоги начинающему.

Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 21 окт 2018, 22:30

В ходе детального изучения вопроса, я все больше приходил к выводу что фотографичность лишь косвенно касается фотореалистичности (тема фотореалистичность в Юнити) и ее надо выносить в отдельную тему. По своей сути это абстрактное понятие которое включает в себя набор разных технических приемов которые улучшают конечное качество изображения. Применять их можно в любых художественных приемах для того что бы как можно более точно передать видение художника.
Тут же становится ясно, почему происходит подмена понятий фотографичности и фотореалистичности. Для того что бы добиться фотографической копии реального мира проще всего использовать виртуальные копии этого реально мира в качестве игровых объектов. Т.е. когда человек возьмет фотографию в качестве текстуры объекта, а сам объект будет иметь точную копию реального объекта, то создается основа для художественного направления - фотореалистичность и уже картинку можно назвать фотореалистичной. Обычно проблема всегда заключалась в том что добиться качественной картинки не всегда получалось и если брать реалии Юнити, то в подавляющем большинстве случаев это была замыленная игрушечная графика. То что здесь будет описываться, призвано убрать эти искажения и показать высокую четкость, и естественность окружения.
И если при использовании фотореалистичной графики, применять приемы для достижения фотографичности, то получится приближенная копия реального мира. В этом и кроется начало подмены понятий, когда под фотореалистичностью начинают подразумевать фотографическую точность исполнения виртуального мира. Что конечно заблуждение.
В ходе детального изучения вопроса стало ясно, что знание приемов фотографичности крайне важны для художника, для того что бы он мог максимально точно изобразить то что задумал (тут у многих может возникнуть логическое противоречие между ранее предложенными постулатами. Но я не стану вносить правки и на это есть свои причины). Тонкое место тут в том, что при использовании фотореалистичных текстур вы уже будете добиваться большой фотографической точности, что конечно достаточно скверно для вас, как для художника. Высокая фотографическая точность, может перекрывать ваши творческие усилия и они могут попасть в тень от восхищения схожести картинки с реальным миром. Отсюда получается что чем менее фотореалистичны будут игровые объекты, тем более полезны фотографические приемы, тем точнее вы сможете передать то, что задумали. Отсюда же становится ясно основное будущее игр.
С другой стороны, это может быть плюсом, когда человек уже привыкнет к картинке и начнет замечать именно заложенные в ней творческие приемы, что конечно может открыть для игрока ваш мир заново. А это многого стоит.
В свою очередь, если вы создаете другой мир, например где вы решили сделать небо красным, облака желтыми, деревья зелеными, а землю синей (в общем ужас эпилептиков), то высокая четкость изображения даст вам возможность передать игроку практически все так как вы задумали, без учета того что все замылится и замультяшится. Плюс у вас в руках появятся полезные инструменты для того что бы замылить и замультяшить именно так, как вы хотите.

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

Фотографичность

Небольшое предисловие.
Расследование показало, что как такой дисциплины по фотографичности нет. По факту это то что путают с художественной дисциплиной "фотореалистичность", а именно - просто набор приемов которые могут серьезно отличаться друг от друга в зависимости от условий создания изображений высокой четкости в различных условиях среды, которые максимально копируют что либо. Это чисто технические моменты и думать об этом надо только с точки зрения механики. Определенную пользу фотографичность может принести и даже в зависимости от условий поставленной задачи, принести серьезную пользу. В частности существенное повышение качества конечного изображения, его честкости, выявление технических недостатков инструментов и прочее.
Надо для себя понять, что будь вы художник который создает пока несущестующий мир, или программист который использует строгую логику, для достижения конечного результата вы используете инструменты -все с помощью чего вы творите, это инструменты для вашей работы. Нет ни каких строгих правил, нет ни каких ограничений. Все эти правила и ограничения сидят у вас в голове и вы сами себя ограничиваете. Если для достижения положительного результата вам надо использовать фотографичность - используйте. Это точно такой же инструмент, как и все остальное. Просто, не увлекайтесь этим и уж тем более не ставьте его в правило. У вас есть лишь технические ограничения с которыми придется считаться, но это лишь значит что в большинстве случаев вы не сможете решить проблему в лоб и только.
Так же крайне важно понять что человек не способен сразу понимать что хорошо, а что плохо. Это понятия относительные и мыслим мы именно относительно чего либо. До тех пор пока вы не увидите что такое хорошо, вы не сможете понять что такое плохо и наоборот. Поэтому можно и нужно ошибаться (но лучше конечно учиться на чужих ошибках), делать плохие вещи и стремиться к лучшему, если вы хотите стать истинным профессионалом. Отсюда же вытекает, что если выдостигли как вы считаете совершенства, то развиваться сможете только в худшее. Позволю себе небольшое отступление, для того что бы привести аналогию. Не так давно был отснят очередной эпизод Звездных войн - Последние джедаи. Мне нравятся сказки и на мой субъективный взгляд ничего стоющего в этой картине нет кроме одного. Примерно в конце фильма когда главные герои сражаются друг с другом, каждый из них пытается перетянуть другого на свою сторону силы и что самое интересное, они оба правы в своих взглядах. Что самое забавное и что вообще лишает смысла всю Вселенную Звездных войн, это то что тут они прямо говорят о том что не может быть только добро или зло, они могут существовать только вместе и всегда будут уравновешенны друг другом. Т.е. кто бы не победил, всегда найдется тот кто перейдет на темную сторону или на светлую сторону, просто по определению. Для баланса. Как бы не банален был сюжет, но эта сцена прямо показывает что, что бы узнать что такое добро, нужно что бы было зло (привет атеистам и их игнорированию Библии с эпизодом райского дерева познания добра и зла). Отсюда же выходит - если не будет зла, то и добра, тоже не будет.
Так вот - фотографичность с точки зрения изобразительного творчества - это абсолютное зло. Однако не познав его, вы не сможете узнать что такое истинное творчество.

Так же следует понимать что все предоставленные демонстрации лишь плашки которые показывают возможности вашего творчества.

Теперь приступим.

Определимся, что это такое фотографичность.
Конкретно к слову фотографичность определения я не нашел. Везде даются ссылки на какое то другое слово которое в конце концов приводит к
ФОТОГРАФИГЧЕСКИЙ, фотографическая, фотографическое.
1. прил. к фотография в 1 знач.; служащий для фотографии. Фотографический аппарат. Фотографическая пластинка.
2. Полученный посредством фотографии. Фотографический снимок.
3. перен. Совершенно точный, очень сходный, как будто сделанный при помощи фотографии (книжн.). Фотографическое описание. Фотографическое изображение. Фотографически (нареч.) точно.

Итак, это очень точный образец чего либо, по сути его копия. Этот момент еще раз показывает насколько важно не просто знать, а понимать терминологию когда добиваешься чего то. Теперь ясно что, что бы добиться фотографичности можно не прибегать к техническим средствам, в отличии от фотореализма, упор делается на точности воспроизведения чего либо, а не на принципиальной основе фотографии как это происходит в фотореализме. Т.е. если поверхность предмета однородна, то можно просто залить его однородным цветом и это будет являться фотографичностью, или лучше сказать что человек добьется фотографической точности. Проблема в том, что человек не способен создать абсолютную копию чего либо, не прибегая к техническим средствам.

Далее нам надо выявить основные особенности с помощью чего оно достигается и уже после того как будет ясно что это, уже добиваться фоторафической точности.
Вообще я не доволен положением дел с терминами в игрострое. Они слишком размыты. Люди пихают все в одно понятие и после сами не знают чего хотят.
Если в фотореалистичности вы вольны уклоняться от излишней детализации или деталями создавать определенное настроение и атмосферу, то в фотографичности точное внимание к деталям имеет ключевую роль. Например если вы не используете сканы, то придется переделывать развертки, вставляя фотографичные текстуры на место старых фрагментов, что бы текстура правильно легла. Это само по себе кропотливое занятие, а если придется переделывать сотни таких разверток, то еще и очень долгое. Поэтому в большинстве случаев для достижения фотографичности придется использовать либо фотографии, либо отсканированные материалы, если вы хотите воссоздать реальный мир с фотографической точностью и при этом потратить чуть меньше времени чем ваша жизнь.

Просмотрев десятки примеров фотографичности, для себя я определил несколько общих особенностей благодаря чему достигается этот эффект:
1) Высокая четкость изображения
2) Лучше всего использовать контраст, что бы было видно максимум деталей и предметов.
3) Высокая отражающая способность предметов, что создает ощущение глубины.

Высокая четкость изображения, задает серьезную планку к качеству конечного изображения на мониторе, и использование разных постэффектов и других искажающих эффектов, крайне не рекомендовано. Единственно что полезно и скорее всего придется использовать это сглаживание или использовать какой то подобный эффект. Сглаживание смажет лесенки что даст ровность воспроизведения поверхности, но смажет и сами текстуры. Поэтому увлекаться этим не стоит и на мой взглят вполне достаточно сглаживания в 2х у MSSA.
Есть много других алгоритмов сглаживания, которые могут подойти в каждом конкретном случае. Это ваш инструментарий, вы должны изучить его (это отдельная серьезная тема).
Соответственно для использования сглаживания, придется использовать Forward Rendering https://docs.unity3d.com/Manual/RenderingPaths.html/ который в последних версиях Юнити переключается у камеры в строке Rendering Paths.

Сглаживание даст искажения текстур, к этому надо быть готовым.
Так же критически важно подбирать верное разрешение текстур, что бы уже сами текстуры не давали искажения. Разрешение играет едва ли не ключевую роль в качестве текстурирования. Каждое разрешение хорошо в определенных условиях когда оно будет давать 100% качества.
В большинстве случаев, максимальное разрешение мониторов равно 1920x1080. В некоторых случаях оно больше и вроде как максимум достигнут в так называемом 4к разрешении которое равно 4096 х 3072. Очень важно понимать для какой аудитории вы создаете продукт, для того что бы использовать текстурирование верного разрешения. Если вы будете использовать текстуры например с разрешением в 8192, то ни монитор, ни телевизор физически не сможет отобразить эту текстуру, а значит он ее сожмет, что даст искажения. Т.е. практического смысла в использовании такого рода разрешения текстур нет ни какого. То же самое и для разрешения текстур в 4096, если ваша целевая аудитория имеет типичный монитор с максимальным разрешением в 1920x1080, который пока что наиболее популярен среди пользователей. Т.е. в большинстве случаев максимальное разрешение текстур должно составлять 2048, которое даст наименьшее возможные искажения при нахождении камеры в упор к предмету. Однако надо понимать, что чем дальше вы отодвигаете камеру от предмета, тем больше искажений будет получать текстура.
Теперь про минимальное разрешение. В теории с минимальным разрешением текстур все немного сложнее. Если с разрешением в 2048 вы можете не бояться показывать предмет в упор, и даже полезно это делать, то с разрешением в 1024, без потери качества вы можете показывать предмет только на определенном расстоянии. Потому что если вы будете давать возможность посмотреть игроку на текстуру с разрешением в 1024 пикселей в упор, то он увидит качество в 2 раза хуже чем у номинальной текстуры в 2048, потому что она будет растянута до разрешения в 2048. Т.е. когда вы показываете игроку высококачественную текстуру в 1024 в упор, ее качество в 2 раза хуже чем если бы вы ее показывали на расстоянии когда она имеет номинальный размер в 1024 - человек будет видеть размытую текстуру.
Отсюда же следует понимать, как именно было добыто разрешение текстуры. Если с помощью фотоаппарата, это одно, если с помощью сжатия, это другое. Я лично изменял размер обычным Paint'ом.

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

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

Видео текстуры 1


показывает качество вместе с картами освещения. Разрешение 1024 меняется на и обратно 512. (лучшее качество у 1024)
Видео текстуры 2


показывает качество только текстур без карт освещения. Расстояние до объектов - предмет полностью помещается по высоте в экран

Видео текстуры 3 и 4



показывает обратную ситуацию когда качество у разрешения 512 выше чем качество у разрешения 1024. Сначала высокое разрешение, потом низкое.
Тоже самое с картами освещения

Если же вы искусственно будете менять максимальное разрешение в настройках для текстуры, то вы серьезно теряете в качестве по сравнению с номинальными тестурами. видео Текстуры 5

и текстуры 8


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


Задайтесь вопросом - кто из вас об этом задумывался? Видимо отсюда и растут ноги вечно замыленых и мультяшных картинок из Юнити.
Я бы предложил перед текстурированием, создать текстуру с сеткой шагом в 1 пиксель для каждого разрешения. Это будет ваша калибровочная сетка. На каждый предмет в сцене необходимо применять эту калибровочную сетку, для определения наиболее оптимальных разрешений текстур для объектов в сцене на разных расстояниях (видео текстуры 10


). В моем случае для текстур разрешением в 1024 наибольшее качество достигается когда объект занимает примерно половину экрана по горизонтали (куб 1х1), соответственно для текстур с разрешением в 512, в четверть. Для вас это значение может быть иным, поэтому если вы занимаетесь этим серьезно, то я бы рекомендовал определить калибровочное железо и на нем сделать калибровочную таблицу расстояний и размеров сетки, когда достигается максимальное качество.
Но в принципе можно просто иметь текстуры нескольких разрешений и попеременно применять их на материал выявляя наилучшее качество. Текстуры 11 (К сожалению технические ограничения похоже не позволили наглядно продемонстрировать прием)

Теперь что касается настроек текстур.
Из всех настроек, если не считать streaming mip maps, на качество влияют следующие:
1) Generate Mip Maps
2) filter mode
3) MAx size
4) resize algorithm
5) compression

Сравнивать будем с номиналом где все настройки выставлены по умолчанию, но галочка Generate Mip Maps снята.
Generate Mip Maps
Все выставлено по умолчанию - результат искажен. Видео Текстура 13


Юниты настоятельно рекомендуют использовать Generate Mip Maps для улучшения производительности. По сути именно эта функция отвечает за то что бы более низкое разрешение текстур накладывались на предметы которые находятся далеко от камеры. Т.е. она преобразует текстуру с разрешением 1024 в более низкое. Работает криво.
Она имеет дополнительные настройки. посмотрим на искажения в них.
1) border mipmaps - работает с границами текстуры, что и видно на видео.
Текстуры 14


2) Mip Map Filtering - как видно из названия, способ фильтрации. Наилучшее качество дает фильтр Kaiser
Текстуры 15


Попробуем его сравнить с номиналом
Текстуры 16


Как видно, ситуация все равно хуже чем без использования Generate Mip Maps, но лучше чем с использованием фильтра box

3) mip maps preview ни как не влияет на качество
4) Fade Out Mipmaps ни как не влияет на качество

Filter Mode
Наилучшее качество дает Point(no folter), но вблизи дает пиксельность.
Видео текстуры 17


Сначала сравнение с Bilinear у которого отключен Generate Mip Maps. Затем с Bilinear и включенным Generate Mip Maps с фильтром box, затем с фильтром Kaiser.

Фильтр Trilinear.
Текстуры 18


Сначала сравнение с Bilinear у которого отключен Generate Mip Maps. Затем с Bilinear и включенным Generate Mip Maps с фильтром box, затем с фильтром Kaiser.

Далее resize algorithm.
Как ни странно, но на качество не повлиял. Юниты утверждают что Bilinear в некоторых случаях может улучшить качество.

compression
Так же на качество не повлиял.

Итог: Наилучшее качество достигается с отключенным Generate Mip Maps, и у Filter Mode выставленным Point(no folter).
Если у текстуры появилась зернистость, то без Generate Mip Maps не обойтись, выставляем Mip Map Filtering в Kaiser. На горизонтальных поверхностях могут появиться артефакты. Тогда переключаем на Box. И если все это не помогло, то включайте фильтры Filter Mode.
И конечно все это надо применять непосредственно к текстурам, а не к картам освещения. С картами освещений вроде как косяков нет, но это мы еще посмотрим позднее.
Из общих настроек интересен только Texture Quality.

Ну что же, давайте попробуем добиться максимальной четкости изображения.
Я откалибровал сцену сеткой что бы понимать какие разрешения текстур применять и начал применять это к материалам. И вот выяснилось еще одна нехорошесть - стена выполнена одним мешем, а значит к ней я могу применить только одну текстуру. Но стена вокруг меня и на разном расстоянии. Пришлось дублировать ее и на дальнюю стенку применять текстуры с разрешением в 256, в то время как к первичной стене применил текстуры с разрешением в 1024. И вот если стоять строго на одном месте мы получаем четкую картинку практически без размытий и искажений.
Видео текстуры 12


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

Немного иная ситуация с текстурами на которые действует перспектива. Например пол. Тут уже высокая четкость текстурирования скорее зло, чем добро. Что получается? Когда отрисовывается наиближайший ряд пикселей текстуры к камере, то показывается 100% информации. Следующий ряд пикселей из за перспективы, уже будет меньше, а значит часть информации должно быть утеряно. Третий ряд еще меньше, а значит информации остается еще меньше и так далее.
Видео Текстуры 19


Получается что если вы используете текстуры высокой четкости, то глаз сразу замечает так сказать градиет качества от лучшего к худшему в зависимости от удаления от камеры. Это можно нивелировать если один пиксель текстуры, будет отображаться на несколько пикселей в мониторе, т.е. если использовать текстуры довольно низкого разрешения. В таком случае потери информации не будет происходить до определенного расстояния в зависимости от того на каком расстоянии закончатся "свободные" пиксели,
видео Текстуры 20


и
текстуры 21


(линии в видео 21 прямые. Добро пожаловать в мир оптических иллюзий), а сама потеря информации уже не будет так заметна, поскольку сама текстура не высокого качества. С другой стороны, на определенном расстоянии, текстура будет иметь 100% качество, что может так же бросаться в глаза. Поэтому тут использование различных фильтров в Filter Mode скорее благо, чем нет.
Кроме того, при смене ракурсов камеры, на полу может появиться зернистость из за того что в каждом кадре происходит разная потеря информации.
Тут же нюанс с атласами. Многие разработчики загоняют в атласы все что не попадя, считая это аксиомой оптимизации. Потом искренне недоумевают почему их игра выглядит как кусок обмылка. Смысл атласов в том, что уменьшается количество проходов по материалам, но так ли это важно если решать проблему в лоб? Вот представим что вы имеете высококачественные текстуры с разрешением в 2048 и все выглядит хорошо и даже не особо тормозит. Вы решаете все это дело оптимизировать. Первое что должно возникать у вас в голове - зачем вы хотите это делать? Я пришел к выводу что не разработчик должен подстраиваться под все разнообразие ПК, а игроки должны иметь железо под конкретные задачи. А эти задачи должны задавать разработчики, как это происходит в консолях. Только тогда игроки смогут получить номинальное качество, что и нужно разработчикам. Так вот, вы должны четко понимать свою целевую аудиторию. Если вы создаете игру для калькуляторов, то нет ни какого смысла использовать высококачественные текстуры. Если вы создаете свою игру для средних ПК, или хороших ПК, то надо всегда подходить к оптимизации очень осторожно (главное правило - не навредить. И вообще это должно стать руководством в жизни). Итак атласы. Вот значит вы используете текстуры с разрешением в 2048, у вас их 10 штук и вы загоняете 10 этих текстур в один атлас с разрешением в 4096. Оптимизация? На первый взгляд - безусловно. Но в итоге вы получаете качество текстурирования в 1024. Т.е. что бы без потери качества загнать эти текстуры в один атлас, ваш атлас должен иметь разрешение в как минимум 8192. Но в такой атлас у вас поместится 16 текстур с разрешением 2048, а не 10. И вопрос - что вы оптимизировали? А теперь немного математики - то отчего так корежило некоторых товарищей. Для просты счета будем брать только одну ось разрешения. 10 текстур по 2048 пикселей = 20480 проходов по ним. Сожмем их в атлас до 1048, атлас получится в 4096 в который поместится 16 текстур и того по атласу будет 65536 проходов. Я думаю ясно что в данном случае с атласом ни какой оптимизации не получится, он будет занимать и места больше, и проходов по нему будет больше и качество ниже. Единственный плюс остается только в том что не надо брать для обработки новый материал, для обработки его текстуры.

Та же ситуация с развертками. Чем большая поверхность модели, тем большее разрешение текстур придется использовать для достижения хорошего качества. Например на представленном довольно не большом диване (видео текстура 9) текстура с разрешением в 1024 и хорошо видно насколько большие клеточки калибровочной сетки, т.е. для него придется использовать текстуры разрешением в 4096 что бы добиться хорошего качества на близком расстоянии. Поэтому хорошая практика в таком случае разбивать предметы на более мелкие, что бы к ним можно было применять текстуры с более низким разрешением.


Затем важно понимать технические ваши ограничения. Вам придется использовать высококлассные средства визуализации, такие как мониторы, видеокарты и программное обеспечение. Если у вас будет дешевый монитор, который например не сможет точно передать цветовую текстуру изображения которое на него приходит, то вы физически не сможете увидеть качественный результат, а значит физически не сможете добиться высококачественной картинки. Тонкое место в том, что у большинства пользователей те же мониторы далеко не высококачественные, а значит они физически не смогут увидеть высококачественную картинку которую вы для них подготовили на высококачественном железе. Кроме того, очень важен размер монитора. Чем меньше его размер и выше разрешение, тем более мелкая зернистость матрицы и как следствие более четкая картинка с монитора. Т.е. одно и то же изображение может выглядеть по разному в одном и том же разрешении, но с разным дюймовым размером экрана. Увидеть вы это сможете если запустите какую то игру в окне с разрешением 800х600 и запустите тоже самое на старом мониторе с его общим разрешением в 800х600. Поэтому я повторюсь, что убежден что разработчикам давно пора вводить градацию конфигурации ПК, под конкретно которое была создана игра, от и до. Писать вплоть до моделей железа, версии драйверов в котором игра будет выглядеть номинально. Более того, если человек купил самый дешевый монитор, который у него еще и весь выцвел, то увидеть он может совсем не то что видят остальные. Поэтому если вы серьезный разработчик, у вас должно быть несколько тестовых сборок для того что бы вы могли увидеть свое творение так, как могли бы это увидеть люди с разными конфигурациями ПК.

В связи с недавно вышедшим обновлением Таркова, сделал билд где можно наглядно увидеть разницу между дефолтными настройками текстур с не подобранным разрешением и настроенной комнатой. Вообще конечно надо было его сделать намного раньше, но как всем нам известно, время, это именно то чего вечно не хватает. Выкраил пару часиков на это благое дело.
Пример полностью показывает разницу между двумя подходами и демонстрирует насколько слабо Юнити работает с текстурами. Так же он демонстрирует артефакты зернистости и проигрыш в качестве перед дефолтными настройками. Надеюсь теперь даже у самых ярых скептиков не останется сомнений в том что подбор разрешения текстур и настройка самих текстур является критически важным аспектом в графическом качестве игр.
Примеры ошибок:
1) Книги, дверь и фото кошки внизу у стенки, имеют артефакты зернистости. Разрешение текстур кошки 256, книг 1024, дверь 2048. Ошибки при создании перспективы. Разрешение надо снижать, либо все замыливать.
2) Стол имеет большую четкость как раз при дефолтных настройках текстуры, при том что разрешение текстур у них одинаковое. Ошибка подбора разрешения текстуры.
Сам билд - https://yadi.sk/d/w50gX9YszV1kNw

Еще один билд, который демонстрирует сохранение качества текстуры с ростом расстояния, посредством использования верно подобранного разрешения. Так же потеря качества при использовании текстуры высокого разрешения на расстоянии. https://yadi.sk/d/MnBetCGP2Ja88g
Интересная ошибка при билде комнаты. Я не стал заменять материалы в комнате, а просто создал еще одну и при нажатии кнопки отключаю какую то из них. Так вот если создавать билд с заранее отключенной настроенной комнатой, то появляется странная ошибка с текстурой на стелаже. https://yadi.sk/d/1dw5u93a1wTczg
Обобщая тему с разрешением текстур и настройкой фильтров, можно сделать следующие выводы:
1) Очень важно понимать на каких расстояниях будут смотреть на объект и в зависимости от этого подбирать разрешение текстур и фильтры
2) Если стоит задача добиться максимального качества, то в лодах использовать подходящие текстуры и настройка отключения лодов должна происходить исходя из потери качества текстур
3) При большом воздействии перспективы, низкое разрешение это как раз хорошо.

Пожалуй на этом можно закрывать тему с текстурированием.



Далее по списку - свет и отражения.

Со светом в Юнити все довольно таки интересно и можно применять очень интересные приемы. А вот с отражениями на первый взгляд все довольно печально.

Поскольку данная тема не находит большой поддержки у населения, то изучение вопроса переходит в стадию фонового режима. Обновление темы будет происходит при наборе критического объема информации.
Последний раз редактировалось sledo 30 дек 2018, 04:58, всего редактировалось 4 раз(а).
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 21 окт 2018, 22:32

Зарезервировано для расширения темы
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 21 окт 2018, 22:34

Зарезервировано для расширения темы
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 21 окт 2018, 22:35

Зарезервировано для расширения темы
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение lawson 22 окт 2018, 11:39

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

И не понятно ваше замечание по поводу "типичных" граждан, кто эти люди!?
lawson
UNIверсал
 
Сообщения: 419
Зарегистрирован: 14 сен 2012, 21:20

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 23 окт 2018, 15:27

lawson писал(а):Поздаравляю Вас, наконец вы смогли привести материал к надлежащему виду, надеюсь вы не будете как всегда критично воспринимать чужие советы, но я бы лучше спарятал видео под спойлеры чтобы было удобней читать. Хотя, в некоторых примерах даже записи не нужны, можно просто два изображения до изменений и после.

Спасибо. Я не часто пишу посты, поэтому конечно опыта создания сразу удобного формата поста у меня нет. Но, я работаю над этим.
К обоснованной критике и предложениям я всегда отношусь положительно. Меня раздражают высказывания типа - "это все овно, а автор удак. -Почему? -Потому.". Ничего поделать с собой не могу.
Насчет спойлеров у меня мысль возникала, но я от нее отказался поскольку мне показалось что будет разрыв в повествовании. Т.е. когда человек что то воспринимает, у него складываются определенные ожидания. В данном случае я предлагаю посмотреть видео с результатами и читатель по идее должен ожидать видео с результатами, но вместо него будет спойлер который скрывает ожидаемую информацию. С другой стороны, практического смысла в видео не много, поскольку технические ограничения не позволяют продемонстрировать разительную разницу в качестве текстуры в предложенных случаях, а они действительно в некоторых случаях очень существенны и видео по сути являются лишь предоставлением факта того что на моем мониторе это было действительно так. Но все же решил что оправдывание ожиданий важнее практичности.
lawson писал(а):Хотя, в некоторых примерах даже записи не нужны, можно просто два изображения до изменений и после.

Картинки надо заливать на какие то хосты, которые хранят их в зависимости от популярности картинки и если популярность низкая, то они отправляются в архив, а значит здесь их не будет. Поэтому для демонстрации я выбрал формат видео. Принципиальной разницы в этом нет. Когда человек займется этим вопросом, то практика покажет то же самое что и видел я. А тут заняться практикой придется и довольно плотно, что бы самому понимать что и когда выгоднее использовать, ибо часто разрешение текстур в 512 дает лучшее качество чем разрешение 1024 в разных условиях, а иногда наоборот.
lawson писал(а):И не понятно ваше замечание по поводу "типичных" граждан, кто эти люди!?

Это среднестатистический человек у которого дома стоит монитор с типичным наиболее популярным максимальным разрешением в 1920x1080. Т.е. типичный гражданин, или другими словами граждан которых большинство, а поскольку все люди граждане какой то страны, то он гражданин. Соответственно если он физически не сможет увидеть более высокое разрешение, а картинка будет на него заточена, то она неизбежно будет терять в качестве и скорее всего больше чем если бы картинка была бы заточена под разрешение его монитора.
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение lawson 23 окт 2018, 20:13

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

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

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

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

Прошу Вас, хватит упоминать ваших личных врагов в тексте, это очень мерзко выглядит.
lawson
UNIверсал
 
Сообщения: 419
Зарегистрирован: 14 сен 2012, 21:20

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 23 окт 2018, 21:15

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

Честно говоря я не вижу в этом проблемы. Если нажить ctrl+F и набрать интересующее слово, то любой браузер его найдет в тексте. Мне кажется это намного удобнее чем скакать по темам, тем более которые идут в одном ключе. Я думаю что улучшу структуру текста разбив его на части по ключевым словам, которые вынесу на верх по типу оглавления с инструкцией к поиску, что бы человек мог быстро перейти на интересующий его раздел. Я думаю это будет намного лучше, поскольку информации соберется довольно много и ее можно будет использовать как справочную. Я уже сейчас вижу у стандартного освещения 4 разных подхода в Юнити каждый из которых надо раскрыть и подробно описать. Уверяю, тут спойлеры для экономии места, не помогут. Я даже смею надеяться что стандартные возможности движка могут позволить создавать очень правдоподобную игру света в лесном массиве - одно это займет очень много места, если конечно предположения подтвердятся.
lawson писал(а):Складывается ощущение будто вы с каким то пренебрежением относитесь к этим гражданам, так бы и написали: "так как у большинства пользователей установлен такой то монитор поэтому будем использовать такую то технологию". Ну это так мелочи.

Исправлено.
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 27 дек 2018, 18:30

Обновление темы.

В связи с недавно вышедшим обновлением Таркова, сделал билд где можно наглядно увидеть разницу между дефолтными настройками текстур с не подобранным разрешением и настроенной комнатой. Вообще конечно надо было его сделать намного раньше, но как всем нам известно, время, это именно то чего вечно не хватает. Выкраил пару часиков на это благое дело.
Пример полностью показывает разницу между двумя подходами и демонстрирует насколько слабо Юнити работает с текстурами. Так же он демонстрирует артефакты зернистости и проигрыш в качестве перед дефолтными настройками. Надеюсь теперь даже у самых ярых скептиков не останется сомнений в том что подбор разрешения текстур и настройка самих текстур является критически важным аспектом в графическом качестве игр.
Примеры ошибок:
1) Книги, дверь и фото кошки внизу у стенки, имеют артефакты зернистости. Разрешение текстур кошки 256, книг 1024, дверь 2048. Ошибки при создании перспективы. Разрешение надо снижать, либо все замыливать.
2) Стол имеет большую четкость как раз при дефолтных настройках текстуры, при том что разрешение текстур у них одинаковое. Ошибка подбора разрешения текстуры.
Сам билд - https://yadi.sk/d/w50gX9YszV1kNw
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотографичность в Unity? Повышаем четкость картинки.

Сообщение sledo 30 дек 2018, 04:57

Обновление темы.

Еще один билд, который демонстрирует сохранение качества текстуры с ростом расстояния, посредством использования верно подобранного разрешения. Так же потеря качества при использовании текстуры высокого разрешения на расстоянии. https://yadi.sk/d/MnBetCGP2Ja88g
Интересная ошибка при билде комнаты. Я не стал заменять материалы в комнате, а просто создал еще одну и при нажатии кнопки отключаю какую то из них. Так вот если создавать билд с заранее отключенной настроенной комнатой, то появляется странная ошибка с текстурой на стелаже. https://yadi.sk/d/1dw5u93a1wTczg
Обобщая тему с разрешением текстур и настройкой фильтров, можно сделать следующие выводы:
1) Очень важно понимать на каких расстояниях будут смотреть на объект и в зависимости от этого подбирать разрешение текстур и фильтры
2) Если стоит задача добиться максимального качества, то в лодах использовать подходящие текстуры и настройка отключения лодов должна происходить исходя из потери качества текстур
3) При большом воздействии перспективы, низкое разрешение это как раз хорошо.

Пожалуй на этом можно закрывать тему с текстурированием.
sledo
Старожил
 
Сообщения: 810
Зарегистрирован: 05 янв 2014, 15:44


Вернуться в Уроки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4