++a = b操作显示没有错误,但a++ = b在编译时显示错误g++.在这些操作之前初始化变量.
虽然这些操作没有实际用途,但我认为它们都应该在编译时发出相同的错误.你怎么看?如果有正当理由请向我解释.提前致谢!:)
PS gcc给出了这两个错误.
我写了一个非常简单的传递几何着色器.我的输入原语是点,输出原语也是点.我还想通过几何着色器将颜色和法线从顶点着色器转发到片段着色器.着色器的编译和链接完美无瑕,但最终的颜色非常奇怪.我认为这种转发有问题.任何人都可以指出这个问题吗?这是我的着色器:
顶点着色器:
#version 330 compatibility
struct vData
{
    vec3 normal;
    vec4 color;
};
out vData vertex;
void main()
{
    vertex.normal = gl_NormalMatrix * gl_Normal;
    vertex.color = gl_Color;
    gl_Position = ftransform();
}
Run Code Online (Sandbox Code Playgroud)
几何着色器:
#version 330
layout (points) in;
layout (points) out;
layout (max_vertices = 1) out;
struct vData
{
    vec3 normal;
    vec4 color;
};
in vData vertices[];
out vData frag;
void main()
{
    int i;
    for(i = 0;i < gl_in.length();i++)
    {
        frag.normal = vertices[i].normal;
        frag.color = vertices[i].color;
        gl_Position = gl_in[i].gl_Position;
        EmitVertex(); …Run Code Online (Sandbox Code Playgroud)