鼹鼠啊,我查了一下SDK,Present是这样的:
HRESULT Present( CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND hDestWindowOverride, CONST RGNDATA * pDirtyRegion );
它就是把 BackBuffer 的某一个 矩形区域(pSourceRect)显示到指定的窗口(hDestWindowOverride)中的矩形区域(pDestRect)
是这样的吧??
简单说就是:把 BackBuffer 的一个矩形区域 COPY 到 一个指定窗口的矩形区域
但现在的问题是:屏幕上的矩形区域可以由我来随意指定,但,我却不能把 MESH 投影到这个矩形中,因为我无法计算出 MESH 为了投影到这个矩形中,在空间坐标中的具体坐标。。。。
我去看了一下微软 DX SDK 的例子,里面有一个 PICK 代码很简单,它里面用一个函数完成了:从屏幕上一个点(X,Y),得到一条“射线”,现在就差:在这条射线上来找到一个点,然后把 MESH 放到那里去,能让这个 MESH 正确地投影到我在屏幕上指定的区域,我正在想办法。。。 |