标签: opengl

qt中如何获取视口大小

如何在qt opengl中获取视口的大小(以像素为单位)并将其转换为Vec2f?我的着色器需要它。

我知道 getWindowSize()。

opengl qt

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

Linux 上的 OpenGL

我想学习如何在 Linux 上集成 OpenGl 和 C++,但我对网上找到的教程感到非常失望......我想学习整个过程,如何编译,如何设置等等等等......我开始谷歌搜索已经两天了,有很多教程,但没有人做我喜欢的......我只找到了openGL的教程,但我想将它们与c ++一起使用。我找到了关于 c++ 的教程,但是他们开始使用已经配置好的 cmake 来构建所有东西,所以我根本没有第一步......我的意思是,很难找到从头开始指导你的东西,很好地解释了什么各种包含的库做什么等等?如果你知道什么,请告诉我。(不要像open gl的官方网站那样链接我,我'

linux opengl glew opengl-es graphic

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

GCC /usr/bin/ld:找不到-lGl

e我正在尝试使用 libGL 和 freeglut3 编译 c++ openGL 程序。我想:

g++ main.cpp -w -lglut -lGl -o bin/app
Run Code Online (Sandbox Code Playgroud)

或者

g++ main.cpp -w -lglut -lGL -o bin/app
Run Code Online (Sandbox Code Playgroud)

结果是:

/usr/bin/ld: cannot find -lGl
collect2: error: ld returned 1 exit status
Makefile:16: recipe for target 'all' failed
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

我上线了:

Ubuntu 16.04 LTS
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会:

gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)
Run Code Online (Sandbox Code Playgroud)

libGL库

/usr/lib/x86_64-linux-gnu$ find libGL.so
libGL.so
Run Code Online (Sandbox Code Playgroud)

我安装了:

freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?上次我成功编译时是在 ubuntu 14.04 上。

我在某处读到我应该安装 fglrx-glx 但该软件包不可用。

更新:

glxinfo …
Run Code Online (Sandbox Code Playgroud)

c++ opengl ubuntu linker gcc

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

OpenGL没有制作完美的立方体

我是openGL的新手,我正在努力学习基础知识.我已经创建了一个立方体的顶点及其EBO的索引,它应该是一个完美的立方体,这意味着所有方面都有相同的长度.但是我得到了这个:https: //i.gyazo.com/1fb82be379da9b18133a0ab0da8ccbf4.png这种矩形,不是方形脸.

