|
|
发表于 2006-10-30 22:44:00
|
显示全部楼层
Re: 我现在要包装SHADER这个玩意。想用NVIDIA的CG.但是我不
shader也可以用固定管线,
PixelShader=0;
VertexShader=0;
我这dx中使用过.openGl大概也可以.
下面是Nebula2的例子
technique t0
{
pass p0
{
WorldTransform[0] = <mWorld>;
ViewTransform = <mView>;
ProjectionTransform = <mProjection>;
TextureTransform[0] = <mTextureTransform0>;
ColorWriteEnable = RED|GREEN|BLUE|ALPHA;
NormalizeNormals = True;
ZEnable = True;
ZFunc = LessEqual;
StencilEnable = False;
DepthBias = 0.0f;
PixelShader = 0;
SpecularEnable = False;
Ambient = {0.8, 0.8, 0.8, 1.0f};
LightEnable[0] = True;
LightAmbient[0] = {1.0, 1.0, 1.0, 1.0f};
LightDiffuse[0] = {1.0, 1.0, 1.0, 1.0f};
LightSpecular[0] = {1.0, 1.0, 1.0, 1.0f};
LightPosition[0] = {0.0, 0.0, 0.0};
LightRange[0] = 500000.0;
LightAttenuation0[0] = 1.0;
LightAttenuation1[0] = 0.0;
LightAttenuation2[0] = 0.0;
// LightType must be the last light state that is set!
LightType[0] = POINT;
ZWriteEnable = False;
AlphaBlendEnable = True;
AlphaTestEnable = False;
Lighting = True;
VertexShader = 0;
FogEnable = False;
CullMode = None;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
MaterialAmbient = <MatDiffuse>;
MaterialDiffuse = <MatDiffuse>;
MaterialSpecular = { 0.0, 0.0, 0.0, 0.0 };
FVF = XYZ | NORMAL | TEX1;
Texture[0] = <MeshTexture>;
TexCoordIndex[0] = 0;
TextureTransformFlags[0] = Count2; //2d texture
ColorOp[0] = Modulate;
ColorOp[1] = Disable;
ColorArg0[0] = Diffuse;
ColorArg1[0] = Texture;
AlphaOp[0] = SelectArg1;
AlphaOp[1] = Disable;
AlphaArg0[0] = Diffuse;
AlphaArg1[0] = Texture;
//FillMode = Wireframe;
MinFilter[0] = LINEAR;
MagFilter[0] = LINEAR;
MipFilter[0] = LINEAR;
}
} |
|