Среда, 18 Мая 2022, 13:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Текстурирование материалов по скрипту
Текстурирование материалов по скрипту
Storm54Дата: Воскресенье, 09 Марта 2014, 20:00 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Цитата
И как? Ведь lod действет лишь на каждую модель. А об общем lod-e я не слышал

Можно в каком-нибудь 3ds максе загрузить все объекты, объединить их и создать текстурную развертку. Тогда эти объекты будут использовать один материал.

Цитата
Почему так много - карта нормалей, спекулар, цвет и все это в одной текстуре.

Ну так сделать 3 атласа: дифуз, нормал и спекуляр. Если каждая текстура будет с разрешением 1024x1024, то можно будет в такой атлас запечь больше 4-х текстур. Это уже уменьшает количество материалов в разы.
Что касается размера текстуры. Может я и ошибаюсь, но размер текстуры незначительно влияет на производительность(у меня в играх при любой детализации текстур разница фпс очень мала)
Тут будет влиять только аппаратное ограничение видеокарты и размер видеопамяти. Но сейчас видеокарты загружают текстуры очень больших размеров ( 16384х16384 ), а может уже и больше.


Сообщение отредактировал Storm54 - Воскресенье, 09 Марта 2014, 20:08
DantorSДата: Воскресенье, 09 Марта 2014, 21:23 | Сообщение # 22
заслуженный участник
Сейчас нет на сайте
Цитата Storm54 ()
Можно в каком-нибудь 3ds максе загрузить все объекты, объединить их и создать текстурную развертку. Тогда эти объекты будут использовать один материал.

нет это не подойдет. Возникнет куча проблем. К примеру, первое что пришло на ум, физика. Попадаешь пулей в один объект разрушаются все. Это только на первый взгляд. Я уверен проблем будет очень-очень много.
Цитата Storm54 ()
Ну так сделать 3 атласа: дифуз, нормал и спекуляр.

Правильно мыслишь. Спасибо. Только не 3 атласа: дифуз, нормал и спекуляр, а 3 аталса: в каждом дифуз, нормал, спекулар (тема же по поводу распределения материала, как распределить я уже понял).
Цитата Storm54 ()
Может я и ошибаюсь, но размер текстуры незначительно влияет на производительность(у меня в играх при любой детализации текстур разница фпс очень мала)

А тут ты ошибаешься. Зачем по твоему нужна компрессия текстур (сжатие до меньшего разрешения). У меня на ПК чтобы было без лагов нужно ставить минимальный размер текстур
Цитата Storm54 ()
Ну так сделать 3 атласа: дифуз, нормал и спекуляр. Если каждая текстура будет с разрешением 1024x1024, то можно будет в такой атлас запечь больше 4-х текстур. Это уже уменьшает количество материалов в разы.

Но как правило в играх на PC размер текстур: 2048x2048 px. Атлас тогда получится 8192x8192 px. Это много. Или 2048 и 1024 - разницы практически никакой?


Сообщение отредактировал DantorS - Воскресенье, 09 Марта 2014, 21:40
Storm54Дата: Воскресенье, 09 Марта 2014, 22:01 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
Цитата
Возникнет куча проблем. К примеру, первое что пришло на ум, физика. Попадаешь пулей в один объект разрушаются все. Это только на первый взгляд. Я уверен проблем будет очень-очень много.

На мой взгляд это самый оптимальный вариант для статики. Кстати, объекты же можно и не соединять. Главное, чтобы они одну и ту же развертку использовали. Тогда можно будет вытворять с объектами все, что угодно.

Цитата
Или 2048 и 1024 - разницы практически никакой?

Если не подходить вплотную и не приглядываться, то никакой. А для более детального отображения объекта(когда игрок подходит очень близко) можно использовать LOD - включать объект, на котором материал с текстурами высокого разрешения.
DantorSДата: Воскресенье, 09 Марта 2014, 22:31 | Сообщение # 24
заслуженный участник
Сейчас нет на сайте
Цитата Storm54 ()
Если не подходить вплотную и не приглядываться, то никакой. А для более детального отображения объекта(когда игрок подходит очень близко) можно использовать LOD - включать объект, на котором материал с текстурами высокого разрешения.

Тоесть атлас мне не подходит потому что его разрешение 8192x8192

Добавлено (09.03.2014, 22:19)
---------------------------------------------
Storm54, перечита твои посты в этой теме. По твоему мнению - самый оптимальный вариант - не использовать этот метод оптимизации. И делать все как есть (10 текстур на модель)?

Добавлено (09.03.2014, 22:31)
---------------------------------------------
Цитата Storm54 ()
можно использовать LOD

Lod лишь заменяет mesh. Для этого ( текстура при дистанции) предназначен mipmap.


Сообщение отредактировал DantorS - Воскресенье, 09 Марта 2014, 23:18
lentinantДата: Понедельник, 10 Марта 2014, 01:09 | Сообщение # 25
ленивый программист
Сейчас нет на сайте
Цитата DantorS ()
И делать все как есть (10 текстур на модель)?

А ты не думаешь, что, если у тебя по 10 текстур на модель, то ты как-то неправильно делаешь модели и текстуры к ним?

