Несколько полупрозрачных текстур

Общие вопросы о Unity3D

Несколько полупрозрачных текстур

Сообщение Ashvar 11 мар 2013, 08:35

Имеется вопрос об использовании нескольких полупрозрачных текстур перекрывающих друг друга.
Я планировал сделать сетку над картой с помощью полупрозрачной текстуры. Также нужно выводить территории империй и просканированную территорию (что-то вроде тумана войны). Сетка по идее может выводиться вместе с территорией, а может и отсутствовать. Я решил делать все 3 штуки полупрозрачными плоскостями (шейдер transparent diffuse). У меня, ясное дело вышла фигня. И вот почему:
Using transparent objects in your game can be tricky, as there are traditional graphical programming problems that can present sorting issues in your game. For example, if you see odd results when looking through two windows at once, you're experiencing the classical problem with using transparency. The general rule is to be aware that there are some cases in which one transparent object may be drawn in front of another in an unusual way, especially if the objects are intersecting, enclose each other or are of very different sizes. For this reason, you should use transparent objects if you need them, and try not to let them become excessive. You should also make your designer(s) aware that such sorting problems can occur, and have them prepare to change some design to work around these issues.

Т.е. проблема стандартная. Сейчас я вывожу на выбор что-то одно, но это не удобно, т.к. сетку хочется видеть для оценки масштабов, а иногда хочется убирать. Текстура территорий достаточно большая (до 1200 на 1200 в зависимости от размеров карты). Есть идея делать процедурно при смене режима, но по моему будет жрать много памяти и возникнет задержка. Ещё есть идея сделать 5 текстур: территории с сеткой, территории без сетки, карта разведки с сеткой, карта разведки без сетки, и сетка отдельно. Т.е. текстур становится много, а это нехорошо( (полная Ж) ).
Какие могут быть варианты действий?
Ashvar
UNIт
 
Сообщения: 62
Зарегистрирован: 20 ноя 2011, 16:22

Re: Несколько полупрозрачных текстур

Сообщение jetyb 11 мар 2013, 09:48

Сделай шейдер с дефолтной текстурой и текстурой сетки. Также добавь туда какое-то общее float поле. А шейдер настрой так: если поле > 0, то сетку накладывать, иначе - нет.
Или, что проще, вообще 2 материала: с наложением и без, и менять их в рантайме.

Как вариант, в стандартных проекторах есть проектор сетки.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Несколько полупрозрачных текстур

Сообщение Ashvar 11 мар 2013, 12:44

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

Появилась идея сделать несколько камер. Полупрозрачный материал с последней камеры не перекроет картинку с первой?
Ashvar
UNIт
 
Сообщения: 62
Зарегистрирован: 20 ноя 2011, 16:22


Вернуться в Общие вопросы

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

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