Текстура размыта в Apple Metal / GLFW / C ++C++

Программы на C++. Форум разработчиков
Anonymous
Текстура размыта в Apple Metal / GLFW / C ++

Сообщение Anonymous »

Я работаю над приложением MacOS с рендерингом на основе металлов.
App полностью в C ++ и использует Metal-CPP+ GLFW. < /p>
Попытка реализовать качество Pixel-Levect verendered. Я столкнулся с проблемой текстовой Triangles: Texture Blurred даже с Mtl :: strudeScriprycriptor samplecount = 1 < /1 < /1 < /1 < /1 < /1 < /1 < /1 < /1 < /1 < /1 < /1 < /кодовой. MAG_FILTER :: ближайший , min_filter :: ближайший и т. Д.

Код: Выделить всё

constexpr sampler textureSampler(
mag_filter::nearest,
min_filter::nearest);
As glfwGetWindowContentScale returns (2,2) scale, resulting image is expected to be 6x6 pixels, but actually it is rendered as 8x8 pixels and blurred.
It looks like 0.5 pixel is added by renderer at each side and all colors are interpolated:

оригинальная текстура 3x3:

Треугольники для вызова для рисования созданы из квадратных точек (P0, P1, P2, P3), указанные в порядке CW, поэтому я проверил отладчик, что все правильно:
// Coordinates of square x0, y0, x1, y1, x2, y2, x3, y3:
coord = { 639.5, 715.5, 642.5, 715.5, 642.5, 718.5, 639.5, 718.5 };
// Corresponding texture coordinates:
texCoord = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f };
< /code>
Я также пытался нарисовать изображение 1x1. С или без 0,5 смещения, этот результат на 100% одинаково - размыто:


Подробнее здесь: https://stackoverflow.com/questions/795 ... tal-glfw-c

Вернуться в «C++»