小编gen*_*ult的帖子

OSX上C OpenGL程序的基本框架

在OSX上的C中的OpenGL窗口上绘制三角形的裸骨架是什么?我已经阅读了Nehe的教程并试图让它工作,但CreateGLWindow似乎与win32毫无希望地联系在一起.

我想坚持只是opengl和过剩等等.我最终将把它包装在计划中,但我希望事先在c级更加坚定.

这是我到目前为止所拥有的:

#include <OpenGL/gl.h>// Header File For The OpenGL32 Library
#include <OpenGL/glu.h>// Header File For The GLu32 Library
#include <GLUT/glut.h>// Header File For The GLut Library

#define kWindowWidth 400;
#define kWindowHeight 300;

HGLRC hRC=NULL;// Permanent Rendering Context
HDC             hDC=NULL;// Private GDI Device Context
HWND            hWnd=NULL;// Holds Our Window Handle
HINSTANCE       hInstance;// Holds The Instance Of The Application

LRESULTCALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);// Declaration For WndProc

boolkeys[256];// Array Used For The Keyboard Routine
boolactive=TRUE;// Window Active Flag Set To TRUE …
Run Code Online (Sandbox Code Playgroud)

c opengl macos

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

如何在Linux上开发OpenGL ES(GLES)2.0应用程序?

我想在我的Ubuntu机器上开发OpenGL ES 2.0应用程序.我找不到任何支持GLES 2.0的库/模拟器.有什么建议?

linux ubuntu opengl-es

20
推荐指数
3
解决办法
2万
查看次数

COLLADA是死格式吗?

我一直在网上阅读很多思考,COLLADA是一种死文件格式?因为应用程序没有更新它们的支持等.这是真的吗?它最初被设计成一种几乎可以独立应用的格式,所以我的问题分为两部分.这是死格式吗?如果是这样,目前可接受的格式是什么才能最大化应用程序间开发(以及与OpenGL应用程序一起使用)?

opengl format 3d collada

20
推荐指数
4
解决办法
7085
查看次数

OpenGL纹理透明度不起作用

我有一个绑定到简单四边形的OpenGL纹理.

我的问题是:我的纹理是128x128像素的图像.我只在该图像上填充大约100x60像素,其他像素是透​​明的.我把它保存在.png文件中.当我画画时,绑定纹理的透明部分是白色的.

假设我有背景.当我在这个背景上绘制这个新的四边形时,我看不到透过纹理的透明部分.

有什么建议?

码:

// Init code...
gl.glEnable(gl.GL_TEXTURE_2D);
gl.glDisable(gl.GL_DITHER);
gl.glDisable(gl.GL_LIGHTING);   
gl.glDisable(gl.GL_DEPTH_TEST);

gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_MODULATE); 

// Drawing code...
gl.glBegin(gl.GL_QUADS);
gl.glTexCoord2d(0.0, 0.0);
gl.glVertex3f(0.0f, 0.0f, 0.0f);
gl.glTexCoord2d(1.0, 0.0);
gl.glVertex3f(1.0f, 0.0f, 0.0f);
gl.glTexCoord2d(1.0, 1.0);
gl.glVertex3f(1.0f, 1.0f, 0.0f);
gl.glTexCoord2d(0.0, 1.0);
gl.glVertex3f(0.0f, 1.0f, 0.0f);
gl.glEnd();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几乎所有的东西,从启用混合到更改到GL_REPLACE,但是我无法让它工作.

编辑:

// Texture. Have tested both gl.GL_RGBA and gl.GL_RGB8.
gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, (int)gl.GL_RGBA, imgWidth, imgHeight,
            0, gl.GL_BGR_EXT, gl.GL_UNSIGNED_BYTE, bitmapdata.Scan0);
Run Code Online (Sandbox Code Playgroud)

opengl textures

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

是否可以在片段着色器中绘制线条粗细?

考虑到我用GL_LINES画线,我是否可以在片段着色器中添加线条粗细?我看到的大多数示例似乎只访问片段着色器中基元内的纹素,并且线条粗细着色器需要写入线基元外部的纹素以获得厚度.但是,如果可能的话,一个非常小的,基本的例子就会很棒.

opengl-es opengl-es-2.0

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

关于过剩函数的xcode 5弃用警告

我今天早上将mac os x 10.6.8升级到10.9.除了带有OpenGL Glut API的Xcode 5之外,一切都很顺利.每当我运行涉及过剩功能的程序时,我都会收到30个弃用警告,例如:

