小编Mag*_*ick的帖子

CMake:从多行文本文件中获取版本

我有一个文件 version.txt

VERSION_MAJOR 1
VERSION_MINOR 1
VERSION_PATCH 3
Run Code Online (Sandbox Code Playgroud)

我想使用cmake为major,minor和patch添加一个定义.

我试过用

file(STRING "version.txt" myvar)
Run Code Online (Sandbox Code Playgroud)

但这只是将整个文件放入myvar.

我如何获得这些数字?

versioning cmake

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

如何在 C++ 中为 GLSL 制作一维 lut

我开始了解如何实现片段着色器来执行一维 LUT,但我正在努力寻找任何好的资源来告诉您如何在 C++ 中制作一维 LUT,然后对其进行纹理化。

因此,对于给出以下 1D lut 的简单示例:

在此处输入图片说明

我会用以下数据制作一个数组吗?

int colorLUT[255] = {255,
                     254,
                     253,
                     ...,
                     ...,
                     ...,
                     3,
                     2,
                     1,
                     0};
Run Code Online (Sandbox Code Playgroud)

或者unsigned char我想因为我要给它贴图。

如果这是创建 LUT 的方法,那么我将如何将其转换为纹理?我应该使用glTexImage1D吗?或者有没有更好的方法来做到这一点?我真的很茫然,任何建议都会有所帮助

很抱歉这么简短,但我还没有看到任何关于如何实际制作和链接 LUT 的教程,GLSL 上的每个教程都只告诉您他们总是忽略链接部分的着色器。

我的最终目标是我想知道如何采用如下所示的不同 1D LUT 并将它们全部应用于图像。

在此处输入图片说明

c++ opengl glsl lookup-tables

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

使用 FBO 的片段着色器的多个输出

我有以下 OpenGL/GLSL 代码。我试图将两个纹理放入着色器中并获得两个不同的纹理。

目前我只是在做毫无意义的计算。但对于我的实际应用程序(HDR 成像),我需要在单个着色器中输入和输出两个以上的纹理。

我的问题是int main()我不知道如何在四边形上显示输出纹理之一。

#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
#include <stdio.h>

const GLchar* vertexSource =
    "#version 150 core\n"
    "in vec2 position;"
    "in vec3 color;"
    "in vec2 texcoord;"
    "out vec2 Texcoord;"
    "out vec3 Color;"
    "void main() {"
    "   Color = color;"
    "   Texcoord = texcoord;"
    "   gl_Position = vec4(position, 0.0, 1.0);"
    "}";

const GLchar* fragmentSource =
    "#version 150 core\n"
    "in vec3 Color;"
    "in vec2 Texcoord;"
    "out vec4 outColor1;"
    "out …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glew glsl glfw

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

GLFW get Monitors count = 0,附加了另外两个监视器

这是我的简单代码.

#include <iostream>
#include <GLFW/glfw3.h>

int main() {

    int count;
    GLFWmonitor** monitors = glfwGetMonitors(&count); 
    std::cout << count << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它一直告诉我有零监视器.我假设0意味着确实存在1.但我有两台其他显示器连接到我的电脑.当我进入系统偏好时,我可以清楚地看到其他两个显示器.但我不知道为什么它一直告诉我零.我不知道问题是什么.

c++ opengl multiple-monitors glfw

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

与数组一起使用时双指针差异

以下两行之间是否存在差异?如果是,那又是什么?(在C++中)

float (**a[10]);
float *(*a[10]);
Run Code Online (Sandbox Code Playgroud)

c++

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

ATI Radeon HD 5770 GPU OpenGL 4.1支持?

我在2012 Mac Pro上安装了ATI Radeon HD 5770 GPU.

当我在我的程序中运行以下代码时:

    std::cout << glGetString(GL_RENDERER) << std::endl;
    std::cout << glGetString(GL_VENDOR) << std::endl;
    std::cout << glGetString(GL_VERSION) << std::endl;
    std::cout << glGetString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
Run Code Online (Sandbox Code Playgroud)

我得到的输出如下:

    ATI Radeon HD 5770 OpenGL Engine
    ATI Technologies Inc.
    2.1 ATI-1.24.35
    1.20
Run Code Online (Sandbox Code Playgroud)

但是使用OpenGL Extensions Viewer我得到以下内容 在此输入图像描述

有没有办法可以使用4.1?为什么它一直告诉我版本是2.1?

opengl gpu glsl ati

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

OpenGL Core Profile 不会对四边形进行纹理处理

我编写了以下代码,使用 GLFW 在两个不同的显示器上显示两个图像。当我尝试运行 OPENGL_CORE_PROFILE 时,它出错了,我的图像没有出现。

相反,屏幕只是保持黑色。但是,当我不使用核心配置文件时,图像会很好地显示在屏幕上。我需要使用核心配置文件,以便我可以使用 OpenGL 3.3 和 330 着色器。

我当前用于纹理四边形的方法是否错误?使用 OpenGL 3.3 显示和图像的最佳方法是什么?

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>

static GLuint tex_lite;
static GLuint tex_dark;

static GLuint tex_front;
static GLuint tex_back;

float ratio;
int width, height;

char *textFileRead(char *fn) {


    FILE *fp;
    char *content = NULL;

    int count=0;

    if (fn != NULL) {
        fp = fopen(fn,"rt");

        if (fp != NULL) {

      fseek(fp, 0, SEEK_END);
      count = ftell(fp);
      rewind(fp); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl opencv

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

标签 统计

c++ ×5

opengl ×5

glsl ×3

glfw ×2

ati ×1

cmake ×1

glew ×1

gpu ×1

lookup-tables ×1

multiple-monitors ×1

opencv ×1

versioning ×1