Передача параметров в шейдер с OpenFL

Я хочу передать массив векторов или массив чисел с плавающей запятой шейдеру в OpenFL, возможно ли это?

Теперь я могу только передавать поплавки, используя что-то вроде этого:

var param: ShaderParameter<Float> = new ShaderParameter<Float>();
param.value = [2.0];
this.data.some = param; // In the Shader class 

Но если я попытаюсь использовать Array<Float> вместо Float, он скомпилируется, но значения не будут загружены в шейдер.

Любые идеи?


person Matías González    schedule 02.01.2018    source источник


Ответы (2)


Я не думаю, что вы действительно должны передавать массивы шейдерам таким образом. Вы пытались установить значение напрямую через shaper.data.param.value ?

person martijn    schedule 03.01.2018
comment
Да, но значения не загружаются в шейдер - person Matías González; 08.01.2018

Возможно, слишком поздно для этого ответа, но пытались ли вы настроить ShaderParameter до вызова super() конструктора Shader? Мне не удавалось заставить пользовательские параметры работать лично, пока я не расширил класс Shader (например, DisplayObjectShader), не настроил нужные параметры перед super() внутри, а затем после вызова super() сделал все остальное как обычно (например, присвоение любого значения в поле «значение» моего параметра). Основная проблема для меня оказалась связанной со временем, поскольку параметры не будут работать, если они будут назначены после выполнения родительского конструктора моего шейдера.

person Cleod9    schedule 14.11.2019