【问题标题】:How to change gl_PointSize in the vertex shader?如何更改顶点着色器中的 gl_PointSize?
【发布时间】:2021-11-02 21:18:41
【问题描述】:

我正在优化我的粒子渲染器以使用GL_POINTS,现在我需要在顶点着色器中使用gl_PointSize 调整点的大小,以便从顶点着色器中缩放适当数量的粒子。 这是我现在拥有的顶点着色器:

#version 330 core

layout (location = 0) in vec3 position;
layout (location = 1) in uint uv;

uniform mat4 projection;
uniform mat4 view;

void main(){
    gl_PointSize = 10; // No difference with gl_PointSize = 1000
    gl_Position = projection * view * vec4(position, 1.0);
}

在顶点着色器中更改 gl_PointSize 似乎没有什么不同。

【问题讨论】:

    标签: c++ opengl glsl


    【解决方案1】:

    OpenGL Reference - gl_PointSize

    说明

    在顶点、曲面细分评估和几何语言中,可以使用 gl_PerVertex 命名块的单个全局实例,其 gl_PointSize 成员是一个输出,用于接收要光栅化的点的预期大小(以像素为单位)。它可以在着色器执行期间的任何时间写入。如果启用了GL_PROGRAM_POINT_SIZE,则使用gl_PointSize来确定光栅化点的大小,否则会被光栅化阶段忽略。

    【讨论】:

      【解决方案2】:

      您必须启用GL_PROGRAM_POINT_SIZE(请参阅glEnablegl_PointSize):

      glEnable(GL_PROGRAM_POINT_SIZE);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 2014-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多