通过winsock发送Direct3D顶点信息

时间:2012-11-11 20:22:02

标签: c++ directx winsock2

我目前正在开发一个项目,我需要创建一个服务器/客户端应用程序,该应用程序使用C ++,DirectX& D在两个独立的应用程序窗口中绘制图形。 Winsock的。图像应在服务器应用程序窗口的x轴上平移,直到它从右侧的视图开始消失。当它从视图中消失时,客户端应用程序应该呈现图像&将其翻译到自己的屏幕上,给人的印象是图像从服务器窗口移动到客户端窗口。

我不是在寻找任何已完成的代码,而是指示如何在图像完成其跨服务器应用程序窗口的转换周期时通知客户端应用程序再次开始在其屏幕上呈现图像。我想我可以在下面的代码中围绕跟踪g_Rectx的位置做一些事情,并通过winsock发送的消息通知客户端应用程序开始呈现&当x坐标在服务器应用程序上不在视图中时进行转换,但我不确定如何实现此目的。

目前,我在服务器窗口中显示了一个图像&使用标准矩阵转换技术翻译窗口,这一切都很好。它是如何通知客户端应用程序何时开始渲染,我不确定如何实现。

对于我如何做到这一点的任何想法都将非常感激。


摘录当前的翻译代码以防万一...

            // translation matrix to move the image along x axis
    D3DXMATRIX TranslateMatrix;
    D3DXMatrixTranslation(&TranslateMatrix, g_RectX, g_RectY, g_RectZ);
    g_pd3dDevice -> SetTransform(D3DTS_WORLD, &TranslateMatrix);

    // Update the rectangle's x co-ordinate
    g_RectX += 0.1f;

1 个答案:

答案 0 :(得分:1)

在我看来,你只想传播对象的转换(位置,方向,比例),并有两个不同的视图,一个用于服务器,一个用于客户端。这些视图可以简单地是不同的相机位置。当对象在服务器上移动时,它也将在客户端上移动。对于物体和服务器相机之间的给定距离,您应该能够计算它何时开始触摸视锥体的边缘...并且从那里您可以推断出客户端上所需的相机位置以获得“流动” “从一个屏幕到另一个屏幕。