Создание плоских теней с матрицами 4х3? - PullRequest
0 голосов
/ 10 августа 2009

Мне было просто интересно, как мне создать плоскую тень из матрицы 4x3, во всех онлайн-демонстрациях, которые я видел, вместо этого используются матрицы 4x4.

Ответы [ 3 ]

2 голосов
/ 10 августа 2009

Я полагаю, что это делается путем проецирования трехмерного объекта на плоскость, которая по существу нуждается в четвертой координате для представления бесконечности. Если вы используете только 3 координаты, вы можете представить только | R ^ 3. Однако для таких проекций, как тени, вам понадобится полное трехмерное пространство, включая бесконечность, поэтому вам нужна четвертая координата.

Я думаю, вы можете решить это с помощью тригонометрии, а не матриц вообще.

Чего вы пытаетесь достичь?

1 голос
/ 10 августа 2009

Как отмечено в другом ответе, вам действительно нужно 4x4 для кодирования проекции.

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

0 голосов
/ 11 августа 2009

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

Википедия имеет довольно хорошее объяснение. Много ресурсов вокруг сети. Google для "Shadow Mapping"

...