필자는 60 인치 LED TV의 5x2 어레이, 즉 20 메가 픽셀 디스플레이에서 실행되는 실시간 "전체 화면"데모를 작성하는 일을 맡았습니다.
디스플레이 전체에 단일 Win7 데스크톱 스프레드를 전체 해상도로 실행할 수있는 시스템과 꽤 괜찮은 비디오 카드가 있습니다.
내 질문은 : 내 픽셀 쉐이더가 수행 할 어리석은 양의 작업 외에도 DX10. *의 다른 제한 사항이 있습니까? 다음 주까지 하드웨어에 액세스 할 수 없지만 시스템 벤치마킹에 사용할 수있는 내용을 작성하고 싶습니다.
최신 정보
많은 AMD EyeFinity (6 출력) 카드를 사용하여 단일 시스템에서이 작업을 수행 할 수 있었지만 작업을 매끄럽게 유지하기 위해 "가장 쉬운"방법은 창 범위 표시를 갖는 디스플레이 당 DX 창을 만드는 것으로 판명되었습니다 몇 가지 성능 문제가 발생했습니다. 또한 각 그룹이 두 대의 디스플레이를 구동하는 시스템 그룹에 작업을 분배하여 제대로 작동했습니다.
놀라 울 정도로 쉬웠다. 테스트 XNA 앱의 경우 게임 상태 (카메라 위치 / 방향 등)를 캡처하고 프레임 당 로컬 서브넷을 통해 UDP 스팸하는 GameComponent를 추가했습니다.
해당 구성 요소에는 Mode
스위치가 있습니다 (송수신). 이 글은 만약 Receive
모드는 UDP 데이터 그램을 잡아 발신자의 정보와 게임 상태를 업데이트합니다. Send
모드는 상태 패킷을 전송하고 서비스 / 데몬을 통해 노드가 클라이언트 앱을 시작하거나 중지하도록합니다. 모든 클라이언트는 "마스터"역할을 할 수 있으며 클라이언트를 Send
모드 로 전환하면 다른 모든 노드로 전환을 요청합니다 Receive
. 사람들이 통제권을 놓고 싸우고있을 때 어떤 일이 일어나는지 보는 것은 꽤 즐겁습니다.
또 다른 좋은 장점 : 위치, 시간 등 일련의 키 프레임 상태 정의를 처리하고 필요에 따라 보간하고 게임 엔진에서 사용되는 것과 동일한 코드를 사용하여 콘솔 응용 프로그램을 보내는 콘솔 응용 프로그램을 만들었습니다. 이를 통해 쉽게 스크립트를 이동하고 웹 브라우저에서 변환을 제출할 수 있습니다.
대체로 앱의 여러 복사본을 동기화 상태로 유지하려면 약 50 줄의 코드가 필요했습니다. 일부 추가 복잡성은 각 머신의 카메라 위치를 설정 해제하고 원근감 / 투영 성가심을 수정하는 데 있었지만 대부분 노드 당 구성 파일로 변경되었습니다.