1

私は現在、C ++、DirectX、およびWinsockを使用して2つの別々のアプリケーションウィンドウにグラフィックを描画するサーバー/クライアントアプリケーションを作成する必要があるプロジェクトに取り組んでいます。画像は、右側のビューから消え始めるまで、サーバーアプリウィンドウの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;
4

1 に答える 1

1

オブジェクトの変換(位置、方向、スケール)を単純に伝播し、サーバー用とクライアント用の2つの異なるビューが必要なように見えます。これらのビューは、単に異なるカメラ位置にすることができます。オブジェクトがサーバー上でワールド内を移動すると、クライアント上でも移動します。オブジェクトとサーバーのカメラの間の特定の距離について、オブジェクトが視錐台の端に接触し始める時期を計算できるはずです...そしてそこから、クライアント上で必要なカメラの位置を推測して「フロー」を得ることができます。 「ある画面から別の画面へ。

于 2012-11-11T20:27:58.653 に答える