小编dup*_*per的帖子

在OpenGL中概述效果

在OpenGL中,我可以通过正常绘制对象来绘制对象,然后使用模板缓冲区再次将其绘制为线框,这样就不会绘制原始对象.但是,这会产生一种纯色的轮廓.

在此输入图像描述

在此图像中,生物轮廓的像素似乎比它们勾勒出的生物更加透明.如何使用OpenGL实现类似的效果?

opengl 3d graphics glsl

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

GLSL abs()坏了吗?

我在GLSL中制作高斯模糊着色器.由于卷积核是对称的,我存储了它的一半.我写:

vec3 glow = vec3(0.0);
for (int i = -WIDTH; i <= WIDTH; i++) {
    uint j = abs(i);
    glow += kernel[j] + texelFetch(u_glowTexture, coord + ivec2(i, 0), 0);
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这会使模糊略微偏向左侧.但后来我用以下内容替换第三行:

uint j = i * sign(i);
Run Code Online (Sandbox Code Playgroud)

而现在它的工作就像我期望的那样.我破了abs()吗?我真的发现了驱动程序错误吗?

opengl 3d graphics driver glsl

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

将整数纹理附加到帧缓冲区

我正在尝试将具有内部格式的纹理附加GL_R32UI到帧缓冲区,以用作ID缓冲区。但是,即使它是唯一的附件,也要glCheckFramebufferStatus不断提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT

这对我来说很奇怪,因为OpenGL 4.2规范似乎GL_R32UI表明OpenGL实现是附加到帧缓冲区时OpenGL实现必须支持的格式之一。我怀疑这是驱动程序错误。我是对的,还是有人可以告诉我我所忽略的东西?

opengl graphics textures framebuffer render-to-texture

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

标签 统计

graphics ×3

opengl ×3

3d ×2

glsl ×2

driver ×1

framebuffer ×1

render-to-texture ×1

textures ×1