D3D 物体在镜子、阴影中怎样同步透明?物体渐变透明过程怎样消除挡住镜中物体的情况?.以下是shadow函数代码,实现透明的时候只捕获了一次变透明按键消息,放开按键又回到原来状态,物体透明

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/05 14:28:16

D3D 物体在镜子、阴影中怎样同步透明?物体渐变透明过程怎样消除挡住镜中物体的情况?
.以下是shadow函数代码,实现透明的时候只捕获了一次变透明按键消息,放开按键又回到原来状态,物体透明了影子还在……何解呀大师前辈们?
void RenderShadow(float timeDelta)
{
Device->SetRenderState(D3DRS_STENCILENABLE,true);
Device->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);
Device->SetRenderState(D3DRS_STENCILREF,0x0);
Device->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
Device->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
Device->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
Device->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
Device->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_INCR); // increment to 1
// position shadow
D3DXVECTOR4 lightDirection(0.707f,-0.707f,0.707f,0.0f);
D3DXPLANE groundPlane(0.0f,-1.0f,0.0f,0.0f);
D3DXMATRIX S;
D3DXMatrixShadow(
&S,
&lightDirection,
&groundPlane);
D3DXMATRIX T;
D3DXMatrixTranslation(
&T,
TeapotPosition.x,
TeapotPosition.y,
TeapotPosition.z);
D3DXMATRIX yRot;
// D3DXMATRIX xRot;
static float y = 0.0f;
D3DXMatrixRotationY(&yRot,y);
if( ::GetAsyncKeyState(VK_LEFT) & 0x8000f )
y+=5* timeDelta;
if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )
y-=5* timeDelta;
if( y>= 6.28f)
y= 0.0f;
D3DXMATRIX W = yRot*T * S;
Device->SetTransform(D3DTS_WORLD,&W);
// alpha blend the shadow
Device->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
D3DMATERIAL9 mtrl = d3d::InitMtrl(d3d::BLACK,d3d::BLACK,d3d::BLACK,d3d::BLACK,0.0f);
mtrl.Diffuse.a = 0.6f; // 50% transparency.
if( ::GetAsyncKeyState('A') & 0x8000f )
//{angle -= 1.2f * timeDelta;
mtrl.Diffuse.a += 0.1f;
if( ::GetAsyncKeyState('S') & 0x8000f )
mtrl.Diffuse.a -= 0.1f;
if(mtrl.Diffuse.a > 1.0f)
mtrl.Diffuse.a = 1.0f;
if(mtrl.Diffuse.a < 0.0f)
mtrl.Diffuse.a = 0.0f;
// Disable depth buffer so that z-fighting doesn't occur when we
// render the shadow on top of the floor.
Device->SetRenderState(D3DRS_ZENABLE,false);
Device->SetMaterial(&mtrl);
Device->SetTexture(0,0);
Teapot->DrawSubset(0);
Device->SetRenderState(D3DRS_ZENABLE,true);
Device->SetRenderState(D3DRS_ALPHABLENDENABLE,false);
Device->SetRenderState(D3DRS_STENCILENABLE,false);
};

(╯﹏╰)b...
求同解……

D3D 物体在镜子、阴影中怎样同步透明?物体渐变透明过程怎样消除挡住镜中物体的情况?.以下是shadow函数代码,实现透明的时候只捕获了一次变透明按键消息,放开按键又回到原来状态,物体透明 3dsmax9中、怎样使物体像放在镜子上一样、有反射倒影?同上、 3ds Max中,物体透明后如何去掉物体的阴影,如图 镜子与物体为什么要在镜子中看到整个物体,镜子大小至少是物体的 1/2 透明的物体有阴影吗? 光在透明物体中会反射吗 为什么光可以在透明物体中传播 为什么光能在透明物体中传播,却不能在不透明物体中传播? 艾青《镜子》在这首诗歌中“镜子”是怎样的一个艺术形象? 在镜子的诗中,作者赋予了镜子怎样的品质 怎样做PS物体阴影? 镜子漆喷在透明玻璃上为什么不亮... 在3D MAX中阴影偏离物体是怎么回事啊? maya怎样才能让一个物体透明却又能接收其他物体在其表面投射阴影呢?用mental ray渲染 maya怎样只渲染投射在物体上的阴影,但不渲染该物体? 3d max中透明度为100%的物体渲染我把一物体在前五十帧中将其材质设为透明度100%,想让其在第51帧突然出现,但是在渲染的时候透明的物体会有一阴影,该如何解决,并且还有没有什么其他的办法 各种色光都能透过的透明物体称为( ),各种色光都能吸收的不透明物体称为( )物体.在图中作出人眼在窗外能同时看到发光点A和B的范围.(用阴影表示) 艾青《镜子》中镜子是怎样的一个艺术形象?