标签: opengl

如何用C++开始编写音乐可视化工具?

我有兴趣学习使用OpenGL,我有想写一个音乐可视化器.任何人都可以给我一些关于我需要什么元素的指示以及我应该如何去学习这个?

c++ opengl audio visualization

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

你能在同一个程序中有多个像素(片段)着色器吗?

我想有两个像素着色器; 第一个做一件事,然后下一个做别的事情.这是可能的,还是我必须将所有内容打包到一个着色器中?

opengl shader pixel glsl fragment-shader

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

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万
查看次数

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万
查看次数

OpenGL FBO渲染缓冲或纹理附件

在什么情况下我想在OpenGL FBO中使用renderbuffer附件,而不是纹理附件,除了默认的帧缓冲区?因为,纹理附件看起来更加通用.

opengl

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

在顶点和片段着色器中gl_Color和gl_FrontColor之间的关系是什么

我有传递顶点和片段着色器.

顶点着色器

void main(void)
{
    gl_TexCoord[0] = gl_MultiTexCoord0;
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Run Code Online (Sandbox Code Playgroud)

片段着色器

void main(void)
{
    gl_FragColor = gl_Color;
}
Run Code Online (Sandbox Code Playgroud)

那些产生空渲染(黑色不是像glClearBuffer那样的背景颜色).

如果我修改顶点着色器以将gl_FrontColor设置为gl_Color,它会渲染未触及的OpenGl缓冲区...具有传递着色器的预期行为.

void main(void)
{
    gl_FrontColor = gl_Color; //Added line
    gl_TexCoord[0] = gl_MultiTexCoord0;
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Run Code Online (Sandbox Code Playgroud)

我很困惑,如何设置顶点着色器中的gl_FrontColor可以更改片段1中gl_Color的值?我错过了什么?

opengl shader pixel-shader vertex-shader

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

混合Quartz和OpenGL?

我试图找出背景中实际发生的事情(请看图片)

在此输入图像描述

正如您在图像中看到的,我添加了几个按钮,并从"界面"构建器中检查了窗口的"内容视图".

现在我们知道它会利用核心动画或说会创建图层.(如果我错了,请纠正我.还在学习...)

我想知道这些按钮是如何绘制的?

我的假设是当我们勾选内容视图时,这些按钮是从CGBitmapContextRef绘制的,并且从它创建的位图被移交给Core Animation(OpenGL).但到目前为止我无法证明这一点.我该如何证明?任何一个例子或一些方法的想法都会很棒?

我确定是从CGBitmapContextRef创建的按钮.但是那些按钮图像会发生什么变化是未知的.

任何人都可以解释这种整合怎么可能?这些图像将如何出现在屏幕上?

编辑:

要添加有关同一主题的更多信息,请查看下面的图片,了解OpenGL的各个层次.我想我的目标是普通的OpenGL Framework层. 在此输入图像描述

opengl macos cocoa core-animation core-graphics

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

GDI,GDI +和OpenGL真的已经过时/弃用了吗?

如果您在microsoft.com上打开"图形和游戏(Windows)"页面

最后一类被描述为

旧版图形:已过时且不应在新应用程序中使用的技术.

此类别包括(以及其他)以下API:

  • GDI
  • GDI +
  • OpenGL的

你怎么看?如果我想今天推出一款新软件,它必须支持Windows XP(仍然约占所有已安装系统的50%).Direct2D需要Windows 7/Vista.还应该使用什么?

opengl graphics winapi gdi+ gdi

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

关于过剩函数的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万
查看次数