标签: opengl

我在哪里可以找到一个不使用任何弃用功能的优秀在线OpenGL 3.0教程?

我刚刚购买了第五版的OpenGL SuperBible.我很高兴他们避免使用已弃用的功能,但他们的例子可以使用GLTools.GLTools提供了一系列有用的功能,用于渲染简单的3D对象和管理视图截头,相机和变换矩阵.

这一切都很棒,但提供的抽象隐藏了低级细节,我很难移动到我无法使用的代码GLTools- 例如,pyopengl.我在网上看到的绝大多数教程都使用了立即模式,我试图避免这种模式.那些使用glDrawArrays使用的glEnableClientState,这我也想避免的.

我正在寻找的是完全符合OpenGL 3.x的入门教程.如果这个订单太高了,也许洗衣清单很好的"起点"功能将是有序的.

opengl pyopengl deprecated opengl-3

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

Pygame水波纹效果

我已经谷歌搜索它,但没有准备好的脚本 - 而不是对Flash的相同效果.我已经检查了水效应解释的算法,并测试了Perlin噪声的实现,它可以很好地模拟平面上的波浪末端.我正在寻找基于鼠标悬停/悬停操作在几个Flash Effects上找到的相同实现.这是针对一个交互式楼层库,我很乐意远离Flash,特别是为了避免代码的这种简单的逆向工程 - 是的,我知道它可以只使用一些现成的flash代码,但我只会用它作为最后的手段.

有没有人为Pygame看过这种效果的合适实现(使用OpenGL与否)?

编辑: 任何人都可以使用OpenCV/OpenGL和Pygame提供这种效果的合适实现吗?

这里的罪魁祸首是(代码)接口传递一个值列表,这些值将通过Python从外部解释器(跟踪器 - 而不是TUIO)发送.我已经尝试了几天,但是Pygame无法像C/C++代码那样快速生成任何东西(用于OpenGL中的着色器),而且我对C/C++的了解也是空的.所以目标至少要来自Python代码.

一个很好的例子,与Flash效果不同,但仍然很好的是使用Java applet的Water Simulation.

(赏金显示答案没有足够的细节,因为这是最接近'OP无法创建他想要的代码,因为他缺乏基本技能,这个答案可能对几个人有用').

python opengl pygame image-processing effect

33
推荐指数
2
解决办法
5031
查看次数

无窗口OpenGL

我想有一个没有窗口的OpenGL上下文(在带有Xorg和Windows的GNU/linux上).我不会去渲染什么,但只有通话功能一样glGetString,glCompileShader和类似的.

除了创建一个隐藏的窗口之外,我已经完成了一些有用的但没有任何有用的东西.这似乎是对我的黑客攻击.

那么有没有人有更好的想法(对于任何平台)?

编辑:使用Xorg,我能够创建并将OpenGL上下文附加到根窗口:

#include<stdio.h>
#include<stdlib.h>
#include<X11/X.h>
#include<X11/Xlib.h>
#include<GL/gl.h>
#include<GL/glx.h>

