2016-05-05 9 views
2

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

По сути, это где я нахожусь:

enter image description here

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

Как я могу перестать показывать материал? Фон - это skybox, и это единственное, что я хотел бы показать через прозрачность.

Любая помощь или совет приветствуются.

+0

Вы имеете в виду зеленые небоскребы? действительно, вы сможете увидеть те, которые находятся на дальнем конце ... – Fattie

+0

Просто введите указатель для всех, кто приключен к игре. В некоторых случаях вроде этого вам нужно «TransparencySortMode.Orthographic» для решения проблем дня. – Fattie

ответ

2

это немного сложно сделать это:

единственный путь:

выключить каждый зеленый небоскреб, когда он находится в положении «назад».

Допустим, что ваш мир просто сосредоточены на 000.

В этом случае, если вы об этом думаете, что это просто ...

Если z>0f, то вы хотите зеленый небоскреб быть невидимым , Если это z<0f, вы хотите, чтобы он отображался нормально.

Поскольку это Unity, вы должны работать как агент. Так что на самом деле все просто. Сделать сценарий (псевдокод)

Class HideMeIfAwayFromCamera 
{ 
Update() 
{ 
if (z > 0f) renderer.enabled = true; 
else renderer.enabled = false; 
} 
} 

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

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

Обратите внимание, что другой подход есть. Вам необходимо использовать вырезной шейдер; полностью использовать другой слой для небоскребов; и использовать еще один слой для любых небоскребов, база которых находится за горизонтом; таким образом, вы можете позволить ему показать «вершины» любых небоскребов, которые «находятся позади» горизонта, но скрывают основания. Однако это кажется слишком сложным. Я думаю, что лучшим результатом будет просто отключить задние, как показано выше.

(обратите внимание на то, что это не «физическое» Если шар прозрачен:... Вы должны быть в состоянии увидеть небоскребы на спине Итак, вы должны были бы попробовать некоторые вещи, чтобы увидеть, что чувствует себя хорошо)

+0

Я думал об этом методе, но я остановился и решил сначала спросить здесь. Моя самая большая проблема связана с их количеством. Есть примерно 1000. Будет ли что-то подобное интенсивно работать в Update? –

+0

Нет нет. Спасибо, что подтвердили это решение. Я просто попробовал, и все получилось хорошо. Но мне интересен другой метод шейдеров. Есть ли у вас какие-либо ссылки на «шейдер для выреза», который я мог бы рассмотреть в качестве альтернативы. –

+0

Отмечено как ответ в любом случае. –

 Смежные вопросы

  • Нет связанных вопросов^_^