Unity 2d, многослойный фон overdraw - PullRequest
1 голос
/ 01 июня 2019

Определение проблемы простое, но я не смог найти простое или прямое решение.

У меня есть фон, сделанный из нескольких непрозрачных слоев:

  1. Градиентное небо (1 рисунок, статический);
  2. Яркая большая гора (1 рисунок, немного двигается);
  3. Темные [более близкие] горы (несколько изображений, сгенерированных случайным образом, движутся быстрее);
  4. Еще более темные [более близкие] горы с некоторыми деталями (несколько изображений, сгенерированных случайным образом, движутся еще быстрее).

Я испытываю перерисовку: каждая картинка опирается друг на другаКаждый слой динамичен, поэтому я не могу просто обрезать половину неба или обрезать половину горы.Тем не менее, 50% изображений представляют собой один сплошной цвет + полная прозрачность.

Вопрос 1 : каков наилучший способ предотвращения перерисовки фона?Рассмотрим простейший пример: фоновое небо (экран 100%) + движущаяся гора (экран 80%).

Вопрос 2 : некоторые горы представляют собой простые рисунки - один непрозрачный цвет, изогнутую форму, а все остальное - полная прозрачность.Должен ли я продолжать использовать их в качестве текстур в спрайтах или мне придется использовать некоторые методы, чтобы использовать его по-другому?

Внешний вид фона: Background's look

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

При использовании спрайтов и текстур с альфа-каналом один и тот же пиксель рисуется для каждого слоя, каждого кадра, который является основной причиной для перерисовки. Старайтесь избегать и сжимать текстуру в RGB вместо RGBA

0 голосов
/ 01 июня 2019

Что касается вашего первого вопроса, если я правильно понял вопрос, самым простым решением было бы изменение положения изображения z по оси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...