我试图在现代opengl中渲染一系列2D形状(矩形,圆形等),希望不使用任何变换矩阵。我想让我能够指定一个2个三角形的矩形坐标,如下所示:
float V[] = { 20.0, 20.0, 0.0,
40.0, 20.0, 0.0,
40.0, 40.0, 0.0,
40.0, 40.0, 0.0,
20.0, 40.0, 0.0,
20.0, 20.0, 0.0 }
您可以看到顶点坐标是在视口中指定的吗?空间(我相信这就是所谓的)。现在,当这个由opengl渲染时,它不起作用,因为剪辑空间从-1.0到1.0,原点位于中心。
对我来说,处理这个问题的正确方法是什么?我最初认为将glClipControl调整到左上角,0到1可以工作,但它没有。当剪辑控件设置为左上角且0到1时,原点仍然位于中心,但它确实允许Y轴在向下移动时增加(这是一个开始)。
理想情况下,我希望让opengl让0.0,0.0为左上角,1.0,1.0为右下角,然后我只是将每个顶点位置标准化,但我不知道如何使用opengl那种坐标系。
答案 0 :(得分:0)
在顶点着色器中没有矩阵的情况下,可以很容易地进行这些变换:
public static void main(String[] args) throws IOException {
File inFile = new File("DenverSortedCities.txt");
if (inFile.exists()){
Scanner input = new Scanner(inFile);
while(input.hasNextLine()){
String cityInfo = input.nextLine();
String[] cityInfoArray = cityInfo.split("0,1");
int populationValue = Integer.parseInt(cityInfo);
}
System.out.println(input.nextLine());
input.close();
} else {
System.out.println(inFile.getName() + " does not exist.");
System.exit(1);
}
}