это того стоит - это делает разницу в 10 раз от геометрии для рисования, которая, в моем случае, является разницей между комфортным временем рендеринга и недопустимым. Я понимаю, что это сложная проблема; вот и весь смысл спрашивать умных людей о переполнении стека! :)

я заметка: Этот вопрос НЕ о отбраковке геометрии (отбраковке по ребрам, отбраковке лицевой стороны, отбраковке окклюзии или о ком-либо из их друзей.) Этот вопрос о геометрииустранение во время настройки, задолго до того, как мы приступим к отбраковке и рендерингу.

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

Например, представьте 2 квадрата:

+----+      +----+
|    |      |    |
|    |      |    |
+----+      +----+

ясно, что есть 8 видимых сторон (по 4 на каждом квадрате.) Теперь я сдвигаю квадраты вместе,Vis:

+----+----+
|         |
|         |
+----+----+

Вместо того, чтобы иметь 8 сторон, теперь у меня есть только 6! Два элемента, которые соприкасаются посередине, не видны, независимо от того, где находится камера и под каким углом она расположена. (Квадраты текстурированы по-разному, поэтому мы не можем назвать это 4 сторонами.)

(То же самое работает в 3D с кубами, но 12 граней (6 на куб) становятся 10, так как устраняются 2 касания.)

Мой вопрос: какие алгоритмы помогают мне распознать эти скрытые лица? (Я счастлив сделать свой собственный поиск в Google, но я даже не знаю, как это называется!) В частности, я ищу что-то, что обрабатывает полые пятна в средних точках, которые МОГУТ быть видны, если бы вы были там, но, поскольку они окружены геометрией, вы не можете их видеть.

Например:

+----+----+----+----+
|                   |
|                   |
+    +----+         +
|    |    |         |
|    | A  |         |
+    +----+         +
|                   |
|                   |
+----+----+----+----+

В этом случае можно подумать, что существует 18 «видимых» сторон, но, поскольку мы точно знаем, что камера находится за пределами геометрии, 4 стороны в квадрате «А» не видны.

Чтобы еще больше усложнить ситуацию, я надеюсь найти алгоритм, который может делать быстрые обновления, если блок добавлен или удален (сноваа ля Майнкрафт.)

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос