NVIDIA
The set of samples demonstrates how to interact with an external graphics API via Unigine API (ResourceExternalMemory and ResourceFence). Although the samples show interaction with CUDA, you may use them as the basis for integrating the Engine GAPI (Vulkan, DX11, DX12) with other GAPI (OpenGL, DX, CUDA, etc.) that can accept the handle and import a synchronization primitive (such as external semaphore in CUDA).这组示例演示了如何通过 Unigine API(ResourceExternalMemory 和 ResourceFence)与外部图形 API 交互。虽然示例展示了与 CUDA 的交互,但您可以将其用作集成 Engine GAPI(Vulkan、DX11、DX12)与其他可以接受句柄并导入同步原语(例如 CUDA 中的外部信号量)的 GAPI(OpenGL、DX、CUDA 等)的基础。
This approach may help in configuring interaction of various API using different GAPI, such as interaction of MediaFoundation using DX11 with the Engine using DX12 or Vulkan.这种方法可能有助于使用不同的 GAPI 配置各种 API 的交互,例如使用 DX11 的 MediaFoundation 与使用 DX12 或 Vulkan 的 Engine 的交互。
The samples also illustrate how to take the data directly from the video memory without CPU roundtrip and processing it using non-engine graphics API.这些示例还说明了如何直接从视频内存中获取数据(无需 CPU 往返)并使用非引擎图形 API 对其进行处理
CUDAMeshDynamicCUDAMeshDynamic#
Vertices of a shared dynamic mesh are processed on GPU using CUDA.
To build the sample, use CUDA Toolkit v12.3.
On Linux: after installing the CUDA Toolkit, make sure that the PATH environment variable includes /usr/local/cuda-12.2/bin.
SDK Path: <SDK_INSTALLATION>source\samples\3rdparty\CUDAMeshDynamic
CUDAStructuredBufferWriteCUDAStructuredBufferWrite#
Particles in a shared structured buffer are updated on GPU using CUDA, and rasterized manually using Unigine Material with Compute Shader.
To build the sample, use CUDA Toolkit v12.3.
On Linux: after installing the CUDA Toolkit, make sure that the PATH environment variable includes /usr/local/cuda-12.2/bin.
SDK Path: <SDK_INSTALLATION>source\samples\3rdparty\StructuredBufferWrite
CUDATextureTransferCUDATextureTransfer#
A shared texture is processed with CUDA and copied from video memory to RAM into Unigine Image.
To build the sample, use CUDA Toolkit v12.3.
On Linux: after installing the CUDA Toolkit, make sure that the PATH environment variable includes /usr/local/cuda-12.2/bin.
SDK Path: <SDK_INSTALLATION>source\samples\3rdparty\CUDATextureTransfer
CUDATextureWriteCUDATextureWrite#
A shared texture is processed with CUDA and displayed on the Unigine Object as a texture on a cube.
To build the sample, use CUDA Toolkit v12.3.
On Linux: after installing the CUDA Toolkit, make sure that the PATH environment variable includes /usr/local/cuda-12.2/bin.
SDK Path: <SDK_INSTALLATION>source\samples\3rdparty\CUDATextureWrite