В металле какую систему координат использовать внутри шейдера (внутри и снаружи)? и когда мы рендерим в текстуру, это то же самое? с z-буфером тоже? Есть ли несоответствия? наконец, в чем разница между металлом, opengl и directX?
Какая система координат используется в металле?
Ответы (1)
Металлические системы координат
Metal определяет несколько стандартных систем координат для представления преобразованных графических данных на разных этапах конвейера рендеринга.
1) NDC (нормализованная координата устройства): эти координаты используются разработчиками для построения своей геометрии и преобразования геометрии в вершинном шейдере с помощью матриц модели и представления.
Point (-1, -1) в NDC находится в нижнем левом углу (Y вверх)..
2) Координата буфера кадра (координата области просмотра): когда мы записываем во вложение или читаем из вложения или копируем / копируем между вложениями, мы используем координату буфера кадра, чтобы указать местоположение. Начало координат (0, 0) находится в верхнем левом углу (Y вниз).
3) Координата текстуры: когда мы загружаем текстуру в память или образец из текстуры, мы используем координату текстуры. Начало координат (0, 0) находится в верхнем левом углу (Y вниз).
D3D12 и металл
NDC: + Y вверх. Точка (-1, -1) находится в нижнем левом углу.
Координата фреймбуфера: + Y вниз. Начало координат (0, 0) находится в верхнем левом углу.
Координаты текстуры: + Y вниз. Начало координат (0, 0) находится в верхнем левом углу.
OpenGL, OpenGL ES и WebGL
NDC: + Y вверх. Точка (-1, -1) находится в нижнем левом углу.
Координата кадрового буфера: + Y вверх. Начало координат (0, 0) находится в нижнем левом углу.
Координаты текстуры: + Y вверх. Начало координат (0, 0) находится в нижнем левом углу.