DirectX multithreaded server sample
The DirectX multithreaded sample is a server sample built in DirectX that supports mono and stereo rendering of a complex 3D scene with 3D models, multiple threads and lighting effects.
Native Plugin
DirectX multithreaded sample consumes a native plugin that is produced by the 3D Streaming Toolkit build pipeline. As such it’s critical to first build 3D Streaming Toolkit solution before attempting to use the sample (see Building below).
The native plugin is responsible for negotiating with clients to configure a stream, and for encoding and sending visual frame data from DirectX to a connected client. All of our code is designed to abstract and facilitate communication with this native module.
Building
- Follow all steps in How to build the toolkit
- Open the 3DStreamingToolkit solution in Visual Studio
- Build the project
MultithreadedServer
in the desired configuration (Build -> Configuration Manager -> Dropdowns at the top). We encourage usingRelease
andx64
.
Configuration
3DSTK’s sample server applications make use of an external JSON configuration file (webrtcConfig.json) to manage the connections to the Signaling and TURN services. Below is an example webrtcConfig.json
file. This file contains placeholders for server addresses from your server setup in step 1 and 2 of Getting Started. This file is found in the executable directory.
{
"iceConfiguration": "relay",
"turnServer": {
"uri": "turn:<url>:5349",
"username": "<username>",
"password": "<password>"
},
"server": "<url>",
"port": 80
"heartbeat": 5000
}
How it works
Once the config settings are changed, the server will require a client to connect to. In this toolkit, we have a few Sample Clients.
When both the client and server are connected to the same signaling server, they will appear in the peer list.
You can initiate the connection using the client or server, simply select the peer from the list and press join. That will start the video streaming and you can use the controls for that specific client to interact with the scene.