标签: opengl-es

OpenGL ES - 改变纹理中的颜色色调

我正在为iPhone开发一个简单的2D OpenGL游戏.我的问题是我想使用不同的色调渲染纹理.基本上我想改变我渲染的纹理中的颜色的色调.简单地改变glColor是行不通的,因为它也会影响图像中没有颜色的部分.有任何想法吗?

iphone opengl-es

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

OpenGL ES.滚动3层星空纹理让我从60 - > 40 FPS

我需要为2D空间滚动射击者绘制背景.我需要实现3层恒星:一个远处的星云(移动得非常慢)在背景中,一层远处的恒星(移动缓慢)和一层近距离恒星(正常移动)在另外两颗恒星之上.

我第一次尝试这种方式的方法是使用3个320 x 480的纹理,它们是透明的星星.我使用了GL_BLEND和SRC_ALPHA,ONE_MINUS_SRC_ALPHA.

即使在3GS上,结果也不是很好.在第一代设备上,FPS下降到40..50所以我认为我这样做是错误的.

当我禁用GL_BLEND时,即使在第一代设备上也一切都很好,并且FPS再次回到60 ......所以我必须尝试贴上大透明纹理.

问题是我不知道如何以其他方式做到这一点......

我应该只画出不透明纹理的第一个星云,然后尝试模仿中间和顶部的星星层,在屏幕周围移动小点吗?

混合问题还有其他方法吗?如何加快渲染过程?一个大的纹理(tileset)答案是什么?

请帮帮我,因为我被困在这里,我无法离开.

iphone textures blending opengl-es

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

学习OpenGL ES的最佳方式

我正在修复我的第二个应用程序,这将是一个游戏,我想开始学习OpenGL ES.我还没有找到很多教授opengl es的书,所以我想找出最好的学习方法.我想要达到几乎专家的水平,因为我希望有一天能成为一名全职手机游戏开发者.

我见过Jeff LaMarches教程,我知道NeHe教程.我个人正在考虑购买OpenGL蓝皮书(下面的链接)并首先学习OpenGL.主要是因为我在大学里学过科学可视化课程,但没有使用opengl或directx,我需要更多地了解基础知识.

那么,对于那些还在我身边的人来说,学习OpenGL ES的建议是什么?

http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321498828/ref=sr_1_1?ie=UTF8&s=books&qid=1260995048&sr=8-1

opengl-es

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

绘图时,OpenGL ES Framebuffer奇怪的镜像

我真的无法理解这个:

以前我无法让Framebuffers工作,但我现在已经开始了.然而,这种令人难以置信的奇怪镜像正在从帧缓冲器生成纹理,我不知道为什么.基本上,我将尝试使用GL_TRIANGLE_FAN在0,0处绘制纹理,并且纹理在右上角显示为正常(或多或少),但出现在左下角,镜像.如果我用相同的纹理填充我的大部分或全部视口区域,结果是一个丑陋的z-fighting重叠.

屏幕截图将更加正义.

原始图片:

原文http://img301.imageshack.us/img301/1518/testsprite.png

绘制80x80 at(0,0)

80x80 http://img407.imageshack.us/img407/8339/screenshot20100106at315.png

在(0,0)绘制100x180

100x180 http://img503.imageshack.us/img503/2584/screenshot20100106at316.png

在(0,0)绘制320x480

320x480 http://img85.imageshack.us/img85/9172/screenshot20100106at317.png

这是我的代码:

设置视图:

//Apply the 2D orthographic perspective.
glViewport(0,0,320,480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0, 320, 480, 0, -10000.0f, 100.0f);

//Disable depth testing.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glDisable(GL_DEPTH_TEST);

//Enable vertext and texture coordinate arrays.
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glShadeModel(GL_SMOOTH);

glClearColor(0.5f, 0.5f, 0.5f, 1.0f);   

glGetError(); // Clear error codes

sprite = [Sprite createSpriteFromImage:@"TestSprite.png"];
[sprite retain];

[self createTextureBuffer];
Run Code Online (Sandbox Code Playgroud)

创建纹理缓冲区.

