Я хочу сделать вершинно-фрагментный шейдер в единстве.Я знаю о GLSL, но сначала попробуйте программирование на cg / hlsl.
Если я установил единицы в «графический API для openGLCore», я могу использовать структурные переменные.единообразное среднее значение, свойства шейдера.(glsl назовите его единообразным)
но я установил «единство» на «графический API для Direct3D», он не может работать.ошибка компиляции.
это ошибка.
Shader error in 'HLSL/Phong_cg': Fragment program 'frag': Struct variable
'u_material' is ignored. Only instancing constant buffers can have struct
variables (on d3d11)
это код.
struct MATERIAL {
fixed4 ambient_color;
fixed4 diffuse_color;
fixed4 specular_color;
fixed4 emissive_color;
float specular_exponent;
};
uniform MATERIAL u_material;
Я не могу найти, как решить.если я использую struct в функции (local varialble), это не проблема.но мне нужно глобальное (единообразное) ....
это невозможно?
пс.в cg / hlsl эта «единая переменная» называется как?это просто свойства?