代码之家  ›  专栏  ›  技术社区  ›  AndyPerfect

在xp vs 7中在OpenGL中显示纹理时出现问题

  •  0
  • AndyPerfect  · 技术社区  · 14 年前

    我遇到了一个最奇怪的问题,我就是无法控制。在过去的几个月里,我一直在用vb.net在windows 7中开发一个应用程序。该程序涉及一些基本的OpenGL绘图和动画,基本的形状(正方形和圆形)和基本的纹理映射到点列表上。是时候把程序分发到另一台机器上了。但在一些机器上,我在绘制纹理时遇到问题。我知道OpenGL仍然有效,因为绘制基本的正方形和圆形仍然存在,纹理对象是唯一缺少的东西。

    我已经在多台Windows7 64位机器上测试了这个问题,所有的工作都很好。

    在Windows XP 32位计算机上安装程序会导致此问题。未引发任何错误。程序没有崩溃。纹理不会被绘制到屏幕上。所有其他简单的形状仍然存在,并且程序的任何功能都不会受到影响。

    我在Windowsxp32和64位虚拟机上测试了相同的问题,在这两个方面都出现了相同的问题。这是在安装到最新更新并安装.NET Framework 3.5之后进行的。这让我相信这不是X64/x86的问题,而是Windows XP本身的问题。

    OpenGL中是否有Windows XP不支持的功能?这个想法在我看来很奇怪,我看不出这是问题所在。

    我提出的唯一可能的解释是,在xp和7中,初始化的调用顺序可能不同,但我的测试没有证明任何方法。几何图形在初始化时从文本文件加载,这就是为什么这似乎是另一种可能的解释。

    更新

    我已经在不同的机器上做了进一步的测试,并且在Windows7 32位中遇到了运行良好的程序,但是在运行Windows7 64位的另一台机器上遇到了这个问题。因此,我可以得出结论,它与操作系统无关,但有一些变量是我没有确定的,导致了这个问题。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Bahbar    14 年前

    除了驱动程序之外,可以解释渲染差异的主要类别是硬件支持的差异。

    我能想到的最直接的特征可以解释这一点,那就是缺乏两种纹理支持的非权力。这在很长一段时间后被添加到OpenGL中,但您可能仍然会发现不支持它的较旧硬件(因此硬件将不支持较新的OpenGL版本)。

    不显示的纹理大小是多少?

        2
  •  1
  •   Jerry Coffin    14 年前

    支持的功能主要取决于图形驱动程序,而不是操作系统本身。至少有一个 合理地 最近的驱动程序,但在XP下我没有遇到问题(Otoh,i 必须在Windows7中解决一些奇怪的问题)。你的代码可能有一些不总是出现的错误,但是如果没有任何代码可以查看,很难猜测。