标签: opengl-es

OpenGL:绘制3点之间的曲线

基本上我希望在openGL中绘制3点之间的曲线,如下图所示.我发现了几段代码,这对于使用4点绘制贝塞尔曲线非常有用,但是对于3点,我确实没有成功.

在此输入图像描述

bezier opengl-es cocos2d-iphone

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

如何在android中绘制球体

如何使用OpenGL ES在Android中绘制球体?

android opengl-es

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

为什么立方体的表面呈现为透明?

我正在开发一个简单的程序,在屏幕上显示带有光照的立方体.我在Android设备上使用OpenGL ES 2.0.但只有立方体的底面是不透明的.其他表面看起来是透明的(我认为这是因为照明.当我停止使用灯光时,看起来所有表面都是不透明的),这样你就可以看到它背后的表面.

这是我的立方体的顶点:

    static float vertexs[] = { // in counterclockwise order:
    // front
    -0.5f, -0.5f, 0.5f,
     0.5f, -0.5f, 0.5f,
    -0.5f, 0.5f, 0.5f,
     0.5f, 0.5f, 0.5f,
    // back
    -0.5f, -0.5f, -0.5f,
     0.5f, -0.5f, -0.5f,
    -0.5f, 0.5f, -0.5f,
     0.5f, 0.5f, -0.5f,
    // left
    -0.5f, -0.5f, 0.5f,
    -0.5f, -0.5f, -0.5f,
    -0.5f, 0.5f, 0.5f,
    -0.5f, 0.5f, -0.5f,
    // right  
     0.5f, -0.5f, 0.5f,
     0.5f, -0.5f, -0.5f,
     0.5f, 0.5f, 0.5f,
     0.5f, 0.5f, -0.5f,  
    // up  
    -0.5f, 0.5f, 0.5f,
     0.5f, 0.5f, 0.5f,
    -0.5f, 0.5f, -0.5f, …
Run Code Online (Sandbox Code Playgroud)

android lighting opengl-es transparent opengl-es-2.0

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

用cocos2d缩放渲染图像会破坏图像质量

使用Cocos2d(v 1.01),如果我按原样显示精灵,我的质量很好,但如果我使用CCRenderTexture,图像质量很差.仅当我放大图像时才会发生这种情况.

参见随附的屏幕截图,原始图像在左侧. 在此输入图像描述 这是我的代码:

CCScene* pScene = CCDirector::sharedDirector()->getRunningScene();

CCSprite* origSprite = CCSprite::spriteWithFile("jigsaw/11.png");
origSprite->setPosition(CCPoint(250,250));
origSprite->setScale(1.3);
pScene->addChild(origSprite, 500);

CCSprite* imageSprite = CCSprite::spriteWithFile("jigsaw/11.png");
CCSize imageSize = imageSprite->boundingBox().size;
CCRenderTexture *rt = CCRenderTexture::renderTextureWithWidthAndHeight(imageSize.width, imageSize.height);
imageSprite->setPosition(ccp(imageSize.width/2, imageSize.height/2));
rt->begin();
imageSprite->visit();
rt->end();
CCSprite *newSprite = CCSprite::spriteWithTexture(rt->getSprite()->getTexture());
delete rt;
newSprite->setFlipY(true);
newSprite->setPosition(CCPoint(750,750));
newSprite->setScale(1.3);
pScene->addChild(newSprite, 500);
Run Code Online (Sandbox Code Playgroud)

scaling image opengl-es cocos2d-iphone

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

GLSL - 如何访问纹理的像素数据是GLSL着色器?

我想要做的是,在OpenGL着色器中访问纹理的像素数据.之后,将它们的红色组件进行比较,以便我可以获得具有最大红色组件的像素的坐标.我可以用目标C,CPU处理能力来做到这一点.代码如下所示.

- (void)processNewPixelBuffer:(CVPixelBufferRef)pixelBuffer
{
    short maxR = 0;
    NSInteger x = -1, y = -1;

    CVPixelBufferLockBaseAddress(pixelBuffer, 0);    
    height = CVPixelBufferGetHeight(pixelBuffer);
    width = CVPixelBufferGetWidth(pixelBuffer);

    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(pixelBuffer);
    uint8_t *src_buff = CVPixelBufferGetBaseAddress(pixelBuffer);

    short** rawData = malloc(sizeof(short*) * height);
    for (int i = 0; i < height; i++){
        rawData[i] = malloc((sizeof(short) * width));
        for (int j = 0; j < width; j++)
            rawData[i][j] = (short)src_buff[(i + width * j) * 4];
    }

    for (int j = 0; j < height; j++)
    for …
Run Code Online (Sandbox Code Playgroud)

opengl-es glsl objective-c gpuimage

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

glReadPixels在设备上返回iOS6的空缓冲区

可能重复:
为什么glReadPixels()在iOS 6.0中的此代码中失败?

以下行在iOS 6模拟器上运行良好,但在iOS 6设备上不起作用.可能有什么不对?如何解决这个问题?非常感谢.

glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
Run Code Online (Sandbox Code Playgroud)

opengl-es ios ios6

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

OpenGL ES 2.0 - 纹理四核

每当我尝试渲染纹理四边形时,我最终会得到纹理扭曲的三角形部分:请参阅此图像http://i45.tinypic.com/14mgnkn.png.

纹理是在GIMP中创建的PNG,我尝试了两种单独的加载纹理的方法(均来自Apple自己的示例代码).每种加载纹理的方法产生不同的结果(我不知道它是否是不同的默认设置,或者纹理是否有问题),但我无法正确渲染.

我已尝试以多种不同的方式设置我的索引/ Verticle/texices,从最快的方式发布的建议到在OpenGL ES中绘制四边形?但仍然没有运气.

我能错过什么?

加载纹理的代码

- (GLuint)setupTexture:(NSString *)fileName {    
    CGImageRef spriteImage = [UIImage imageNamed:fileName].CGImage;
    if (!spriteImage) {
        NSLog(@"Failed to load image %@", fileName);
        exit(1);
    }
    size_t width = CGImageGetWidth(spriteImage);
    size_t height = CGImageGetHeight(spriteImage);
    GLubyte * spriteData = (GLubyte *) calloc(width*height*4, sizeof(GLubyte));
    CGContextRef spriteContext = CGBitmapContextCreate(spriteData, width, height, 8, width*4, 
    CGImageGetColorSpace(spriteImage), kCGImageAlphaPremultipliedLast);    
    CGContextDrawImage(spriteContext, CGRectMake(0, 0, width, height), spriteImage);
    CGContextRelease(spriteContext);
    GLuint texName;
    glGenTextures(1, &texName);
    glBindTexture(GL_TEXTURE_2D, texName);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, …
Run Code Online (Sandbox Code Playgroud)

xcode opengl-es ios opengl-es-2.0

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

opengl es 2没有设置矩阵模式方法是什么?

我正在尝试opengles2在android平台上开发使用.但我找不到头文件中的glMatrixMode方法GLES2/gl2.h,但我可以找到它GLES/gl.h.我应该包括gl.h同时包括gl2.h吗?opengles2中是否需要矩阵模式?

android opengl-es

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

iOS上的多个顶点缓冲区OpenGL ES

我最近解决了一个阻止我的照明工作在OpenGL ES iOS应用程序中的问题:

解决了问题

我通过替换解决了这个问题

glEnable(GL_DEPTH_TEST);
glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);

glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, loader.currentCountOfVerticies * sizeof(GLfloat) * 3, arrayOfVerticies, GL_STATIC_DRAW);

glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, 12, BUFFER_OFFSET(0));

