相关疑难解决方法(0)

glEnable(GL_DEPTH_TEST) - 没有渲染

在OpenGL中,我显示了一个简单的模型.当我启用深度缓冲区时,

glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
Run Code Online (Sandbox Code Playgroud)

一切都消失了.我读过这个 OpenGL常见问题解答,但它对我没有帮助.

我的角度设置为:angle=45deg,near=1,far=40,我把模型中(0,0,0),我把我的眼睛的(0,0,4).没有Z缓冲区,我可以看到模型.

可能有什么不对?

opengl

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

OpenGL - OBJ中的顶点法线

我想知道如何使用顶点法线来实现闪电效果?目前我所拥有的是我可以将顶点和纹理坐标发送到着色器并使用它们但是使用法线,我不知道如何在着色器程序中使用它们.以下是我到目前为止的情况.

    // vertex shader
    layout(location = 0) in vec4 vert;
    layout(location = 1) in vec4 color;
    layout(location = 2) in vec2 texcoord;
    uniform mat4 m_model;
    uniform mat4 m_view;
    uniform mat4 m_proj;
    void main() {
        gl_Position = m_proj * m_view * m_model * vert;
    }

    // fragment shader
    in vec2 fragtexcoord;
    out vec4 color;
    uniform sampler2D textureunit;
    void main(void) {
        color = texture(textureunit, fragtexcoord);
    }
Run Code Online (Sandbox Code Playgroud)

编辑 以下是我的着色器.

顶点着色器

    layout(location = 0) in vec4 vert;
    layout(location = 1) in vec4 color;
    layout(location …
Run Code Online (Sandbox Code Playgroud)

c++ opengl shader opengl-es wavefront

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

OpenGL-如何创建与订单无关的透明度?

我一直在为教育目的开发游戏引擎,但遇到了这个问题,但我似乎找不到答案:

Alpha通道仅适用于在具有Alpha通道的对象之前已绘制的对象(例如:在具有3个对象的场景中,假设猫,狗和瓶子(透明)。猫和狗)在瓶子后面;首先拉狗,然后拉瓶子,然后是猫,然后从瓶子中看到只狗)。

这是此问题的图片: 对象按照它们在列表框中出现的顺序绘制

我使用C ++作为引擎,使用Win32 API作为编辑器,使用GLSL作为阴影:

// some code here
vec4 alpha = texture2D(diffuse, texCoord0).aaaa;
vec4 negalpha = alpha * vec4(-1,-1,-1,1) + vec4(1,1,1,0);

vec4 textureComponentAlpha = alpha*textureComponent+negalpha*vec4(1,1,1,0);//(texture2D ( diffuse, texCoord0 ) ).aaaa;

gl_FragColor = (textureComponentAlpha + vec4(additiveComponent.xyz, 0)) * vec4(lightingComponent.xyz, 1);
Run Code Online (Sandbox Code Playgroud)

在C ++中:

glEnable(GL_ALPHA_TEST);
glDepthFunc(GL_EQUAL);

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)

我认为它与alpha测试的制作方式有关,或类似的东西。

有人可以帮我解决这个问题吗?

c++ opengl graphics glsl

4
推荐指数
2
解决办法
3678
查看次数

标签 统计

opengl ×3

c++ ×2

glsl ×1

graphics ×1

opengl-es ×1

shader ×1

wavefront ×1