opengl - OpenGL:如何以 10 位(或 12 位或 16 位)通道深度颜色渲染三角形网格?
问题描述
对于视觉研究实验,我有一台支持 10 位/通道(=30 位颜色)的显示器。我想在使用完整位深度的简单场景中渲染三角形网格,并且我想将此渲染保存为 .png 文件。渲染仅适用于单个静态图像,不需要闪电般快速发生。
对于三角形网格,我有:
- xyz 坐标中的顶点列表
- 包含顶点索引的三角形列表
- 顶点法线列表
- 三角形/面法线列表
我的硬件包括(可能不相关)
- 戴尔 UP3218K 显示器 - 8k 和 10 位/通道
- GeForce RTX 2080 Super(但如果需要可以得到更好的)
我尝试使用 pyrender 库,但它将渲染场景输出为 uint8(将其限制为 8 位)。
我找不到任何 10 位或更高的 OpenGL 或 PyOpenGL 渲染网格的代码示例。随着> 8位显示器的日益普及,这肯定是可能的吗?
我可以使用什么来渲染 10 位/通道深度的网格?
编辑更具体的问题:
我有一个三角形网格(点、顶点、法线)。如何在场景中渲染它(在此步骤中不需要显示)并将此渲染保存为 10 位深度的 .png 文件?稍后,我想在 10 位显示器上显示这个 .png。
解决方案
当您创建帧缓冲区对象 (FBO) 时,您可以决定要渲染到哪种类型的缓冲区。大多数应用程序会使用GL_RGBA8
纹理作为颜色缓冲区,但您不必...
以下是您的图形驱动程序需要支持的所有格式的列表。它还可能支持不在此列表中的其他格式,但在此列表中是一些您可能感兴趣的格式:
GL_RGB10_A2
- R/G/B 各 10 位,A 2 位 - 每像素 32 位GL_RGBA16
- R/G/B/A 各 16 位 - 每像素 64 位GL_RGBA16F
- R/G/B/A 各 16 位 - 每像素 64 位 - 但它们是具有 1 位符号、5 位指数和 10 位尾数的浮点数。
推荐阅读
- c# - EntityFramework 迁移未从列中删除“IsRequired”
- amazon-web-services - AWS EC2 阻止所有 HTTP 端口
- laravel - 如何仅修复路由问题/路由在实时服务器上工作而不是其他?
- pandas - 大熊猫分组并总和显示值
- javascript - 如何在本机反应中转到顶部选项卡导航中的另一个屏幕
- azure-active-directory - MSAL SDK 与 ROPC 身份验证流程结合证书断言 - 是可能的
- python - 使用 Python 将数据推送到在线 GitHub 存储库
- drupal - Drupal 7如何仅发送drupal_email密件抄送而不发送地址
- qt - 捕捉 QML 组件状态/进度变化信号
- java - Spring Integration IMAP:由于 Outlook 365 中的病毒扫描,无法从邮件中读取附件