Tag: 3d

OpenGL纹理毛刺与面孔

我正在使用LWJGL来创建一个简单的体素thingy作为一些练习,作为一个适度的简单项目来熟悉Kotlin 。 所以我已经得到了体素渲染下来,除了渲染每个脸上不同纹理的体素。 它看起来不错,直到我开始移动…然后: 如果有人需要整个回购,就在这里 至于相关的类,我不太确定什么是相关的,但这里是生成glVertex3f和glTexture2f的东西: public class Shape { class object { public fun CreateCube(x: Float, y: Float, z: Float, colour: ColourRGBA, tex: MutableList, size: Float) { val sheet: Spritesheet = Main.Instance!!.blocksprites var textures: MutableList = arrayListOf() if (tex.size == 1) { for (i in 0 .. 5) textures.add(tex[0]) } else textures.addAll(tex) // bottom […]

为什么绑定OpenGL缓冲区对象?

在OpenGL中,一个通用的过程是绑定一个指定的缓冲区对象(或顶点数组对象,framebuffer,…),在当前绑定的对象上调用一些操作,然后绑定某种“默认”对象: glBindBufferObject(GL_ARRAY_BUFFER, bufferObjectName) glBufferData(GL_ARRAY_BUFFER, data, GL_STATIC_DRAW) glBindBufferObject(GL_ARRAY_BUFFER, 0) (Kotlin的LWJGL) 我刚刚发现有很多功能的“命名”版本。 上面的例子会变成类似的东西 glNamedBufferData(bufferObjectName, data, GL_STATIC_DRAW) 这在面向对象的上下文中更合适。 那么为什么要用第一个例子呢? 我遇到的每一个教程都使用了第一种方法,那么在“命名”方法中是否存在一些性能损失或类似的缺点?