zoukankan      html  css  js  c++  java
  • 平面投影

    void RenderShadow(){
        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 W = 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.5f; // 50% transparency.
    
        // 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);
    }
  • 相关阅读:
    JavaScript 技巧
    网页打开客户端本机程序,未安装则提示要求安装
    IIS(World Wide Web Publishing Service)127 无法响应的解决方法
    Jquery hover事件 示例
    JavaScript MVC
    jquery调用基于.NET Framework 3.5的WebService返回JSON数据
    文件下载类
    网页打印局部示例
    未能执行URL(FCK)
    网页中各种宽高
  • 原文地址:https://www.cnblogs.com/moniza/p/3540305.html
Copyright © 2011-2022 走看看