- (void) createTextureBuffer
{
    // generate texture
    glGenTextures(1, &bufferTexture);
    glBindTexture(GL_TEXTURE_2D, bufferTexture);
    glTexImage2D(GL_TEXTURE_2D, 0, …
Run Code Online (Sandbox Code Playgroud)

iphone fbo opengl-es framebuffer

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

为什么UIImageView会"变暗"/饱和PNG图像,我可以阻止它吗?

我在UIImageView中有一个PNG文件,旁边有一个EAGLView,它显示同一图像(长故事)作为纹理的延续,由同一个原始PNG雕刻而成.关键是,这些应该完美匹配的图像实际上具有稍微不同的色彩饱和度.

通常我会责怪我在GL中处理PNG纹理加载,但是当我将预览(使用PNG)保持到iPhone模拟器时,它就是GL的亮点,而UIImageView则错了!它采取了图像,使它变得更加饱和.图像视图不透明,100%alpha.

我在一个干净的UIImageView上用另一个PNG文件验证了这个,当放在预览旁边时.

谁知道怎么了?

iphone png opengl-es uiimageview color-space

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

iPad OpenGL ES FPS太慢了!

我目前正在为iPad开发OpenGL ES 1.1应用程序

它以完整的768x1024 iPad分辨率运行,具有纹理,多边形和作品

只有大约30帧/秒!(对我来说不够快)

我很确定它不是我的代码,因为当我降低分辨率时,FPS增加,最终在iPod touch resoultion正常60

是否有其他人遇到这种FPS减速?我应该缩小尺寸然后放大吗?...还有,升级到opengl 2.0会增加速度吗?

任何指导都非常感谢!

opengl-es ipad

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

Opengl三角形而不是方形

我试图使用opengl在xcode内部创建一个旋转的方块但是由于某种原因我有一个旋转的三角形?

我在sio2里面做这个,但我不认为这是问题所在.

这是三角形:http: //img220.imageshack.us/img220/7051/snapzproxscreensnapz001.png

这是我的代码:

void templateRender( void )
{
    const GLfloat squareVertices[] ={
        100.0f, -100.0f,
        100.0f, -100.0f,
        -100.0f, 100.0f,
        100.0f, 100.0f,

    };

    const unsigned char squareColors[] = {
        255, 255, 0, 255,
        0, 255, 255, 255,
        0, 0, 0, 0,
        255, 0, 255, 255,
    };


    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();

    glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT );

    // Your rendering code here...

    sio2WindowEnter2D( sio2->_SIO2window, 0.0f, 1.0f );
    {
        glVertexPointer( 2, GL_FLOAT, 0, squareVertices );
        glEnableClientState(GL_VERTEX_ARRAY);
        //set up the color array …
Run Code Online (Sandbox Code Playgroud)

xcode opengl-es sio2

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

在UIViewController上画一条线

我的iPhone上的应用程序带有UIViewController,其中包含一些内容..图像,文本框等...有没有办法在UIViewController中直接使用opengl绘制一条线或类似的东西?

提前致谢

iphone opengl-es uiviewcontroller

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

在UIView或CALayer中显示CAEAGLLayer

尝试让OpenGL ES在iPhone上运行起来相当新,但我已经从OpenGL模板创建了一个工作演示,并希望将它添加到另一个应用程序,这是一个标准的UIViewController应用程序.在搜索之后,似乎我无法将CASAGLLayer的子视图添加到CALayer,即UIView.我该怎么做呢?或者我在做什么完全错了.

欢呼任何帮助

iphone opengl-es calayer uiviewcontroller

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

Android OpenGL ES - 我无法使gluLookAt/gluPerspective工作

以下文字有点长,因为我想确保那些有类似问题的人,例如google这个页面可以轻松地轻松地遵循确切的问题及其解决方案.但现在我的问题:

我最近开始在Android智能手机上编程OpenGL ES,并且遇到了解如何使用gluPerspective和gluLookAt的问题.我我明白他们做了什么,但我看不到我画的三角形.我在我的活动的onDrawFrame方法中运行以下代码.所述活动使用标记为@Override的onDrawFrame实现GLSurfaceView.Renderer.我的代码是:

gl.glViewport(0, 0, screen_width, screen_height);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); //set background to black
gl.glClearDepthf(1.0f); 

gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

gl.glMatrixMode(GL10.GL_PROJECTION); // Change PROJECTION matrix
gl.glLoadIdentity();

float aspect_ratio = (float) screen_width / screen_height;
GLU.gluPerspective(gl, 67, aspect_ratio, 1, 100);

gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glMatrixMode(GL10.GL_MODELVIEW); // Change MODELVIEW matrix
gl.glLoadIdentity();

GLU.gluLookAt(gl, 0, 0, 20, 0, 0, 0, 0, 1, 0);

// make triangle with vertices (-2,0,0), (2,0,0), and (0,.5,0)
float[] vertices = { -2f, 0, 0, 2f, 0, 0, 0, .5f, 0 };
ByteBuffer …
Run Code Online (Sandbox Code Playgroud)

java 3d android opengl-es

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