标签: glfw

OpenGL/GLFW显得透明

使用opengl和glfw绘制一个简单的立方体时,立方体的面看起来是透明的.这是代码.使用箭头键旋转.我刚刚在我的程序中封装成了一个类.使用Visual C++ Ultimate 2010.

#include "GAME.h"
using namespace std;
GAME::GAME() 
{
    glfwInit();
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING); 
    glEnable(GL_LIGHT0); 
    glEnable(GL_LIGHT1); 
    glEnable(GL_NORMALIZE); 
}
int GAME::execute() 
{
    glfwOpenWindow(640, 320, 16, 16, 16, 16, 16, 16, GLFW_WINDOW);
    glfwSetWindowTitle("Viraj");
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glfwSetKeyCallback(events);
    running = true;
    while(glfwGetWindowParam(GLFW_OPENED))
    {
        glfwPollEvents();
        loop();
        render();
    }
    return 0;
}
void GAME::events(int key, int action)
{
    switch(key)
    {
    case GLFW_KEY_UP:
        glRotatef(10, 1, 0, 0);
        break;
    case GLFW_KEY_DOWN:
        glRotatef(-10, 1, 0, 0);
        break;
    case GLFW_KEY_RIGHT:
        glRotatef(10, 0, 1, 0);
        break;
    case GLFW_KEY_LEFT: …
Run Code Online (Sandbox Code Playgroud)

c++ opengl 3d graphics glfw

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

OpenGL 3.3 GLX_ARB_create_context_profile 在带有大黄蜂的 Linux 上不可用

我在使用 glfw 设置 OpenGL 3.3 应用程序时遇到问题。我得到

OpenGL profile requested but GLX_ARB_create_context_profile is unavailable
Run Code Online (Sandbox Code Playgroud)

当我尝试通过 optirun 运行我的应用程序时出错(我有 Nvidia Optimus 卡,所以没有其他方法)。其他 OpenGL > 3.3 应用程序与 optirun(unigine 天堂)配合良好......这是我尝试运行的代码,这是"optirun glxinfo" 的结果

c++ linux opengl glew glfw

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

无法在GLEW应用程序中将OpenGL缓冲区打印到控制台

我正在使用这里找到的教程.我正在使用GLFW.我的窗口加载正常,但在打电话时

GLuint vertexBuffer;
glGenBuffers( 1, &vertexBuffer );
printf( "%u\n", vertexBuffer );
Run Code Online (Sandbox Code Playgroud)

它不是写入控制台,如果我关闭openGL窗口它会中断(不是我关闭控制台).我猜这指针有问题吗?但对我来说似乎是正确的,而且正如他在教程中所拥有的那样.

这是我的整个,非常小的.cpp(VS2012):

#define GLEW_STATIC

#include <GL/glew.h>
#include <GL/glfw.h>
#include <stdio.h>
#include <stdlib.h>

#pragma comment( lib, "glfw.lib")
#pragma comment( lib, "opengl32.lib")
#pragma comment( lib, "glew32s.lib")

int main() {

    glfwInit();
    glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 );
    glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 2 );
    glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

    glfwOpenWindowHint( GLFW_WINDOW_NO_RESIZE, GL_TRUE );
    glfwOpenWindow( 800, 600, 0, 0, 0, 0, 0, 0, GLFW_WINDOW );
    glfwSetWindowTitle( "OpenGL" );

    printf("This works");
    while( glfwGetWindowParam( GLFW_OPENED ) ) {
        glfwSwapBuffers(); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glew glfw

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

在GLFW窗口标题中显示FPS?

我试图让我的FPS显示在窗口标题中,但是我的程序却没有它。

我的FPS代码

    void showFPS()
{
     // Measure speed
     double currentTime = glfwGetTime();
     nbFrames++;
     if ( currentTime - lastTime >= 1.0 ){ // If last cout was more than 1 sec ago
         cout << 1000.0/double(nbFrames) << endl;
         nbFrames = 0;
         lastTime += 1.0;
     }
}
Run Code Online (Sandbox Code Playgroud)

我也希望它在版本之后

window = glfwCreateWindow(640, 480, GAME_NAME " " VERSION " ", NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

但是我不能只将void ii转换为char?或者是什么 ?

c++ opengl glfw

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

设置eclipse链接器来编译和运行GLFW应用程序 - 如何?

基于这个问题,我能够为GLFW库制作一个默认的cmake编译,编译我的GLFW App并运行; 由于我使用的是Ubuntu 14.04 64位,所以一切正常并且是通过终端完成的.

我正在使用这一行来编译:

g++ -std=c++11 -c main.cpp
Run Code Online (Sandbox Code Playgroud)

这链接:

g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
Run Code Online (Sandbox Code Playgroud)

使用这些命令后我只需要执行main.exec.但是,我想设置eclipse来编译和运行这个GLFW应用程序.包含文件已在项目中确定,但我的链接器出现问题.我试图手动跟踪我的库(GL,GLU,glfw3 ....)来设置文件夹,但我找不到所有这些.有谁知道我怎么能跟踪库在我的链接器上设置它们(项目 - 属性 - C/C++构建 - 设置 - GCC C++链接器)或者可以给我一些指导来解决这种情况,好吗?

提前致谢

c++ eclipse linux linker glfw

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

GLFW输入状态

我在使用GLFW的输入系统时遇到了困难,弄清楚如何让它按照我想要的方式工作,所以我来到了有更多智慧经验的人.使用GLFW 3.

有3种状态0释放,1按和2重复.这正是我想要的,只有从按下到重复的关键状态需要大约一秒钟才能改变.理想情况下,我希望它只有1帧状态"按",然后变为重复状态.

目标:能够根据我的密钥的状态轻松调用函数,如下所示:

  • 按Tap(做一次)

  • 重复连续(每帧都做)

  • 释放不要回应

链接

请查看上面链接中的文件,如果还有其他方法,请告诉我.或者这种做法本身就是垃圾,我这样做的方式是什么?谢谢大家,所有反馈和帮助相关.

c++ input glfw

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

使用链接linux编译GLFW应用程序问题

所以基本上我正在编译使用GLFW的程序

现在我使用此命令成功编译它

gcc -o myprog glfw.c `pkg-config --static --libs glfw3`
Run Code Online (Sandbox Code Playgroud)

但是我想知道的是如何通过使用-l选项简单地编译它

我尝试了许多网站提供的描述,每次都有链接器DSO错误,我不知道如何解决它

这是我试过的最新版本

pkg-config --print-requires --print-requires-private glfw3 
x11
xrandr
xinerama
xi
xxf86vm
xcursor
gl
Run Code Online (Sandbox Code Playgroud)

尝试使用这些链接选项后

gcc -o myprog glfw.c -lglfw3 -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lGL

/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这就是我得到的错误,我不知道如何解决它

c++ linux gcc glfw

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

没有重复三角形传输的相同网格的多个图像

我使用OpenGL,GLEW和GLFW拍摄同一网格的多个图像.网格(三角形)在每次拍摄中都不会改变,只会改变ModelViewMatrix.

这是我的主循环的重要代码:

for (int i = 0; i < number_of_images; i++) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    /* set GL_MODELVIEW matrix depending on i */
    glBegin(GL_TRIANGLES);
    for (Triangle &t : mesh) {
        for (Point &p : t) {
            glVertex3f(p.x, p.y, p.z);
        }
    }
    glReadPixels(/*...*/) // get picture and store it somewhere
    glfwSwapBuffers();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我为每个要拍摄的镜头设置/传输三角形顶点.有没有解决方案,我只需要转移一次?我的网格非常大,所以这种转移需要相当长的时间.

c++ opengl glfw

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

OpenGL - 鼠标坐标到空间坐标

我的目标是将球体放置在鼠标指向的位置(Z-coord为0).

我看到了这个问题,但我还没有理解MVP矩阵的概念,所以我研究了一下,现在我有两个问题:

如何从相机设置创建视图矩阵,如查找,眼睛和向上矢量?

我还阅读本教程的几种类型的相机,这一个WebGL的.

我仍然可以把它放在一起我不知道如何获得投影矩阵...

我应该采取哪些措施来实现所有这些目标?

c++ opengl graphics glut glfw

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

为什么我的OpenGL代码不呈现方格纹理

为什么我的屏幕只是黑色?

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <stdio.h>
#include <stdlib.h>
//#include "include/state.h"
//#include "include/state_machine.h"
//#include "include/renderable.h"


const int WIDTH = 800;
const int HEIGHT = 600;

// called when user resizes window
void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
    glViewport(0, 0, width, height);
}

// called when we receive input
void processInput(GLFWwindow *window) {
    if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        glfwSetWindowShouldClose(window, 1);
}

GLuint get_checker_texture() {
    unsigned char texDat[64];
    for (int i = 0; i < 64; ++i)
        texDat[i] = ((i + …
Run Code Online (Sandbox Code Playgroud)

c opengl glfw

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

标签 统计

glfw ×10

c++ ×9

opengl ×7

linux ×3

glew ×2

graphics ×2

3d ×1

c ×1

eclipse ×1

gcc ×1

glut ×1

input ×1

linker ×1