Добавлено (10.03.2014, 01:09)
---------------------------------------------
У меня, все же, остается вопрос - зачем тебе вообще использовать три разных материала. Если ты, конечно, не хочешь делать их на базе существенно разных шейдеров.


Когда-то тут будут ссылки на крутые проекты. Или нет.
DantorSДата: Понедельник, 10 Марта 2014, 01:32 | Сообщение # 26
заслуженный участник
Сейчас нет на сайте
Цитата lentinant ()
А ты не думаешь, что, если у тебя по 10 текстур на модель, то ты как-то неправильно делаешь модели и текстуры к ним?

Нет как раз всё правильно. Ну не 10 получается. Лицо(дифуз,нормал,атлас(глоз,спекулар,sss),диплейсмент) + тело(кожа и одежда) (ещё 3-4) + волосы (3-4). И получается: 10-12 текстур. И таких моделей может полуится в кадре штук 20.

Добавлено (10.03.2014, 01:32)
---------------------------------------------
Цитата lentinant ()
Если ты, конечно, не хочешь делать их на базе существенно разных шейдеров.

Позравляю, ты сам ответил на свой вопрос


Сообщение отредактировал DantorS - Понедельник, 10 Марта 2014, 01:33
lentinantДата: Понедельник, 10 Марта 2014, 01:42 | Сообщение # 27
ленивый программист
Сейчас нет на сайте
Цитата DantorS ()
Позравляю, ты сам ответил на свой вопрос

Следующий вопрос - нафига? Чем они так сильно должны отличаться?

Добавлено (10.03.2014, 01:40)
---------------------------------------------
Цитата DantorS ()
Нет как раз всё правильно. Ну не 10 получается. Лицо(дифуз,нормал,атлас(глоз,спекулар,sss),диплейсмент) + тело(кожа и одежда) (ещё 3-4) + волосы (3-4). И таких моделей может полуится в кадре штук 20.

И у каждой, само собой, разные текстуры.

Добавлено (10.03.2014, 01:42)
---------------------------------------------
Кроме того, конечно же нельзя все текстуры одного вида запихнуть в один файл.


Когда-то тут будут ссылки на крутые проекты. Или нет.

Сообщение отредактировал lentinant - Понедельник, 10 Марта 2014, 01:42
DantorSДата: Понедельник, 10 Марта 2014, 02:04 | Сообщение # 28
заслуженный участник
Сейчас нет на сайте
Давай по другому. Мне необходимо использовать 20 моделей в кадре (в каждой по 10 текстур). Метод оптимизации описанный ранее (качество текстур теряется) необходим для реализации такой задачи?

Добавлено (10.03.2014, 01:59)
---------------------------------------------

Цитата DantorS ()
Кроме того, конечно же нельзя все текстуры одного вида запихнуть в один файл.

Атлас? Это уже обсуждалось в этой теме.

Добавлено (10.03.2014, 02:04)
---------------------------------------------

Цитата DantorS ()
Следующий вопрос - нафига? Чем они так сильно должны отличаться?

Шейдер кожи и шейдер волос значительно отличаются. Как правило 3d модели берут данные из текстур. Но тут основная работа рассчитана на код шейдера. Ну будет не 10-12 текстур, а 7-8. Это не суть. Вопрос и так остаётся открытым
lentinantДата: Понедельник, 10 Марта 2014, 03:10 | Сообщение # 29
ленивый программист
Сейчас нет на сайте
Цитата DantorS ()
Атлас? Это уже обсуждалось в этой теме.

Я не знаю, можно ли это назвать атласом. Атлас - это, обычно, когда текстуру можно разбить на сетку, и каждая ячейка сетки будет представлять отдельную текстуру (пример), и используется подобное для совмещения текстур для нескольких объектов в одном файле. Я же говорю о классическом методе текстурирования объектов. Скорей, даже развертки, а не текстурирования - когда развертка, отвечающая за каждую часть модели, помещается не в отдельный квадрат, как в атласе, а буквально куда влезет (пример). Это, кстати, существенно экономит место - куда экономней расходуется место, и можно добиться лучшего качества при более низком разрешении, в отличии от ситуации, когда текстура для каждой части находится в клетке атласа.
Цитата DantorS ()
Шейдер кожи и шейдер волос значительно отличаются. Как правило 3d модели берут данные из текстур. Но тут основная работа рассчитана на код шейдера. Ну будет не 10-12 текстур, а 7-8. Это не суть. Вопрос и так остаётся открытым

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

И да, почему ты считаешь, что выполнение операций шейдерами будет более выгодно, чем отрисовка текстур?

И, у меня остается вопрос, который я задавал с самого старта - зачем изобретать велосипед-мутант? Ты когда-то слышал о подобном методе оптимизации? Почему ты считаешь, что разбираешься в оптимизации лучше, чем специалисты, создавшие непосредственно движок Unity, и что встроенной оптимизации не хватит для твоих целей? Почему, если твой метод такой хороший, никто им не пользуется?

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

На этом все, я сомневаюсь, что смогу тебе помочь хотя бы чем-то в этом вопросе.


Когда-то тут будут ссылки на крутые проекты. Или нет.

Сообщение отредактировал lentinant - Понедельник, 10 Марта 2014, 08:13
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Текстурирование материалов по скрипту
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг