opengl-3

    1热度

    1回答

    我试图将一个shadertoy着色器移植到SFML应用程序。 我的问题是这一行: float g = texture(iChannel0, uv+vec2(nh-0.07, 0.0)*nh).g; 我认为iChannel0是二维采样,并在浏览器中运行的视频。 我需要用其他东西替代iChannel0,但不知道如何,因为我是全新的GLSL。 我有一个顶点着色器,看起来像这样: void main(

    0热度

    1回答

    我试图在我的android游戏中实现实例 - 即在一次绘制调用中绘制64个精灵。 我基于C语言下面的教程 https://learnopengl.com/#!Advanced-OpenGL/Instancing 程序崩溃时,我用下面的语法在顶点着色器代码 vec2 offset = offsets[gl_InstanceID]; 例外 09-19 17:28:18.315 3635-3674/

    -1热度

    1回答

    我有一个非常特定的OpenGL设置,场景中的3D几何体未呈现。在OpenGL上下文中有一些与深度相关的状态可以解释我。 这是在工作中的生产引擎中,我们添加了具有多个窗口上下文的共享上下文支持。我们正在对共享上下文拥有的帧缓冲区对象进行渲染,然后使用不同的上下文将颜色附件渲染缓冲区blitting到窗口。 清除颜色显示在窗口的结果blit中,但不是3D场景几何本身,所以我们知道帧缓冲区和渲染缓冲区对

    0热度

    2回答

    如果我的理解是正确的,那么纹理单元就有多个可以将纹理绑定到的目标(GL_TEXTURE_2D等)。我可以用glActiveTexture来改变当前激活的纹理单元。当我打电话给glBindTexture时,我将指定的纹理对象绑定到当前活动纹理单元的指定目标,对吗? 当我想稍后更改纹理的参数或调用像glTexSubImage2D这样的函数时,是否足以使用我的纹理绑定的纹理单元调用glActiveTex

    0热度

    1回答

    我正在开发基于GTK3的应用程序,使用GtkGLArea widget创建OpenGL窗口,在Windows上构建应用程序我使用的是64位的msys2系统。 构建应用程序没有问题,它只用一个OpenGL窗口就可以工作。 但是,我的程序旨在处理多个项目,因此每个项目都有一个GtkGLarea。这对Linux非常适用。 但是,在窗口上,它可以与一个GtkGLArea一起使用,但只要使用多个窗口,只有一

    1热度

    1回答

    我不明白为什么这两个代码不会产生相同的结果。我已经启用了深度测试和模板测试和我的主循环是这样的: myShader.Use() // Use shader program glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // define model, projection, view, .

    0热度

    1回答

    const GLchar* vertexSource1 = "#version 330 core\n" "layout (location = 0) in vec2 position;\n" "layout (location = 1) in vec3 color;\n" "out vec3 Color;\n" "void main()\n" "{

    0热度

    1回答

    我试图创建一个色调映射片段着色器,将值从[0, someint]映射到RGB值,但是当我尝试使用GLints时,渲染的纹理全部为0。 下面是相关的纹理创建和绑定代码: std::array<GLint , 25 > pixels; int i=0; float di = 255.0f/25; std::generate(pixels.begin(), pixels.end(), [&]{re

    0热度

    1回答

    我对我的场景中的“加载”或绑定单独对象的不同纹理有点困惑。 这是我设置纹理的方式(从加载的硬盘和结合纹理): setTexture (const std::string& t_filename) { int width, height, nrChannels; glBindTexture(GL_TEXTURE_2D, m_TEX); glTexParameteri(GL_TEXTURE_

    0热度

    1回答

    所以首先,我是一名初学者,我从learnopengl.com学习opengl。所以我明白主要方法的代码中发生了什么。代码在主要方法中起作用。但是当我试图为它创建一个类时,它不会呈现任何东西!我完全不知道出了什么问题! Sprite.h #pragma once #include"Shader.h" #include<GL\glew.h> class Sprite { GLuin