反射计算(dx9 StencilMirror)

原创 2006年06月04日 17:53:00

反射只是翻转摄影机,将场景渲染到Texture上,或使用STENCIL蒙板直接绘制。
具体计算查看了D3D的 Sample,如下:


   D3DXMATRIXA16 matViewSaved;
    m_pd3dDevice->GetTransform( D3DTS_VIEW, &matViewSaved ); //取得视口

//定义一个翻转的参考平面,可根据需要自己定义位置及法线
    D3DXVECTOR3 vPoint(0,0,0);
    D3DXVECTOR3 vNormal(0,1,0)
;    
    D3DXMATRIXA16 matView, matReflect;
    D3DXPLANE plane;
    D3DXPlaneFromPointNormal( &plane, &vPoint, &vNormal ); //生成这个平面

    D3DXMatrixReflect( &matReflect, &plane );   //取得该平面的反射矩阵

    D3DXMatrixMultiply( &matView, &matReflect, &matViewSaved ); //使用反射矩阵翻转视口,摄影机被翻转到反射位置

    m_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );  //设置视口,这样摄影机渲染出的内容就是翻转的了

//设置剪切平面,使反射面上的内容被渲染,面下的被丢弃
    m_pd3dDevice->SetClipPlane( 0, plane );
    m_pd3dDevice->SetRenderState( D3DRS_CLIPPLANEENABLE, 0x01 );

//(不知在Shader里面,这个功能是否还起作用)
//如果渲染到材料上,需要使用投影矩阵把材料贴到实际反射的物体上。也可把物体点位先转换为屏幕坐标再贴图,原理是一样的

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

d3dx9_40.dll下载

  • 2017-02-18 00:15
  • 4.18MB
  • 下载

d3dx9_30.dll 9.12.589.0

  • 2015-01-06 00:21
  • 2.24MB
  • 下载

Phpcms V9最新版整合DX3.2教程详解

phpcms v9 discuz x3.2 通信 同步登陆 退出 discuz免激活 第一步: 1.使用新的uc_client文件,打开phpsso_server\api\ 目录修改原uc_c...

DX9鼠标拾取轨迹

  • 2017-07-23 23:43
  • 33.32MB
  • 下载

DX9程序设计

  • 2015-01-23 10:38
  • 5.70MB
  • 下载

9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27693365 工厂方法模式 工厂方法是程序设计中...

SDK中文版 Dx9

  • 2014-09-22 11:45
  • 2.67MB
  • 下载

DX9文件处理

  • 2013-05-07 20:54
  • 951KB
  • 下载

【Cocos2dx】使用CCScale9Sprite拉伸图片

如下图,在资源的Rescources文件夹中自带一个40x40的按钮图片 如果我们在Cocos2dx设定此图片自动拉伸为填充游戏屏幕的800x600图片,如下图: 总不能在外部利用...

d3dx9_41.dll

  • 2013-07-17 16:37
  • 3.98MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)