Intel Stereo 3D SDK Developer s Guide Alpha Release
Contents Why Intel Stereo 3D SDK?... 3 HW and SW requirements... 3 Intel Stereo 3D SDK samples... 3 Developing Intel Stereo 3D SDK Applications... 4 DirectX Development with Intel Stereo 3D SDK... 5 Revision History... 6 Legal Notices... 7
Why Intel Stereo 3D SDK? Stereo 3D is a technique for presenting two offset images separately to each eye of the viewer. The viewer s brain combines the two 2D offset images and perceives 3D depth. To help developers build stereo 3D games, Intel has introduced a new process technology, called Intel Stereo 3D SDK. This SDK implements an API that allows developers to quickly create stereo 3D applications. With it, developers can generate 3D cameras with the input of their existing cameras. It also allows developers to control where to display stereo 3D and where to display normal 3D. What s more, it can help developers identify the position of the monitor in a virtual scene and create well-rendered screen effects. With the convenience of this SDK, deep stereo 3D knowledge is not needed and developers can simply focus on game development. Currently, Intel Stereo 3D SDK works with DDD TriDef* 3D and Intel Media SDK. DDD licenses TriDef 3D, a software tool to enable converting 2D to 3D. It can change 3D games to stereo 3D games or convert 2D video to pseudo 3D video. Different monitor types need different versions of TriDef 3D. TriDef 3D uses a mechanism to hook 3D games and change them to stereo 3D display. However, as a software tool, it doesn t export stereo 3D API to game developers. Developers can t debug or control stereo 3D effects using this tool. What s more, the hook mechanism itself can impact game performance. Also some games may reject hook actions. Intel Media SDK is a development library for coding multimedia applications. The SDK can be used to build transcode applications as well as supporting MVC encoder, video conference, etc. It can help developers build 3D media players, but it is not part of actual game development. HW and SW requirements To use the SDK, you ll need a development platform with a 2nd generation or higher Intel Core processor. Microsoft Windows* 8 and Windows* 7 operating systems are supported. Support for Android* is currently being investigated and may be provided in a future release. Also, developers must also have DirectX* SDK installed before using this SDK. Intel Stereo 3D SDK samples At the top of the article is a zip file containing samples from the Microsoft DirectX SDK. Developers can refer to them in developing a stereo 3D game or change a 3D game into a stereo 3D game. To make the sample run correctly,
developers need to copy related media files from Microsoft DirectX SDK folder to the sample folder manually. Developing Intel Stereo 3D SDK Applications The Intel Stereo 3D SDK is designed to represent stereo 3D operations as easy-to-use, high-level building blocks. For example, renders3d takes the render function as a parameter for stereo 3D rendering. cameras3d takes an original camera matrix as a parameter and returns a related stereo 3D camera matrix. Table 1 describes the four SDK function groups available in the alpha release. API Function Format Description Init S3D bool InitS3D(); Initialize stereo 3D library Enable S3D int SetS3Dformat(S3Dformat value); Sets the stereo 3D format. Currently supports top and bottom and side by side modes. bool EnableS3D(bool flag); Enables and disables stereo 3D display. If the flag is set to true, stereo 3D display is enabled. If the flag is set to false, normal display is enabled. Set Camera Render S3D int D3DXViewMatrixToS3D (D3DXMATRIX *mview); int D3DXProjMatrixToS3D (D3DXMATRIX *mproj); int RenderS3D(LPDIRECT3DDEVICE9 &g_pd3ddevice,void (*draw)(void *params),void *params); Input your original view matrix and get 3D view matrix. Input your original projection matrix and get 3D projection matrix. Sets your 3D render function. g_pd3ddevice is used to pass your DirectX 9 device to it. draw is a function point used to pass the app s
Table 1. API Function Formats and Descriptions stereo 3D rendering function. params is a parameter point for the draw function. DirectX Development with Intel Stereo 3D SDK Both Figure 1 and Figure 2 display examples of pseudo code to show how to work with Intel Stereo 3D SDK. It is very simple. The first thing to do is to initialize by calling the InitS3D function. Second, enable stereo 3D mode by setting the stereo 3D format and enabling stereo 3D display mode. Third, call your render function using RenderS3D. Fourth, call cameras3d functions in your render function. You can use the function generated by the SDK or you can calculate the cameras yourself. After that, stereo 3D game effects will display on the screen. Figure 1: Pseudo code for working with Intel Stereo 3D SDK Figure 2: Pseudo code to integrate Intel Stereo 3D SDK in render function
Figure 3 shows how the function groups work when called in an application. For example, when you call the render function using RenderS3D, the SDK helps by making the call twice to generate a left view and a right view. When you call cameras3d functions in the render function, the SDK identifies whether it is left view rendering or right view rendering and returns the correct matrix. Figure 3: How Intel Stereo 3D SDK function groups work Revision History Date Version # Nature of changes 2014/12/4 1.0 Initial version
Legal Notices INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations, and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license.
Intel, the Intel logo, and Intel Core are trademarks of Intel Corporation in the U.S. and/or other countries. Copyright 2014 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.