У меня есть система координат, в которой верхний левый угол 1002 * равен (0,0), а нижний правый 1004 * равен (375 647)
В этой системе у меня есть координаты вершин, как показано ниже:
var Vertices = [
Vertex(x: 0, y: 0, z: 0, r: 1, g: 0, b: 0, a: 1),
Vertex(x: 375, y: 0, z: 0, r: 1, g: 0, b: 0, a: 1),
Vertex(x: 375, y: 647, z: 0, r: 1, g: 0, b: 0, a: 1),
Vertex(x: 0, y: 647, z: 0, r: 1, g: 0, b: 0, a: 1),
]
, поэтому вершины рисуют прямоугольник, который заполняет всю мою систему координат. Размер экрана (750,1294). Моя система координат представляет этот экран.
с координатами устройства, преобразованными из металла, используйте левую систему координат и сопоставьте с позициями в области просмотра. Примитивы обрезаются на поле в этой системе координат, а затем растеризуются. Левый нижний угол отсечения имеет координаты (x, y) (-1,0, -1,0), а правый верхний угол - (1,0,1,0).
Как нарисовать мои вершины металлом? Я пытаюсь сделать
[RenderCommand setViewport: (MTLViewport){ 0.0, 0.0, 750, 1294, 0.0, 1.0 }];
, но это шов не работает, так что, может быть, я что-то пропустил?