与OpenGL中的无表面上下文类似,我们可以在Vulkan中进行。
答案 0 :(得分:4)
当然,它的设计从一开始就是这样做的。
不是从交换链中获取图像,而是自己创建它们并为其分配和绑定内存。
获取结果将需要在渲染后将副本复制到主机可见的回读缓冲区中。
答案 1 :(得分:0)
SaschaWillems / Vulkan plot_acf(germany) plot_pacf(germany)
plot_pacf(spain) plot_pacf(spain)
plot_pacf(italy) plot_pacf(italy)
plot_pacf(us) plot_pacf(us)
示例
Vulkan似乎比OpenGL更好地支持屏幕外渲染。
此NVIDIA概述中提到了这一点:https://developer.nvidia.com/transitioning-opengl-vulkan
这是一个可运行的示例,我刚刚设法在本地运行:https://github.com/SaschaWillems/Vulkan/tree/b9f0ac91d2adccc3055a904d3a8f6553b10ff6cd/examples/renderheadless/renderheadless.cpp
安装驱动程序和ensuring that the GPU is working后,我可以执行以下操作:
renderheadless.cpp
并立即生成图像git clone https://github.com/SaschaWillems/Vulkan
cd Vulkan
b9f0ac91d2adccc3055a904d3a8f6553b10ff6cd
python download_assets.py
mkdir build
cd build
cmake ..
make -j`nproc`
cd bin
./renderheadless
,而无需打开任何窗口:
我还设法在Ubuntu Ctrl + Alt + F3 non-graphical TTY上运行了该程序,这进一步表明它确实不需要屏幕。
其他可能感兴趣的示例:
相关:How to use GLUT/OpenGL to render to a file?
已经在Ubuntu 20.04,NVIDIA驱动程序435.21,NVIDIA Quadro M1200 GPU上进行了测试。