|
我安?DirectX SDK November 2007.
有一??XFile叫DwarfWithEffectInstance.x,在以下的路??
Microsoft DirectX SDK (November 2007)\Samples\Media\Dwarf\DwarfWithEffectInstance.x
?我??warfWithEffectInstance.x??上?我可以看到3D Model有打光的效果,看起?砗孟袷?ffect file的效果
???一下,我要如何在3ds max?生一??XFile,它含有一??effect file,Panda plugin可以?出??格式的XFile??那?在3ds max要如何操作?
DwarfWithEffectInstance.x的部分?热萑缦?
EffectInstance {
"reflect.fx";
EffectParamString {
"g_txScene";
"Weapons.dds";
}
reflect.fx的部分?热萑缦?
void VertScene( float4 vPos : POSITION,
float3 vNormal : NORMAL,
float2 vTex0 : TEXCOORD0,
out float4 oPos : POSITION,
out float4 oDiffuse : COLOR0,
out float2 oTex0 : TEXCOORD0,
out float3 oViewPos : TEXCOORD1,
out float3 oViewNormal : TEXCOORD2,
out float3 oEnvTex : TEXCOORD3 )
{
// Transform the position from object space to homogeneous projection space
float4x4 g_mWorldView= mul(g_mWorld, g_mView);
float4x4 g_mWorldViewProjection= mul(g_mWorldView, g_mProj);
float4 lightInView= mul( g_vLight, g_mView);
oPos = mul( vPos, g_mWorldViewProjection );
// oPos = mul( vPos, g_mWorldView );
// oPos = mul( oPos, g_mProj );
// Compute the view-space position
oViewPos = mul( vPos, g_mWorldView );
// Compute view-space normal
oViewNormal = normalize( mul( vNormal, (float3x3)g_mWorldView ) );
// Compute lighting
oDiffuse = float4( dot( oViewNormal, normalize( lightInView - oViewPos ) ) * Diffuse.xyz, 1.0f);;
// Just copy the texture coordinate through
oTex0 = vTex0;
// Compute the texture coord for the environment map.
oEnvTex = 2 * dot( -oViewPos, oViewNormal ) * oViewNormal + oViewPos;
oEnvTex = mul( oEnvTex, transpose((float3x3)g_mView) );
} |
|