Мой фрагментный шейдер содержит следующую структурную переменную.
struct Material
{
vec3 ambient;
vec3 diffuse;
vec3 specular;
float shininess;
};
uniform Material material;
// another uniform
uniform float tmp;
В vispy при использовании
self.program['material.ambient'] = [1,1,1]
self.program['material.diffuse'] = [1,0.7,1]
self.program['material.specular'] = [0.5,1,1]
self.program['material.shininess'] = 32
self.program['tmp'] = 10
Я получаю следующие ошибки
WARNING: Value provided for 'material.diffuse', but this variable was not found in the shader program.
WARNING: Value provided for 'material.ambient', but this variable was not found in the shader program.
WARNING: Value provided for 'material.specular', but this variable was not found in the shader program.
WARNING: Value provided for 'material.shininess', but this variable was not found in the shader program.
INFO: Program has unset variables: { 'material.specular', 'material.shininess', 'material.diffuse', 'material.ambient'}
Я используя правильную программу шейдера и подключили правильный шейдер фрагмента. Я думаю, что vispy не поддерживает типы struct , есть ли какая-то работа, с помощью которой я могу передать эти значения?