如何使用C#单独控制立体声帧?(NVIDIA 3D快门眼镜)
我试图制作一个非常简单的应用程序,在每只眼睛上显示不同的图像。我有华硕VG236H显示器和NVIDIA 3D视觉套件,立体3D快门眼镜。我使用的是C#、.NETFramework 2.0、DirectX9(ManagedDirectX)和VisualStudio2008。我一直在到处寻找示例和教程,实际上已经找到了一些,并且基于我创建的程序,但由于某些原因,我无法让它工作 当寻找例子如何显示不同的图像为每个眼睛,许多人继续提到英伟达介绍在GDC 09(著名的GDC093DVISION THYNIN和OUT.PDF文件)和第33-40页。我的代码主要基于该示例构建:如何使用C#单独控制立体声帧?(NVIDIA 3D快门眼镜),c#,directx,nvidia,stereo-3d,C#,Directx,Nvidia,Stereo 3d,我试图制作一个非常简单的应用程序,在每只眼睛上显示不同的图像。我有华硕VG236H显示器和NVIDIA 3D视觉套件,立体3D快门眼镜。我使用的是C#、.NETFramework 2.0、DirectX9(ManagedDirectX)和VisualStudio2008。我一直在到处寻找示例和教程,实际上已经找到了一些,并且基于我创建的程序,但由于某些原因,我无法让它工作 当寻找例子如何显示不同的图像为每个眼睛,许多人继续提到英伟达介绍在GDC 09(著名的GDC093DVISION THYNI
我的一个朋友发现了这个问题。立体声签名中的字节顺序相反。以下是正确的顺序:
byte[] data = new byte[] {0x4e, 0x56, 0x33, 0x44, //NVSTEREO_IMAGE_SIGNATURE = 0x4433564e;
0x00, 0x0F, 0x00, 0x00, //Screen width * 2 = 1920*2 = 3840 = 0x00000F00;
0x38, 0x04, 0x00, 0x00, //Screen height = 1080 = 0x00000438;
0x20, 0x00, 0x00, 0x00, //dwBPP = 32 = 0x00000020;
0x02, 0x00, 0x00, 0x00}; //dwFlags = SIH_SCALE_TO_FIT = 0x00000002;
此更改后,代码可以完美地工作。这段代码甚至可以作为尝试相同操作的其他人的良好教程。:)
byte[] data = new byte[] {0x4e, 0x56, 0x33, 0x44, //NVSTEREO_IMAGE_SIGNATURE = 0x4433564e;
0x00, 0x0F, 0x00, 0x00, //Screen width * 2 = 1920*2 = 3840 = 0x00000F00;
0x38, 0x04, 0x00, 0x00, //Screen height = 1080 = 0x00000438;
0x20, 0x00, 0x00, 0x00, //dwBPP = 32 = 0x00000020;
0x02, 0x00, 0x00, 0x00}; //dwFlags = SIH_SCALE_TO_FIT = 0x00000002;