我想写一个渲染器,但我真的必须使用 OpenGL 管道吗,我不能自己做吗?有没有一种方法可以为 GPU 和 CPU 编写所有代码,从内存管理到光栅化,还是我必须使用已经提供的管道?如果我不能在 OpenGL 中做到这一点,我可以在哪里?我能得到一些指示吗? 我用什么语言编写 GPU 代码以及如何在 GPU 上使用它?
最佳答案
目前标准的消费级 GPU 不是 CPU。您不“编程”图形管道。图形管道之所以如此,是因为这就是 GPU 设计的工作方式。显然,不同的特定 GPU 会有不同的实现,但渲染管线的基本元素都是硬件的基础部分。流水线的可编程部分只能在 GPU 允许的范围内以及该阶段的预期目的(具有一定的灵 active )内进行编程。
future 的GPU可能会更加灵活,甚至还有一些alternative pipelines for vertex processing在某些现代 GPU 中。但我们还没有到你可以随意编造东西的地步。 GPU 专为提高效率而设计;它们的局限性在于帮助事情保持在有效的路径上。
内存管理是一个完全独立的问题。与 OpenGL 等直接 API 相比,Vulkan 和类似的命令缓冲区 API 允许更多低级内存管理功能。但是,应该很好地理解,命令缓冲区 API 不不适合业余程序员。这些 API 一点都不友好;它们要求您敏锐地意识到即时 API 向您隐藏的许多细节,并且当您违反它们的规则时它们不会告诉您。
关于c++ - 你能制作自己的渲染管线吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259299/