【发布时间】:2011-06-16 05:20:49
【问题描述】:
我在为点编写简单的直通几何着色器时遇到了一些问题。我想应该是这样的:
#version 330
precision highp float;
layout (points) in;
layout (points) out;
void main(void)
{
gl_Position = gl_in[0].gl_Position;
EmitVertex();
EndPrimitive();
}
当我没有指定几何着色器时,屏幕上显示了一堆点,但是当我尝试将此着色器链接到我的着色器程序时,没有显示任何点,也没有报告错误。
我正在使用 C# 和 OpenTK,但我认为这不是问题。
编辑:人们请求了其他着色器,尽管我确实在没有使用几何着色器的情况下测试了这些着色器,并且在没有几何着色器的情况下它们工作得很好。
顶点着色器:
void main()
{
gl_FrontColor = gl_Color;
gl_Position = ftransform();
}
片段着色器:
void main()
{
gl_FragColor = gl_Color;
}
【问题讨论】:
-
这可能与this 问题有关,因为我正在ATI 显卡上进行测试。
-
您能发布附加到该程序的其他着色器吗?
-
@Nocturne 也许将新语法(如
layout(points))与旧的弃用语法(如ftransform或固定函数变化)混合并不是一个好主意。但我刚刚发现了另一件事,会更新我的答案。
标签: opengl glsl geometry-shader