1、shader是一种着色器,在flare3D中用来给图片、3D模型修饰颜色的,使其更加逼真。
*FLSL技术
1)FLSLMaterial使得图形、3D模型全方位着色
要输出Vertex(顶点)和Fragment(片元信息);
例如:
use namespace flare;
use namespace flare.transforms;
use namespace flare.filters;
input UV0 uv;
interpolated float2 iUV=uv;
sampler2D texture;
param float alpha=1;
technique template
{
output vertex=transform();
output fragment=sampler2D(texture,iUV)*alpha;
}
AS方面:
[Embed(source="ShaderModer3.flsl.compiled",mimeType="application/octet-stream")] private var flslMaterialAsset:Class;
private var _flslMaterial:FLSLMaterial;
_flslMaterial=new FLSLMaterial("FLSLMaterial",new flslMaterialAsset);
接下来就是给你要着色的模型运用_flslMaterial就行了,例如:
private var Cube _cube=new Cube("cube",10,10,10,1,_flslMaterial);
2)FLSLFilter是指给图形的某个部分着色,不是指整个模型,所以它不需要输出顶点的信息,只需要输出Fragment就可以了
例如:
use namespace flare;
use namespace flare.transforms;
use namespace flare.filters;
sampler2D texture;
param TIME time;
technique template
{
output fragment=textureMap(texture,float2(1),time.wz);
}
AS方面:
首先导入FLSL文件
[Embed(source="ShaderModer1.flsl.compiled",mimeType="application/octet-stream")] private var flslFilterAsset:Class;
然后导入你要着色的图形文件
[Embed(source="akmat1.png")] private var textureAsset:Class;
private var _flslFilter:FLSLFilter;
private var _texture:Texture3D;
private var _shader:Shader3D;
_flslFilter=new FLSLFilter(new flslFilterAsset,BlendMode.NORMAL);
_flslFilter.params.texture.value=new Texture3D(new textureAsset);
_shader=new Shader3D("",[_flslFilter,new ColorFilter (0xcdcdb4,0.5,BlendMode.ADD)]);
接下来就是给你的模型贴上你渲染过的图形了
例如:
//给一个正方体贴上_shader类型的贴图
private var Cube _cube=new Cube("cube",10,10,10,1,_shader);
*FLSL技术
1)FLSLMaterial使得图形、3D模型全方位着色
要输出Vertex(顶点)和Fragment(片元信息);
例如:
use namespace flare;
use namespace flare.transforms;
use namespace flare.filters;
input UV0 uv;
interpolated float2 iUV=uv;
sampler2D texture;
param float alpha=1;
technique template
{
output vertex=transform();
output fragment=sampler2D(texture,iUV)*alpha;
}
AS方面:
[Embed(source="ShaderModer3.flsl.compiled",mimeType="application/octet-stream")] private var flslMaterialAsset:Class;
private var _flslMaterial:FLSLMaterial;
_flslMaterial=new FLSLMaterial("FLSLMaterial",new flslMaterialAsset);
接下来就是给你要着色的模型运用_flslMaterial就行了,例如:
private var Cube _cube=new Cube("cube",10,10,10,1,_flslMaterial);
2)FLSLFilter是指给图形的某个部分着色,不是指整个模型,所以它不需要输出顶点的信息,只需要输出Fragment就可以了
例如:
use namespace flare;
use namespace flare.transforms;
use namespace flare.filters;
sampler2D texture;
param TIME time;
technique template
{
output fragment=textureMap(texture,float2(1),time.wz);
}
AS方面:
首先导入FLSL文件
[Embed(source="ShaderModer1.flsl.compiled",mimeType="application/octet-stream")] private var flslFilterAsset:Class;
然后导入你要着色的图形文件
[Embed(source="akmat1.png")] private var textureAsset:Class;
private var _flslFilter:FLSLFilter;
private var _texture:Texture3D;
private var _shader:Shader3D;
_flslFilter=new FLSLFilter(new flslFilterAsset,BlendMode.NORMAL);
_flslFilter.params.texture.value=new Texture3D(new textureAsset);
_shader=new Shader3D("",[_flslFilter,new ColorFilter (0xcdcdb4,0.5,BlendMode.ADD)]);
接下来就是给你的模型贴上你渲染过的图形了
例如:
//给一个正方体贴上_shader类型的贴图
private var Cube _cube=new Cube("cube",10,10,10,1,_shader);