小编Jul*_*per的帖子

我应该使用几个glDrawArrays()还是将所有顶点收集到一个大的glDrawArrays调用?

我正在开发一个个人Java OpenGL(JOGL)项目,我正在使用一些带有独立绘图函数和顶点的自定义对象.

public class Cube extends PhysicalObject {

 public void draw(GL gl) {

         gl.glColor3f(1.0f, 1.0f, 0.0f);

         gl.glEnableClientState(GL.GL_VERTEX_ARRAY);  // Enable Vertex Arrays

            gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);  

            gl.glVertexPointer(3, GL.GL_FLOAT, 0, vertices); 

            gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, texCoords); 

            gl.glDrawArrays(GL.GL_QUADS, 0, 4*6);  


            gl.glDisableClientState(GL.GL_VERTEX_ARRAY);  

            gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY); 

}
Run Code Online (Sandbox Code Playgroud)

然后我循环遍历一大堆这些立方体,调用它们的绘图函数.我的问题如下:我应该将所有顶点收集到一个大的glDrawArrays调用,即将所有顶点收集到一个大数组并绘制它?它对性能和fps有多大帮助?

java opengl jogl vertex-array

4
推荐指数
1
解决办法
2435
查看次数

纹理不能正确拉伸.为什么会这样?

我正在使用LWJGL和Slick框架将Textures加载到我的OpenGL应用程序中.

我正在使用这个图片: 日本国旗,用于纹理

这个代码导入并利用纹理:

    flagTexture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("japan.png"));
Run Code Online (Sandbox Code Playgroud)

......

    flagTexture.bind();

    GL11.glColor3f(1.0f, 1.0f, 1.0f);
    GL11.glPushMatrix();

    GL11.glTranslatef(0.0f, 0.0f, -10.0f);

    GL11.glBegin(GL11.GL_QUADS);
    GL11.glTexCoord2f(0.0f, 0.0f);
    GL11.glVertex2f(0.0f, 0.0f);
    GL11.glTexCoord2f(1.0f, 0.0f);
    GL11.glVertex2f(2.5f, 0.0f);
    GL11.glTexCoord2f(1.0f, 1.0f);
    GL11.glVertex2f(2.5f, 2.5f);
    GL11.glTexCoord2f(0.0f, 1.0f);
    GL11.glVertex2f(0.0f, 2.5f);
    GL11.glEnd();

    GL11.glPopMatrix();
Run Code Online (Sandbox Code Playgroud)

但最终结果变成了这样: 纹理不会拉伸到顶点参数

我没有使用任何特殊设置,如GL_REPEAT或类似的东西.这是怎么回事?如何使纹理填充给定的顶点?

java opengl graphics textures lwjgl

4
推荐指数
1
解决办法
1627
查看次数

iPhone EKEvent可用性,我尝试设置它,但它不会改变

我试图用我的应用程序设置我导入到iphone日历中的事件的可用性.我使用这段代码:

[event1 setAvailability:EKEventAvailabilityFree];
Run Code Online (Sandbox Code Playgroud)

当我将我的iphone同步到我的iCal时,我检查事件的可用性,并说"忙".Xcode确实要求一个整数,但是free选项没有.当我运行此代码时,我没有错误,有人可以帮助弄清楚什么是错的.

iphone sdk user-interface

3
推荐指数
1
解决办法
1158
查看次数

什么是默认的Cocos2D计划间隔?

在cocos2d中使用默认(空白)interval参数创建计时器时:

 [self schedule:(update)]; 
 //Not a 100% sure this code is correct, but you know what i mean
Run Code Online (Sandbox Code Playgroud)

计时器运行的间隔是什么,我认为是1/60,但我不确定.

iphone objective-c intervals cocos2d-iphone

3
推荐指数
1
解决办法
2858
查看次数