Отправка информации о вершинах Direct3D через winsock

В настоящее время я работаю над проектом, в котором мне нужно создать серверное / клиентское приложение, которое рисует графику в двух отдельных окнах приложения, используя C ++, DirectX & Winsock. Изображение должно перемещаться по оси x окна приложения сервера, пока оно не начнет исчезать из поля зрения справа. Поскольку это исчезает из поля зрения, клиентское приложение должно затем визуализировать изображение & переведите его на собственный экран, создавая впечатление, что изображение перемещается из окна сервера в окно клиента.

Я не ищу здесь какой-либо законченный код, а скорее показываю, как я мог бы информировать клиентское приложение, чтобы оно снова начало отображать изображение на своем экране, когда изображение завершило свой цикл перевода через окно серверного приложения. Я думаю, что могу сделать что-то, сосредоточенное на отслеживании местоположения g_Rectx в приведенном ниже коде и информировании клиентского приложения через сообщение, отправленное через winsock, чтобы начать рендеринг & trnslating, когда координата х выходит из поля зрения на серверном приложении, но не уверен, как этого добиться.

В настоящее время у меня есть изображение, отображаемое в окне сервера & перевод через окно, используя стандартную технику матричного перевода, все это прекрасно работает. Это как сообщить клиентскому приложению, когда начинать рендеринг на его стороне, и я не уверен, как реализовать.

Любые мысли о том, как я могу это сделать, будут очень благодарны.


выдержка из текущего кода перевода на случай, если это поможет …

            // 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

Решение

Мне кажется, что вы просто хотите распространить трансформацию вашего объекта (положение, ориентация, масштаб) и иметь два разных представления: одно для сервера, другое для клиента. Эти виды могут быть просто разными положениями камеры. Когда объект перемещается в мире на сервере, он также перемещается на клиенте. Для заданного расстояния между вашим объектом и камерой сервера вы должны быть в состоянии вычислить, когда он начнет касаться края усеченного вида … и оттуда вы могли бы определить требуемое положение камеры на клиенте, чтобы иметь «поток» «с одного экрана на другой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]