gpt4 book ai didi

opengl - 带有片段着色器的 GLSL 仅渲染黑色 GL_POINTS

转载 作者:行者123 更新时间:2023-12-04 13:55:36 30 4
gpt4 key购买 nike

我正在尝试向我的旧 OpenGL 程序添加一些着色器,该程序绘制了大量 GL_POINTS 和一些 GL_LINES。

我创建了这两个着色器:

顶点着色器:

void main()
{
vec4 v = vec4(gl_Vertex);
v.z = v.z + sin(v.x*v.x + v.y*v.y)/10.0;
gl_Position = gl_ModelViewProjectionMatrix * v;
}

片段着色器:
#version 120 

void main()
{
vec4 myOutputColor = gl_Color;
gl_FragColor = myOutputColor;
//gl_FragColor.r = 0.5;
}

这两个着色器编译和链接没有问题。并且顶点着色器效果很好,我可以看到 GL_POINTS 使用顶点着色器中的 sin 进行了置换。但问题是如果背景颜色不是黑色,我只能看到我的 GL_POINTS 和 GL_LINES,因为所有点和线都呈现黑色。似乎所有在渲染代码中用 glColor3f 设置的颜色都被忽略了。如果我在片段着色器中取消注释注释行,我可以将所有线条和点设为红色,但 gl_Color 不应该与使用 glColor3f 为每个点设置的颜色相对应吗?

我的 OpenGL 代码中是否还有其他可能导致此行为的内容?

最佳答案

您需要在顶点着色器中传递颜色。

gl_FrontColor = gl_Color;

关于opengl - 带有片段着色器的 GLSL 仅渲染黑色 GL_POINTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382368/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com