2014-02-21 3 views
2

Это не вопрос, но я был очень смущен тем, что 3D-пространство соответствовало тому, что. Я привык слышать пространство модели, просмотра, проекции, но на моей работе они используют World, Eye, Projection. Я не понимал, что World and Eye являются синонимами модели и взгляда, поэтому, если у кого-то есть путаница в этом, я нашел следующее разъяснение, чтобы помочь (надеюсь, это поможет вам).3D-пространства (модель/мир, вид/глаз, проекция)

Локальное пространство: Это координаты, которые составляют 3D-модель в программе рендеринга, например 3Ds Max или любой другой. Он определяет пространство вершин для самой 3D-модели.

Модель/мир Космос: Умножение координат локального пространства на матрицу Model/World приведет их в Модели/Мировое пространство. Model/World Space - это 3D-мир, как мы себе представляем, без какой-либо перспективы.

View/Eye Space: Умножение координат модели/мира по матрице вида/глаза приведет их в поле зрения/глаза. Здесь координаты размещаются на экране, смещенном с точки зрения используемой перспективы. Поэтому, если вы используете перспективную проекцию, это будет позиционировать все координаты, чтобы они выглядели так, как будто они имеют глубину.

Матрица проецирования: Умножение координат пространства зрения/глаза на матрицу проекции будет занимать точки 3D-перспективы и правильно отображать их в 2D-окне просмотра (иначе экран).

Viewport/Однородное пространство: После умножения на матрицу проекции ваши точки должны быть сопоставлены с «реальной плоскостью». Это по существу нормализация; мы берем каждую координату x, y, z и делим ее на ее w-компонент. Координаты также скорректированы, чтобы переместить начало координат из центра экрана в верхний левый.

Пожалуйста, не стесняйтесь предлагать конструктивную критику, я открыт для любых предложений. Вот некоторая дополнительная информация, которую я использовал http://antongerdelan.net/opengl/raycasting.html

+0

Помимо того, что это даже не вопрос, есть так много неправильных претензий, которые это делает. «Модельное» пространство используется синонимом пространству объектов или «локальному» пространству, а не мировому пространству. Пространство просмотра не применяет никакой перспективы, типичная матрица проекции не выполняет 3d-> 2d-проекцию, «однородное пространство» не является этапом в конвейере трансформации, а является базовой математической концепцией для всего этого пространства и даже конца трансформационный конвейер, оконное пространство, по-прежнему 3D - это то, что работает буфер z. – derhass

+0

Слово «Модель» может быть запутанным и в зависимости от того, с кем вы разговариваете, из-за «3D-модели». Это основано на том, что я нашел и что рассказали мне несколько людей в этой области, что я узнал в школе, и что я нашел в книгах/интернет-исследованиях. Однородное пространство является этапом в трубопроводе в соответствии с несколькими источниками, включая предоставленный мной источник. Вы первый человек не соглашаетесь с этим после 4 лет пребывания здесь. – Katianie

+0

В вашей ссылке говорится «однородное пространство клипов», где «однородный» является просто прилагательным для описания свойства _clip space_ (которое является фактическим именем этого пространства).Но обычная формулировка аффинных преобразований, используемых для преобразования модели и представления, основана на использовании в первую очередь однородного пространства (поэтому мы используем матрицы 4x4 для 3D-преобразований), хотя это и не является строго необходимым. – derhass

ответ

1

Как идея, но вы можете добавить заключительный этап «Видовое пространство» (или что-то в этом роде).

Вы намекали на него на этапе проекционной матрицы, но это отдельное преобразование, применяемое к вершинам после матрицы проекции, в которой координаты x, y и z делятся на их w-компоненту, чтобы отобразить их в "real плоскости ", из однородных координат, и координаты скорректированы для перемещения (0,0), начало координат, от центра экрана до верхнего левого угла.

+0

Хорошая идея, я добавлю это. – Katianie

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