Поскольку вы упомянули конвейер рендеринга, поэтому я предполагаю, что вы используете Direct3d, если это так, вы можете сохранить буфер буфера кадра. Я сделал это, когда все еще использовал VB.Net + MDX
Dim tempSurface As Direct3D.Surface
tempSurface = device.GetBackBuffer(0, 0, Direct3D.BackBufferType.Mono)
Direct3D.SurfaceLoader.Save(tempFilename, Direct3D.ImageFileFormat.Png, tempSurface)
Вы можете легко преобразовать любой язык программирования, который вы выберете, это, в основном, вызов API Direct3d. Тем не менее, вам нужно настроить параметры backbuffer и Present как
' Need to use flip to enable screen capture
presentParams.SwapEffect = Direct3D.SwapEffect.Flip
presentParams.PresentationInterval = Direct3D.PresentInterval.One