| 
				
				Текстурирование материалов по скрипту
				 |   |  
| 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  |  
| 
 | 
 |    |     
		
		 
 |