小编Ami*_*mir的帖子

glDrawElements vs glDrawArray效率

我正在为iOS和Android制作游戏.我在很多地方都看到使用索引绘制比绘制三角形数组更有效.

问题是我正在使用有损压缩顶点(如md2的文件格式)并且它只需要单独的索引 - 数组:N*3(xyz)*1(uchar)+ translate(12字节)+ scale( 12个字节).元素:N*3(xyz)*4(uint)+数组/ ~10

似乎数组比索引和压缩元素更好的选择,尽管苹果的OpenGL分析器工具说我应该使用glDrawElements ..

OpenGL实现是否更喜欢索引数组?或者是因为索引数组包含的数据少于常规未压缩数组?

ps我正在使用OpenGL es 2.0,而顶点着色器是解压缩顶点的人.

iphone android opengl-es

6
推荐指数
1
解决办法
1889
查看次数

无法在OpenGL中的2D(正交)上绘制3D(Frustum)

我正在尝试在背景图像(正投影)上渲染一些带有Frustum投影的网格.无论我做什么,背景图像都会保持在场景之上(隐藏网格物体).

我尝试过一点测试 - 当我用相同的投影矩阵渲染它们时,它们的顺序是正确的 - 背景图像在网格后面.

这些是投影矩阵和Depth-Buffer init:

glEnable(GL_DEPTH_TEST);
glClearDepthf( 1.0f );
glDepthFunc( GL_LEQUAL );
glDepthMask (GL_TRUE);

EGLConfig eglconfig;
EGLint const attrib_list[] = {
    EGL_DEPTH_SIZE, 16,
    EGL_NONE
};
EGLint numreturned;
CHECK(eglChooseConfig(esContext.eglDisplay, attrib_list, &eglconfig, 1, &numreturned) != EGL_FALSE);

float fieldOfView = 60.0;
float znear = 0.1f;
float zfar = 100000;
float size = (float)(znear * tanf((fieldOfView * M_PI /180.0f) / 2.0f)); 

m_orthoProjMatrix.loadOrtho(0, 
                            screenWidth, 
                            0, 
                            screenHeight, 
                            znear, 
                            zfar);

m_frustProjMatrix.loadFrustum(-size, 
                               size, 
                              -size / (screenWidth / screenHeight), 
                               size / (screenWidth / screenHeight), 
                               znear, 
                               zfar); …
Run Code Online (Sandbox Code Playgroud)

opengl-es frustum orthographic projection-matrix opengl-es-2.0

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

我允许在我计划提交给applestore的代码中使用c ++吗?(iPhone产品)

我听说苹果因为条款严厉而丢掉了很多应用程序.我不想对我的项目太过分了,因为我知道以后很难重写它.

现在我开始将它重写为Objective-C(来自c ++),因为我得到了苹果只采用纯粹的Objective-c代码的印象.在网络的某些地方,人们提供c\c ++中的解决方案,用于解决使用objective-c无法解决的问题,这让我有点想到重写.

为了清除问题,有人可以给我一个方向,我在哪里可以找到苹果的iPhone代码条款?

objective-c ios

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