首页 > 解决方案 > 我是否需要使用 OpenGL 在逐像素级别(Python)进行绘制。有没有办法在不使用代码库的情况下做这样的事情?

问题描述

我用 Python 编写了一些代码,允许在 3D 对象空间中定义 3D 对象并将其映射到 2D 屏幕上。目前完成的 2D 多边形是使用 PyGame 库在屏幕上绘制的,该库可以有效地工作,但我想全力以赴,自己编写代码来完成 PyGame 为我所做的绘制操作。这意味着我想手动控制屏幕上每个像素的绘制,使用 GPU 支持来加速整个渲染过程。从一些阅读来看,OpenGL 似乎适合这类事情,但我不确定 OpenGL 的完整目的是什么,以及我是否能以更好的方式实现我想要做的事情。我真的需要使用OpenGL吗?还是有另一种方法可以让我直接访问我的 GPU 以逐个像素级别进行绘制?

标签: pythonopenglgraphics3dpygame

解决方案


听起来您正在寻找 OpenGL 的可编程着色器(尤其是片段着色器)。它们在逐个像素的基础上大规模并行运行,从某种意义上说,基本上你编写了一个函数,该函数采用单个像素位置并计算其颜色。请注意,这意味着各个像素无法交换信息,尽管有一些解决方法。

(从技术上讲,当我说“像素”时,我的意思是“片段”,这是一种像素的通用版本。)


推荐阅读