gpt4 book ai didi

在 OpenGL 中加载图像以用于 GIS 应用程序

转载 作者:行者123 更新时间:2023-12-04 06:48:09 25 4
gpt4 key购买 nike

我目前正在开发一个内部 GIS 应用程序。背景图像通过将图像分解成我猜被称为纹素和 mipmapped 的图像在 OpenGL 中加载,然后构建显示列表以将每个纹素纹理映射到矩形上。这听起来很标准,但问题是目前对于不能整齐划分为 2^n 像素 x 2^m 像素纹素的图像,其余部分被丢弃。即使我要捕获剩余部分并以某种方式处理它们,我也无法想象答案是不断测试 texel 分割,最终导致在整洁的边界上完全捕获图像?或者是吗?

在某些情况下,我加载的图像是 geotiff,我需要将每个像素都包含在我的背景中。我听说 glDrawPixels 很慢。我知道我可以自己测试这个,但我有一种感觉,这个领域的人正在使用 opengl 中的纹理,而不是跟踪像素转储。

我是 OpenGL 的新手,我相信该应用程序将自身限制为 1.1 次调用。

最佳答案

在 OpenGL 1.1 中处理两个图像的非幂的标准方法是将图像存储在具有最近的 2 次幂的维度的纹理中,然后修改纹理坐标,一些伪代码:

float sMax = image.width / texture.width;
float tMax = image.height / texture.height;

glBegin(GL_QUADS);
glVertex2f(0, 0);
glTexCoord2f(sMax, 0);
glVertex2f(1, 0);
glTexCoord2f(sMax, tMax);
glVertex2f(1, 1);
glTexCoord2f(0, 0);
glVertex2f(0, tMax);
glTexCoord2f(0, 1);
glEnd();

使用更高版本的 OpenGL 或者如果您使用扩展,您可以使用矩形纹理:

http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt

关于在 OpenGL 中加载图像以用于 GIS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3496258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com