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);
    }
  • 相关阅读:
    java 基础7
    java 基础5
    java 基础6
    java 基础4
    java 基础2
    java 基础3
    java 基础1
    使用HTML的基本结构创建网页
    jsp Servlet 文件上传
    Filter过滤器 不登陆无法访问其他页面
  • 原文地址:https://www.cnblogs.com/moniza/p/3540305.html
Copyright © 2011-2022 走看看