本文主要是介绍D3D9 Samples(16)--Pick,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
D3D9 Samples(16)--Pick
运行 Microsoft DirectX SDK (June 2010)中的 DirectX Sample Browser。找到Pick,然后点Install Project安装这个项目。先编译运行下项目,看看效果:
这个例子演示用鼠标选中模型中的一个面的算法。在屏幕空间(screen space)发出一条射线(ray),计算与模型是否有交点,从而实现选中的效果。
1. 准备工作
1.1 准备模型
OnCreateDevice
使用DXUT框架提供的CDXUTXFileMesh封装类来加载X文件。
创建一个顶点缓冲g_pVB来记录相交的面。
MsgProc
在这里接收鼠标左键按下消息,如果鼠标左键按下,则停止时钟,从而让模型不再旋转。
1.2 界面
勾选Use D3DXIntersect表明用D3DX库提供的这个函数计算交点;不勾选则不用D3DX库,自己计算。
勾选Show All Hits 表示显示所有与射线相交的三角形;不勾选表明只显示距离射线原点最短的相交三角形。
2. 核心算法
2.1 计算光标(Cursor)在窗口客户区(client-area)的位置
POINTptCursor;
这篇关于D3D9 Samples(16)--Pick的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!