glGenVertexArraysOES(1, &_normalArray);
glBindVertexArrayOES(_normalArray);

glGenBuffers(1, &_normalBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _normalBuffer);
glBufferData(GLKVertexAttribNormal, loader.currentCountOfNormals  * sizeof(GLfloat) * 3,loader.arrayOfNormals , GL_STATIC_DRAW);

glEnableVertexAttribArray(GLKVertexAttribNormal);
glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, 12, BUFFER_OFFSET(0));
glBindVertexArrayOES(0);
Run Code Online (Sandbox Code Playgroud)

glEnable(GL_DEPTH_TEST);

glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);

glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, total * sizeof(GLfloat), mergedArray, GL_STATIC_DRAW);

glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, 24, BUFFER_OFFSET(0));
glEnableVertexAttribArray(GLKVertexAttribNormal);
glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, 24, BUFFER_OFFSET(12)); …
Run Code Online (Sandbox Code Playgroud)

opengl-es ios

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

在网站上非常酷的3D图形,但这背后的技术是什么?

我最近在丹麦网站上发现了一个非常酷的3D图形.您可以旋转和缩放地球的3D对象.我对网站上的3D图形感兴趣,我很好奇这是如何完成的.我确定它不是Flash,因为我正确地使用了它,并且没有关于Flash的信息,因为当你正确点击Flash图形时它就是这样,那么它会是什么呢?

链接:链接到丹麦网站BIG 然后选择Locations

javascript 3d html5 opengl-es html5-canvas

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