int main(int argc, const char* argv[]){
  Display *dpy;
  Window root;
  GLint att[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None };
  XVisualInfo *vi;
  GLXContext glc;

  dpy = XOpenDisplay(NULL);

  if ( !dpy ) {
    printf("\n\tcannot connect to X server\n\n");
    exit(0);
  }

  root = DefaultRootWindow(dpy);
  vi = glXChooseVisual(dpy, 0, att);

  if (!vi) {
    printf("\n\tno appropriate visual found\n\n");
    exit(0);
  }

  glc = glXCreateContext(dpy, vi, NULL, GL_TRUE);
  glXMakeCurrent(dpy, root, glc);

  printf("vendor: …
Run Code Online (Sandbox Code Playgroud)

c c++ opengl

32
推荐指数
2
解决办法
6317
查看次数

了解顶点数组对象(glGenVertexArrays)

我对使用以下方法生成/创建顶点数组对象(VAO)的观点感到困惑:

glGenVertexArrays(GLsizei n, GLuint *arrays);
Run Code Online (Sandbox Code Playgroud)

glBindVertexArray(GLuint);
Run Code Online (Sandbox Code Playgroud)

因为我仍然可以创建一个缓冲区对象,说了顶点,并描述了该缓冲区对象glVertexAttribPointer,并glEnableVertexAttribArray没有创造过一个VAO.

我的问题是,如果您不必实际创建VAO来描述缓冲区对象中的数据,那么为什么OpenGL SuperBible 5ed这样的源包含在创建VBO时创建VAO的调用?它们仅用于我尚未发现的更高级的主题,我完全糊涂了吗?

此外,我在VBO上阅读wikipedias条目时首次遇到这个问题,他们的示例代码不包含任何调用,glGenVertexArrays()但他们仍然用数据描述数据glVertexAttribPointer().Wiki VBO条目 - 出于什么原因创建VAO的示例?

c c++ opengl opengl-3

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

WebGL和OpenGL之间的差异

有人能给我一个关于OpenGL和WebGL之间确切区别的简单答案吗?我需要更具体的以下内容:编程语义,API的继承,API的扩展等.

我查看了以下网站,但对我来说不是很清楚:http: //www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

opengl webgl

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

使用顶点数组对象和顶点缓冲区对象

我试图理解这两个,如何使用它们以及它们是如何相关的.假设我想创建一个简单的地形和一个纹理立方体.对于这两个对象,我有三角形顶点的数组,对于立方体,我有一个包含纹理数据的数组.我的问题是:如何使用VAO和VBO来创建和渲染这两个?

  1. 我是否必须为每个对象创建一个VAO和VBO?
  2. 或者应该为每个对象的VBO(顶点,纹理数据等)创建一个VAO?

有许多教程和书籍,但我仍然不知道如何理解和使用这些概念.

opengl buffer vbo vertices vao

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

在GLUT中使用鼠标滚轮

我想在我的OpenGL GLUT程序中使用鼠标滚轮来放大和缩小场景?我怎么做?

opengl glut scrollwheel

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

C/C++中OpenGL着色器的简易框架

我只是想在平面图像上尝试一些着色器.事实证明,编写一个C程序,它只是将图片作为纹理并应用,假设是高斯模糊,因为它上面的片段着色器并不那么容易:你必须初始化OpenGL,就像100行代码,然后了解GLBuffers等.另外要与窗口系统进行通信,必须使用另一个框架GLUT.

事实证明,Nvidia的Fx作曲家很适合使用着色器.但我仍然希望有一个简单的C或C++程序,它只是将给定的片段着色器应用于图像并显示结果.有人有例子还是有框架?

c c++ opengl

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

从剪辑空间到屏幕坐标的转换是什么时候发生的?

我正在研究渲染管道,当我到达剪辑阶段时,我们解释说,从视图(眼睛或相机)空间我们必须传递到剪辑空间,也称为规范化设备空间(NDC),即立方体空间从-1到1.

但是,现在我不明白从这个空间到屏幕坐标空间的通道何时发生:

  1. 剪切后和光栅化之前?

  2. 光栅化后和剪刀和z测试之前?

  3. 在写入帧缓冲区之前的最后?

opengl graphics rendering hlsl

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

OpenGL bool制服?

我正在尝试向OpenGL glsl着色器发送一个布尔值.

目前我在着色器中有这个:

uniform bool foo;
Run Code Online (Sandbox Code Playgroud)

我用它来设置它:

glUniform1i(glGetUniformLocation(shader, "foo"), true);
Run Code Online (Sandbox Code Playgroud)

似乎没有glUniform1b,所以我将其设置为整数.这似乎工作正常.

这种方法有什么问题吗?它是便携式的,还是可以打破其他显卡/驱动程序?我目前正在使用OpenGL 4.3.

c++ opengl shader boolean

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