'gluErrorString' is deprecated: first deprecated in OS X 10.9.
'glutBitmapCharacter' is deprecated: first deprecated in OS X 10.9.
'glutSwapBuffers' is deprecated: first deprecated in OS X 10.9.
'glutDisplayFunc' is deprecated: first deprecated in OS X 10.9.
'glutIdelFunc' is deprecated: first deprecated in OS X 10.9.
...
Run Code Online (Sandbox Code Playgroud)

opengl glut deprecated xcode5 osx-mavericks

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

Android:在SurfaceView和OpenGL之间做出决定(GLSurfaceView)

有没有办法在规划阶段根据游戏/应用程序的预期复杂性预先决定是否在SurfaceView中使用常规Canvas绘图或使用OpenGL?

我一直在玩Canvas并且只需要2D移动,而在一部相当新的手机上,我得到了相当不错的性能,其中有一堆原始对象和一些在固定背景屏幕上运行的位图.

可以公平地说,如果我要绘制背景图像并增加移动和绘制对象的数量,我应该直接使用OpenGL吗?

android opengl-es

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

glCreateShader正在崩溃

我应该有Glew和Glut的最新版本,所以不应该是问题.一切都应该链接,我正在使用MS visual studio 2010.我的程序编译但是当我到glCreateShader(GL_FRAGMENT_SHADER)它显示错误:"0xC0000005:访问冲突."

我的节目:

#include <GL\glew.h>
#include <GL\glut.h>
#include <stdio.h>
#include <stdlib.h>

GLuint program;

static char* readShaderSource(const char * shaderFile)
{
    FILE* fp = fopen(shaderFile, "r");
    char* buf;
    long size;

    if (fp == NULL) return NULL; 
    fseek(fp, 0L, SEEK_END);//go to end
    size = ftell(fp);       //get size
    fseek(fp, 0L, SEEK_SET);//go to begining

    buf = (char*) malloc((size +1) * sizeof(char));
    fread(buf, 1, size, fp);
    buf[size] = NULL;
    fclose(fp);
    return buf;
}

static void initShader(const GLchar * fsFile)
{
    GLint status;
    GLchar …
Run Code Online (Sandbox Code Playgroud)

c opengl graphics glut glew

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

为什么eglMakeCurrent()失败了EGL_BAD_MATCH?

我正在使用opengl/egl为Android开发.我的应用程序需要第二个上下文来从第二个线程加载纹理.

我的代码在android 2.3上工作正常,但是当我在4.0.3 android设备或模拟器上尝试代码时,eglMakeCurrent()在EGL_BAD_MATCH中失败.

第二个上下文和它的像素缓冲区的初始化也都可以正常工作,所以我不知道从哪里开始寻找这个错误.

这是初始化代码:

ANativeWindow *window = (ANativeWindow*)displaySurface;

EGLint dummy, format;

display = eglGetDisplay(EGL_DEFAULT_DISPLAY);

eglInitialize(display, 0, 0);

EGLint contextAttribs[] =
{
    EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
};

const EGLint configAttribs[] =
{
    EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
    EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
    EGL_BLUE_SIZE, 8,
    EGL_GREEN_SIZE, 8,
    EGL_RED_SIZE, 8,
    EGL_ALPHA_SIZE, 8,
    EGL_BUFFER_SIZE, 32,
    EGL_DEPTH_SIZE, 24,
    EGL_NONE
};

EGLint numConfigs;
EGLConfig config;

eglChooseConfig(display, configAttribs, &config, 1, &numConfigs);
eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format);
ANativeWindow_setBuffersGeometry(window, 0, 0, format);

surface = eglCreateWindowSurface(display, config, window, NULL);
if(surface == NULL)
    Trace("error creating window surface: …
Run Code Online (Sandbox Code Playgroud)

c++ android opengl-es

19
推荐指数
2
解决办法
3万
查看次数

WebGL中更好的文本质量

我正在寻找一种在WebGL中绘制更好质量(任意)文本的方法.目前我在2D画布上使用位图字体渲染并将它们放入WebGL上下文中.

此处描述了此方法http://delphic.me.uk/webgltext.html

这是我现在知道的在WebGL中绘制任意unicode文本的唯一解决方案.这种方法的问题是这些是位图字体,并且在较小的字体大小上看起来很块.我大多使用18的字体大小,与桌面质量字体相比,结果相当块.

我知道threeJS有一个字体库可以生成更好看的文本,但是我不想使用threeJS,因为我有自己的包装器,它可以正常工作,我不需要增加额外的三个开销.

那么如何在WebGL中创建更高质量的文本呢?有没有方法在Javascript中提取文本形状以提高质量?

javascript html5 opengl-es truetype webgl

19
推荐指数
2
解决办法
8266
查看次数