gpt4 book ai didi

Java OpenGL GL_TEXTURE_2D 使其他颜色变暗

转载 作者:行者123 更新时间:2023-12-04 05:51:13 25 4
gpt4 key购买 nike

我正在尝试将纹理放入我的 Java OpenGL 场景中,但是当我这样做时,其他事物的颜色会出现偏差,就好像它错误地混合了颜色一样。我将 LWJGL 用于 OpenGL,将 Slick 用于加载纹理。当我离开 GL11.glEnable(GL11.GL_TEXTURE_2D);调用未注释颜色变暗,但是当我评论一行颜色是正确的,但是我显然没有纹理。

我已将代码放在这里 http://codepaste.net/26bguu

有问题的行是第 63 行

我发现的一种解决方法是在我绘制纹理之前启用纹理,然后立即再次禁用。但是我觉得这应该是不必要的。下面是一些屏幕截图,显示了我的意思。唯一的区别是一行注释与未注释。

Without textures enabled. All colours are bright.

With textures enabled. All colours are darker.

最佳答案

您确实需要启用和禁用 GL_TEXTURE_2D按要求。

如果 GL_TEXTURE_2D启用后,GL 将(通常)忽略您提供的顶点颜色,而是将给定的纹理坐标映射到给定的纹理以获取每个片段/像素的颜色。如果你不传递纹理坐标,任何事情都可能发生——比如你发布的第二个屏幕截图。

必须进行 20 多次 opengl 调用来准备绘制每个“对象”的情况并不少见。这就是为什么 OpenGL 程序员花费大量时间将大量三角形组合到单个缓冲区中以通过一次绘制调用立即绘制的原因——它极大地提高了性能。

关于Java OpenGL GL_TEXTURE_2D 使其他颜色变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013845/

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