news 2026/4/23 13:25:54

cpu环境下opengl共享数据踩坑与解决

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cpu环境下opengl共享数据踩坑与解决

文章目录

  • 前言
  • 正文
    • 立即模式
    • 显示列表
    • VBO
    • 顶点数组
    • 总结

前言

opengl在cpu端进行深度图渲染,尝试想保证并发性能,并减少进程内存占用,中间踩了一些坑

主要是这块文档太少,还好有大模型帮忙解决,在此记录一下

正文

首先要明确,opengl属于server-client 模型,client发送请求,server处理,返回渲染结果

https://www.cnblogs.com/kingloongwl/p/5203338.html

opengl有四种绘制方式,下面会分开讨论

立即模式

效率比较低,因为要一个一个顶点处理,每个顶点一次函数调用 + 参数校验,OSMesa 内部要做很多状态检查,而且每个顶点数据都要从client端传输到server端。

如果是每次渲染都要动态调整顶点位置和旋转,在纯cpu上用它还可以

好处是没有并发问题,内存占用也很低,因为没有预先缓存数据

显示列表

会在server端缓存display list,主要是避免client端向server端传数据

如果是gpu场景很有用,因为client在cpu,server在gpu,中间需要通过pcie传数据,顶点数据提前存进server端就剩下数据传输时间。但这块只适用于静态场景,动态场景每次变换顶点信息就不行。

如果是cpu场景就一般,主要优势是提前把数据缓存了。同样只适用于静态场景。

由于opengl并发时每个线程要有自己的context和buffer,有人会觉得display list是只读的是不是可以共享?不行

虽然创建context时可以指定master context,使得所有子context的display list都指向同一份master context的displa

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:24:18

Ajax、XMLHttpRequest(XHR) 、Promise、Fetch、Axios 的区别

在现代Web开发中, Ajax、XMLHttpRequest(XHR)、Promise 、Fetch 和 Axios ,这几个词虽然都跟“前端发送网络请求”相关,但它们的层次和定位截然不同。 1. 一句话概览关系 Ajax 是一种 技术概念/模式,不是具…

作者头像 李华
网站建设 2026/4/23 13:12:50

番茄小说下载器完整指南:永久保存心爱小说的终极解决方案

番茄小说下载器完整指南:永久保存心爱小说的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 还在为番茄小说中的精彩内容担心下架而烦恼吗?fanqienovel…

作者头像 李华
网站建设 2026/4/23 13:12:43

告别Arduino IDE:在ESP-IDF下用ESP32+CNC Shield驱动步进电机的完整配置流程

从Arduino到ESP-IDF:ESP32驱动CNC Shield与A4988的深度迁移指南 当你的步进电机项目需要更精确的控制、更高效的性能或更复杂的多轴协同,Arduino IDE可能开始显得力不从心。这正是许多开发者转向ESP-IDF的转折点——乐鑫官方为ESP32打造的物联网开发框架…

作者头像 李华
网站建设 2026/4/23 13:12:38

pyNastran终极指南:从BDF/OP2到VTK的高效转换与可视化

pyNastran终极指南:从BDF/OP2到VTK的高效转换与可视化 【免费下载链接】pyNastran A Python-based interface tool for Nastrans file formats 项目地址: https://gitcode.com/gh_mirrors/py/pyNastran pyNastran作为处理NASTRAN文件的Python工具包&#xff…

作者头像 李华