Я пытаюсь нарисовать рамку вокруг изображения, которое отображается с использованием OpenGL в приложении Android и iOS. Сейчас я делаю это так: указываю по 3 вершины вокруг каждого угла изображения, как показано на схеме, и заполняю их, рисуя треугольники.
![image link](https://i.stack.imgur.com/rnR7t.jpg)
Я вычисляю эти вершины путем добавления / вычитания абсолютного значения, называемого BORDER_WIDTH , которое устанавливается в число с плавающей точкой. Например, 3 вершины вокруг левого угла визуализированного изображения (отмечены как 0,1,2 на изображении, указанном выше) вычисляются следующим образом.
[bottom_left_viewport_vertex[0] - BORDER_WIDTH, bottom_left_viewport_vertex[1], 0.0f,
bottom_left_viewport_vertex[0] - BORDER_WIDTH, bottom_left_viewport_vertex[1] - BORDER_WIDTH, 0.0f,
bottom_left_viewport_vertex[0], bottom_left_viewport_vertex[1] - BORDER_WIDTH, 0.0f]
Этот метод вызывает 2 проблемы:
- Граница намного толще на устройствах iOS по сравнению с устройствами Android, вероятно, из-за дисплея Retina .
- Ширина границы на верх и низ изображения отличается от такового на сторонах изображения.
Каков правильный способ решить такую проблему? Спасибо.