C++工作不统一,所有变量都定义

C++ doesn't work uniform and all variable defines

本文关键字:变量 定义 工作 不统一 C++      更新时间:2023-10-16
#include <windows.h>  // for MS Windows
#include <GL/glut.h>  // GLUT, include glu.h and gl.h
#include <vector> 
uniform vec2 lightpos;
uniform vec3 lightColor;
uniform float screenHeight;
uniform vec3 lightAttenuation;
uniform float radius;
uniform sampler2D texture;
void main()
{       
vec2 pixel=gl_FragCoord.xy;     
pixel.y=screenHeight-pixel.y;   
vec2 aux=lightpos-pixel;
float distance=length(aux);
float attenuation=1.0/(lightAttenuation.x+lightAttenuation.y*distance+lightAttenuation.z*distance*distance);    
vec4 color=vec4(attenuation,attenuation,attenuation,1.0)*vec4(lightColor,1.0);  
gl_FragColor = color;//*texture2D(texture,gl_TexCoord[0].st);
}

错误
"统一"未命名类型
"vec2"未在此范围内声明"屏幕高度"未在此范围内声明 预期";"之前 "aux">
未在此范围内

声明

等。

我使用开发C++和...

项目参数

/GL/头子文件

如果需要任何其他信息,请随时写。我添加了我所知道的。我以前做过opengl项目。但是知道我必须制作像这个YouTube视频,OpenGL 2D照明使用着色器

GLSL 只是看起来像 C,它实际上不是 C。代码必须由不同的编译器(外部编译器(如glslc或驱动程序提供的 OpenGL 编译器(编译,并且它作为渲染通道的一部分在 GPU 上运行。

这是一个着色器程序,而不是 c++ 程序。您必须使用着色器编译器对其进行编译。