У меня есть входная текстура 852x640 и выходная текстура 612x612.Я передаю ввод через шейдер и хочу, чтобы вывод был масштабирован и правильно обрезан.У меня проблемы с настройкой squareCoordinates
, textureCoordinates
и viewPorts
для правильной совместной работы.
Я не хочу просто обрезать, я хочу масштабировать его, чтобы получить наибольшее количествоизображение как можно скорее.Если бы я использовал Photoshop, я бы сделал это в два шага (в OpenGL я пытаюсь сделать это за один шаг):
- Масштабировать изображение до 612x814
- Обрезатьизбыточные 101px с каждой стороны
Я использую стандартные квадратные вершины и вершины текстуры:
static const GLfloat squareVertices[] = {
-1.0f, -1.0f,
1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, 1.0f,
};
static const GLfloat squareTextureVertices[] = {
0.0f, 0.0f,
1.0f, 0.0f,
0.0f, 1.0f,
1.0f, 1.0f
}
Я точно не знаю, каким должен быть viewPort.