python - 我是否需要使用 OpenGL 在逐像素级别(Python)进行绘制。有没有办法在不使用代码库的情况下做这样的事情?
问题描述
我用 Python 编写了一些代码,允许在 3D 对象空间中定义 3D 对象并将其映射到 2D 屏幕上。目前完成的 2D 多边形是使用 PyGame 库在屏幕上绘制的,该库可以有效地工作,但我想全力以赴,自己编写代码来完成 PyGame 为我所做的绘制操作。这意味着我想手动控制屏幕上每个像素的绘制,使用 GPU 支持来加速整个渲染过程。从一些阅读来看,OpenGL 似乎适合这类事情,但我不确定 OpenGL 的完整目的是什么,以及我是否能以更好的方式实现我想要做的事情。我真的需要使用OpenGL吗?还是有另一种方法可以让我直接访问我的 GPU 以逐个像素级别进行绘制?
解决方案
听起来您正在寻找 OpenGL 的可编程着色器(尤其是片段着色器)。它们在逐个像素的基础上大规模并行运行,从某种意义上说,基本上你编写了一个函数,该函数采用单个像素位置并计算其颜色。请注意,这意味着各个像素无法交换信息,尽管有一些解决方法。
(从技术上讲,当我说“像素”时,我的意思是“片段”,这是一种像素的通用版本。)
推荐阅读
- c - 如何在 C 程序中用两个反斜杠替换一个反斜杠?
- macos - FFMpeg 监控 rtmp 提要
- python - For-loop-nested-in-for-loop 通过 csv.reader() 但外循环只经过一次?
- haskell - 使用列表解决方案进行优化:编译器错误
- rest - Loopback 4 扩展 REST 模型端点
- javascript - Cookies.set 没有在 cookie (js-cookie) 中设置值
- python-3.x - 有没有办法获得numpy数组中非零元素的总和?我不断收到 TypeError
- ios - 什么是通过刷新 id-token 的正确方法。AWSMobileClient 迅速?
- r - R:如何检查未命名列表的所有值是否为 TRUE?
- azure - 当用户未在 Azure AD B2C 中注册时如何禁用验证码电子邮件