当前位置:网站首页>引擎开发日志:OpenGL资源多线程加载
引擎开发日志:OpenGL资源多线程加载
2022-08-02 03:29:00 【ChivenZhang】
今天打算开始在CSDN上,记录自己在开发小型软件的过程中,对于设计的一些思考。既算作一种分享,也是文字总结。
我打算编写一个渲染系统,当然开发已经进行了半年,成果多少是有。加载场景,灯光阴影等功能都具备。GUI,脚本等开发也十分顺利的进入尾声。但是就在最近,热切想实现的一个功能却成了阻碍,摆在我面前,如何实现资源异步加载。
目前项目使用OpenGL作为底层渲染接口,由于OpenGL的上下文是线程环境相关的,无法做到在渲染线程之外的线程中执行GPU资源加载。如果把资源加载的工作都放在渲染线程中,必然会出现渲染卡顿的缺点。
为解决上述问题,特做如下修改:
1、根据资源用于CPU或GPU,进行分类;
2、引入多线程的异步资源加载机制;
通过上述方案,系统除了拥有渲染主线程,还拥有异步加载CPU资源的其他线程。如此,多线程异步一定程度解决加载资源导致的卡顿问题,但是仍然无法避免加载GPU资源导致的卡顿。因为OpenGL限定了渲染和GPU资源加载必须在相同线程,所以GPU方面造成的卡顿无法避免,除非使用更加高级的底层渲染API,如Vulkan。
该方案的一个缺点是,异步加载的方式提高了编程的复杂性,例如,有时必须等多个CPU资源异步加载完成时,才会执行GPU资源的加载。那么就需要一个类似屏障的东西,来保证多个异步加载过程结束后,才发起GPU资源加载过程。于是,资源加载机制又发生了一次变动,即支持多线程环境下的多CPU资源加载与同步机制。相比之前的一个个CPU资源多线程加载,再异步呈递,现在的机制变成了多线程加载多个CPU资源,等待所有资源加载完成,才一同异步呈递给调用者。
边栏推荐
- LT9211芯片资料分享
- 【Popular Science Post】Detailed explanation of MDIO interface
- 案例|工业物联网解决方案·智慧钢厂高性能安全数采
- 【MQ-2 可燃气体和烟雾传感器与 Arduino 配合使用】
- BSN:Boundary-Sensitive Network for Temporal Action Proposal Generation论文阅读笔记
- 【科普贴】I2C通讯协议详解——偏软件分析和逻辑分析仪实例分析
- 01背包问题(动态规划)
- 振芯科技GM8285C:功能TTL转LVDS芯片简介
- 功率计,物联网,智能插座电路设计【毕业设计】
- PCB Design Ideas
猜你喜欢

2020 - AAAI - 图像修复 Image Inpainting论文导读 -《Region Normalization for Image Inpainting》

I2C无法访问ATEC508A加密芯片问题

Personal image bed construction based on Alibaba Cloud OSS+PicGo

博达工业云与阿里云对比

【Arduino连接GPS 模块 (NEO-6M)读取定位数据】
![[DS3231 RTC real-time clock module and Arduino interface to build a digital clock]](/img/47/ac46e99a6a6dd44aa4478dd48f06a0.png)
[DS3231 RTC real-time clock module and Arduino interface to build a digital clock]

野火ISO-V2学习

三相同步发电机的空载短路的simulink仿真

火焰传感器与 Arduino 连接

使用Vercel托管自己的网站
随机推荐
【Arduino 连接 SD 卡模块实现数据读写】
Acwing:哈夫曼树(详解)
18张图,直观理解神经网络、流形和拓扑
【树莓派入门(2)树莓派的远程控制】
振芯科技GM8285C:功能TTL转LVDS芯片简介
完全背包问题(动态规划)
倍福ET2000侦听器使用
LT9211芯片资料分享
AD8307对数检波器
PCIE电路设计
【科普贴】UART接口通讯协议
【nRF24L01 connects with Arduino to realize wireless communication】
Arduino lights up nixie tubes
目标检测(一):R-CNN系列
【科普贴】SPI接口详解
Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset I3D论文精读
案例|工业物联网解决方案·智慧钢厂高性能安全数采
【科普贴】I2C通讯协议详解——偏软件分析和逻辑分析仪实例分析
【Popular Science Post】Detailed explanation of MDIO interface
PCB设计思路