Правильный способ обработки 2D z-индексации в 3D-сцене (DirectX) - PullRequest
0 голосов
/ 12 декабря 2008

Мне нужно добиться следующего:

Два двумерных квадрата выглядят так, как будто они сложены друг на друга (как две половинки одинаковой текстуры), но фактически разделены по оси z с помощью n координат Таким образом, если 3D-объект проходит между ними, одна половина появляется перед объектом, а другая - позади.

Могу ли я достичь этого, применяя ортогональную проекцию к двум квадрам и затем нормальную перспективу к остальным трехмерным данным? Потеряет ли это данные глубины?

Надеюсь, мой пример не слишком обманчив!

1 Ответ

1 голос
/ 22 января 2009

Простой ответ - да, если у вас включена запись z во время рендеринга ваших квадов. Ваши данные z никогда не удаляются, если вы не сделаете это явно.

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

  • Визуализация всей геометрии в перспективе
  • Визуализация всей геометрии в отогональном виде
  • Визуализация ортогональной геометрии в отсортированных слоях, не прошедших z-тестирование (спереди назад), визуализация геометрии между ними.

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

...