c++ - 如何优化远程桌面/角度的 OpenGL 纹理?
问题描述
我使用 Qt 在 OpenGL 中显示 2D 纹理。不幸的是,我发现我需要支持通过远程桌面将我的应用程序运行到 Windows 7 PC。在这种情况下,我需要使用 OpenGL ES 2.0 API (ANGLE)。由于带宽低,我的 2D 可视化似乎滞后。
我的纹理可能具有比屏幕更高的分辨率,因此需要对其进行缩小。当不使用远程桌面时,我的方法是指定非常详细的纹理并让显卡进行缩小。
但是现在我认为 OpenGL 调用是在本地软件中执行的,而不是在远程机器上执行的?在哪种情况下必须通过 TCP/IP 传输纹理?
这是否意味着我应该在使用纹理之前自己进行缩小?作为示例,而不是使用 2048x2048 纹理,我可以在 C++ 中合并 2x2 像素并上传 1024x1024 纹理。
或者我可以使用glGenerateMipmap
?
解决方案
我觉得这里有多个术语感到困惑:RDP 只是为您传输整个远程桌面上的任何内容,因此没有“OpenGL 调用在本地软件中执行”。因此,不幸的是,如果您减小应用程序中的纹理大小,即使您完全删除它(尝试一下),它也无济于事。RDP 并不真正适合实时动画。
您的应用程序最好在用户机器上本地运行,因此最好考虑如何将您的 OGL 应用程序分发给用户。如果您无法在用户机器上安装您的应用程序,或者给他们安装工具包,那么将您的应用程序转换为浏览器应用程序可能是一个更好的选择。
WebGL 正是针对这种应用程序,也是一个标准: https ://www.khronos.org/webgl/
推荐阅读
- meteor - 为什么我的 Google OAuth 配置不起作用?
- javascript - 代码适用于 CSS,但不适用于 JS 中定义的样式
- android - 如何解决新项目 colours.xml 错误?
- r - 如何在R中逐行累加总和
- amazon-web-services - 如何从 AWS 胶水中的动态数据框中删除错误记录?
- html - 检查 CSS 标题属性值是否为空
- d3.js - 条形图不在轴内
- window.open - Angular 6在新窗口中打开网址
- nativescript - Nativescript VideoRecorder
- arrays - 遍历 puppet 中的哈希数组