假设有一个语法正确的shader源文件,其包含若干关于uniform变量的定义。请写一个程序从某个shader源文件中提取其所有定义的uniform变量,要求记录其名称、数据类型和初始值(如果有定义),并且可以设计一个函数可以修改某个uniform变量的值。
如下表所示,程序需要提取出一共6个uniform变量,并存放如某种数据结构中,其中3个有初始值,3个没有初始值,并且用户可以修改该数据结构中指定的uniform变量的值。
| uniform vec3 uLightDirectionE; uniform vec3 uMaterialAmbient = vec3(0.3, 0.3, 0.3); uniform vec3 uMaterialDiffuse = vec3(0.9, 0.7, 0.7); uniform vec3 uLightAmbient = vec3(0.6, 0.6, 0.6); uniform vec3 uLightDiffuse; uniform bool uIsFirstFrame; void main() { } |
#include
#include
#include