呃 各位(大_佬词汇被禁用了),
为什么写Shader时变量名称前面必须要加下划线?..
我尝试把一个下划线删掉 然后Shader就报错了..
在Shader中,变量名称前面加下划线并没有什么特殊含义,只是一种命名约定。这种命名约定主要是为了区分Shader内置变量和自定义变量。
在OpenGL中,Shader内置变量以gl_开头,例如gl_Position,gl_VertexID等等。而自定义变量则不以gl_开头,一般都会加上一个前缀以区分变量类型。例如,u_表示uniform变量,v_表示varying变量,a_表示attribute变量等等。在这些前缀之后,一些人习惯加上一个下划线,例如u_texture、v_color等等。
当然,这些前缀和下划线只是一种约定,并不是必须的。但是,如果你的变量名称和内置变量或其他变量名称冲突了,就会导致Shader编译错误或运行错误。
因此,建议在Shader中遵循这种命名约定,这样可以避免命名冲突的问题。