顶点和索引如下:

    std::vector<GLfloat> _Vertices  = {
    // Positions          // Colors           // Texture Coords
                                                            //Front
     0.5f,  0.5f, 0.0f,   1.0f, 0.0f, 0.0f,   1.0f, 1.0f,   //0 Top Right
     0.5f, -0.5f, 0.0f,   0.0f, 1.0f, 0.0f,   1.0f, 0.0f,   //1 Bottom Right
    -0.5f, -0.5f, 0.0f,   0.0f, 0.0f, 1.0f,   0.0f, 0.0f,   //2 Bottom Left
    -0.5f,  0.5f, 0.0f,   1.0f, 1.0f, 0.0f,   0.0f, 1.0f,   //3 Top Left
                                                            //Right
     0.5f,  0.5f, 0.0f,   1.0f, 0.0f, 0.0f,   1.0f, 1.0f,   //4 Top left
     0.5f,  0.5f, -0.5f,  0.0f, 1.0f, 0.0f,   1.0f, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

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

大量计算导致 OpenGL 崩溃

我是 OpenGL 的新手。我的第一个项目是渲染一个 mandelbrot 集(我觉得这很有趣)并且由于必须完成的计算的性质,我认为最好在 GPU 上进行(基本上我在每个复杂平面的一部分的点,很多时间,我根据输出为这个点着色:大量可并行计算,这对 GPU 来说似乎不错,对吧?)。

因此,当单个图像没有太多计算时一切正常,但是一旦像素*迭代超过大约 90 亿,程序就会崩溃(显示的图像显示只计算了其中的一部分,青色部分是初始背景):

未完全计算 Mandelbrot 集的黑暗部分

事实上,如果计算总数低于这个限制但足够接近(比如 85 亿),它仍然会崩溃,但需要更多的时间。所以我猜有一些问题不会出现在足够少的计算中(在它到达那里之前它总是完美无缺地工作)。我真的不知道它可能是什么,因为我真的很陌生。当程序崩溃时,它说:“Mandelbrot Set.exe 中 0x000000005DA6DD38 (nvoglv64.dll) 处的未处理异常:请求致命程序退出。”。它也是在那里指定的相同地址(它仅在我退出 Visual Studio,我的 IDE 时才会更改)。

那么这里是整个代码,加上着色器文件(顶点着色器不做任何事情,所有计算都在片段着色器中):编辑:这是项目所有 .cpp 和 .h 文件的链接,代码太大而不能放在这里,无论如何都是正确的(虽然远非完美); https://github.com/JeffEkaka/Mandelbrot/tree/master

这是着色器:

NoChanges.vert(顶点着色器)

#version 400

// Inputs
in vec2 vertexPosition;  // 2D vec.
in vec4 vertexColor;

out vec2 fragmentPosition;
out vec4 fragmentColor;

void main() {
gl_Position.xy = vertexPosition;
gl_Position.z = 0.0;
gl_Position.w = 1.0;  // Default.

fragmentPosition = vertexPosition;

fragmentColor = vertexColor;

}
Run Code Online (Sandbox Code Playgroud)

CalculationAndColorShader.frag(片段着色器)

#version 400
uniform int …
Run Code Online (Sandbox Code Playgroud)

c++ opengl gpu mandelbrot

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

如何在3D中计算任意形状的中心?

我想知道在3D中找到任意形状中心的准确方法.在图中,我已经解释了3个案例.

  1. 在第一种情况下,我们如何计算任意点的中心?一个想法是所有点的总和除以总点数.这是唯一的方法,它是否准确?

  2. 第二是如何计算3D中不规则任意形状的近似中心?这是1的相同情况吗?

  3. 我们如何计算由任意顶点组成的弯曲/弯曲管的中心线?对于这个问题,我们必须先解决两个案例吗?

在此输入图像描述

c++ opengl math 3d computational-geometry

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

GTK +和OpenGL

什么是GTK +以及它与OpenGL有什么关系?我可以在C中使用OpenGL创建GUI界面吗?我研究过,人们说要用GTK +,但我根本不知道它是什么.

c gtk opengl user-interface

-3
推荐指数
1
解决办法
2607
查看次数

我应该学习OpenGL还是等待Vulkan被释放

我只是想知道你是否会推荐未来学习OpenGL或等待Vulkan api.我目前正在从learnopengl.com学习OpenGL,并且想知道如果将来是vulkan,我是否应该继续使用它.

opengl graphics vulkan

-3
推荐指数
1
解决办法
1216
查看次数

哪个OpenGL版本是第一个支持统一结构阵列的?

我想在glsl中使用Light结构,并将它们的数组定义为一个统一变量,如下所示:

uniform Light lights[LIGHT_NUM];
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法找到使用此功能的OpenGL/glsl/GL ES版本.

opengl opengl-es glsl glsles

-3
推荐指数
1
解决办法
76
查看次数

为什么std :: vector比数组指针慢得多

我正在创建一个Opengl字体批量绘图.

我想知道为什么我的std :: vector比使用数组指针慢得多.

我试过添加矢量储备和我能想到的一切.

使用矢量时,我的FPS下降了一半.

向量似乎更易于管理并且在代码中看起来更好,但我真的坚持这一点.

不确定我错过了什么简单的东西?

或者只使用数组指针更好?

#ifdef USE_VECTORS
    std::vector<Vertex> m_vertices;
#else
    Vertex *m_pVertex;
    Vertex m_vertices[MAX_VERTICES];
#endif
Run Code Online (Sandbox Code Playgroud)

绘图char函数

    void GLFont::drawChar(char c, int x, int y)
    {
        //  1------4
        //  |      |            1 = (x, y)
        //  |      |            2 = (x, y + charHeight)
        //  |      |            3 = (x + charWidth, y + charHeight)
        //  |      |            4 = (x + charWidth, y)
        //  |      |
        //  |      |
        //  2------3
        //

        const Glyph &glyph = getChar(c); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

-3
推荐指数
1
解决办法
89
查看次数

标签 统计

opengl ×10

c++ ×5

opengl-es ×2

3d ×1

c ×1

computational-geometry ×1

gcc ×1

glew ×1

glsl ×1

glsles ×1

gpu ×1

graphic ×1

graphics ×1

gtk ×1

linker ×1

linux ×1

mandelbrot ×1

math ×1

qt ×1

ubuntu ×1

user-interface ×1

vulkan ×1