|
|
指定着色器输入值许多着色器需要一个或多个在着色器处理中使用的输入图像。但是,在很多情况下,输入是在使用 Shader 对象时自动指定的。例如,假定着色器需要一个输入,并且该着色器用作滤镜。在滤镜应用于显示对象或 BitmapData 对象时,该对象会自动设置为输入。在这种情况下,无需显式设置输入值。 但是,在某些情况下,特别是在着色器定义多个输入时,一定要显式设置输入值。在 ActionScript 中,在着色器中定义的每个输入都是由一个 ShaderInput 对象表示的。如识别着色器输入和参数中所述,ShaderInput 对象是 Shader 对象的 data 属性中的 ShaderData 实例的属性。例如,假定着色器定义一个名为 src 的输入,并且该着色器链接到一个名为 myShader 的 Shader 对象。在这种情况下,可使用下面的标识符访问对应于 src 输入的 ShaderInput 对象: myShader.data.src 每个 ShaderInput 对象都有一个 input 属性,该属性用于设置输入值。将 input 属性设置为 BitmapData 实例可指定图像数据。此外,还可以将 input 属性设置为 BitmapData 或 Vector.<Number> 实例以指定二进制或数字数据。有关使用 BitmapData 或 Vector.<Number> 实例作为输入的详细信息和限制,请参阅语言参考中的 ShaderInput.input 列表。 除了 input 属性之外,ShaderInput 对象还具有可用于确定输入所需图像类型的属性。这些属性包括 width、height 和 channels 属性。每个 ShaderInput 对象还有一个 index 属性,该属性用于确定是否必须为输入提供显式值。如果着色器需要的输入数量大于自动设置的输入数量,则需要为这些输入设置值。有关使用着色器的不同方式,以及是否自动设置输入值的详细信息,请参阅使用着色器。 |