Ejemplo n.º 1
0
        private void OnIdle(object sender, EventArgs e)
        {
            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_RenderApi.begin(0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 0);
            m_RenderApi.beginScene();
            m_RenderApi.applyCamera(m_3DCamera);
            m_RenderApi.setBlendState(m_DefBlender);
            
            xDepthStencilState depStencil = new xDepthStencilState();
            m_RenderApi.setDepthStencilState(depStencil);

            m_RenderApi.GpuShader = m_pModelShader;

            //xVector3 min = new xVector3();
            //xVector3 max = new xVector3();
            //m_model.BoundBox(min, max);

            //xVector3 len = new xVector3(max.x - min.x, max.y - min.y, max.z - min.z);
            //xVector3 cen = new xVector3(0.5f * max.x + 0.5f * min.x, 0.5f * max.y + 0.5f * min.y, 0.5f * max.z + 0.5f * min.z);

            //设置矩阵绘制场景
            //xMatrix tranMat = new xMatrix();
            //xMathlib.Transform(tranMat, -cen.x, -cen.y, -cen.z);
            //m_RenderApi.setMatrix(tranMat, eMatrixMode.MATRIXMODE_World);            
            //m_scene.Draw();
            int timePassed = 20;
            m_RenderApi.GpuShader = m_SkelShader;

            //单位矩阵绘制角色
            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_model.update(timePassed);
            m_model.Draw();
            xColorF cl  = new xColorF(1.0f , 1.0f , 1.0f ,1.0f );
            xMatrix mat = new xMatrix();
            mat.identity();
            m_RenderApi.setMatrix(mat, eMatrixMode.MATRIXMODE_World);
            //cl.r = 1.0f; cl.g = 1.0f; cl.b = 0.0f; cl.a = 1.0f;
            m_RenderApi.applyCamera(m_2DCamera);
            
            m_RenderApi.GpuShader = m_pRectShader;
            xVector destRect = new xVector();
            destRect.left = 10; destRect.top = 400; destRect.width = 400; destRect.height = 300;

            m_RenderApi.setBlendState(m_DefBlender);
            m_RenderApi.set2DTexture( 1  , m_MaskTexture );
            m_RenderApi.drawRectf(m_DiffuseTexture , destRect , cl);
            m_RenderApi.GpuShader = m_pRectBlankShader;

            m_Angle += 0.5f;
            destRect.left = 500; destRect.top = 10; destRect.width = 400; destRect.height = 300;
            xMatrix rotMat = new xMatrix();
            xMathlib.RotateZ(rotMat, m_Angle);
            xMatrix xformMat = new xMatrix();
            xMathlib.XForm_Trans(xformMat , rotMat , new xVector3( (destRect.left + destRect.width/2.0f) , (destRect.top + destRect.height/2.0f)  , 0.0f ) );
            m_RenderApi.setMatrix(xformMat,eMatrixMode.MATRIXMODE_World);
            //m_RenderApi.drawRectf(destRect, new xColorF(1.0f, 0.0f, 0.0f, 1.0f) );

            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_RenderApi.findFont("default").drawText("Evolution3D 演示 D3D10",10,50,cl);
            m_RenderApi.endScene();
            m_RenderApi.swapBuffer();

            
        }
Ejemplo n.º 2
0
        private void OnIdle(object sender, EventArgs e)
        {
            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_RenderApi.begin(0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 0);
            m_RenderApi.beginScene();
            m_RenderApi.applyCamera(m_3DCamera);
            m_RenderApi.setBlendState(m_DefBlender);

            xDepthStencilState depStencil = new xDepthStencilState();

            m_RenderApi.setDepthStencilState(depStencil);

            m_RenderApi.GpuShader = m_pModelShader;

            //xVector3 min = new xVector3();
            //xVector3 max = new xVector3();
            //m_model.BoundBox(min, max);

            //xVector3 len = new xVector3(max.x - min.x, max.y - min.y, max.z - min.z);
            //xVector3 cen = new xVector3(0.5f * max.x + 0.5f * min.x, 0.5f * max.y + 0.5f * min.y, 0.5f * max.z + 0.5f * min.z);

            //设置矩阵绘制场景
            //xMatrix tranMat = new xMatrix();
            //xMathlib.Transform(tranMat, -cen.x, -cen.y, -cen.z);
            //m_RenderApi.setMatrix(tranMat, eMatrixMode.MATRIXMODE_World);
            //m_scene.Draw();
            int timePassed = 20;

            m_RenderApi.GpuShader = m_SkelShader;

            //单位矩阵绘制角色
            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_model.update(timePassed);
            m_model.Draw();
            xColorF cl  = new xColorF(1.0f, 1.0f, 1.0f, 1.0f);
            xMatrix mat = new xMatrix();

            mat.identity();
            m_RenderApi.setMatrix(mat, eMatrixMode.MATRIXMODE_World);
            //cl.r = 1.0f; cl.g = 1.0f; cl.b = 0.0f; cl.a = 1.0f;
            m_RenderApi.applyCamera(m_2DCamera);

            m_RenderApi.GpuShader = m_pRectShader;
            xVector destRect = new xVector();

            destRect.left = 10; destRect.top = 400; destRect.width = 400; destRect.height = 300;

            m_RenderApi.setBlendState(m_DefBlender);
            m_RenderApi.set2DTexture(1, m_MaskTexture);
            m_RenderApi.drawRectf(m_DiffuseTexture, destRect, cl);
            m_RenderApi.GpuShader = m_pRectBlankShader;

            m_Angle      += 0.5f;
            destRect.left = 500; destRect.top = 10; destRect.width = 400; destRect.height = 300;
            xMatrix rotMat = new xMatrix();

            xMathlib.RotateZ(rotMat, m_Angle);
            xMatrix xformMat = new xMatrix();

            xMathlib.XForm_Trans(xformMat, rotMat, new xVector3((destRect.left + destRect.width / 2.0f), (destRect.top + destRect.height / 2.0f), 0.0f));
            m_RenderApi.setMatrix(xformMat, eMatrixMode.MATRIXMODE_World);
            //m_RenderApi.drawRectf(destRect, new xColorF(1.0f, 0.0f, 0.0f, 1.0f) );

            m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World);
            m_RenderApi.findFont("default").drawText("Evolution3D 演示 D3D10", 10, 50, cl);
            m_RenderApi.endScene();
            m_RenderApi.swapBuffer();
        }