OpenGL 渲染(仅限实时)
OpenGL rendering (only real-time)?
我知道您通常在Blender或其他3D建模软件中创建复杂的3D模型,并将其导出为.obj。 这个.obj文件被解析到你的程序中,openGL将渲染它。据我所知,这是实时渲染。
现在我想知道是否有类似预渲染对象的东西。我有点困惑,因为有很多关于实时渲染的文章/视频,但我还没有找到任何关于实时渲染的信息。这样的东西存在与否?由于没有实时渲染,我唯一想到的是视频。
我想这几乎是一个是或否的问题:)但如果它存在,也许有人可以指出我一些带有解释的网站。
"实时渲染"意味着帧的生成速度与显示帧的速度一样快。"非实时渲染"或"离线渲染"是指一次生成一个帧,花费尽可能多的时间来实现所需的图像质量,然后将它们组装成电影。视频游戏质量的视频可以实时渲染;不过,像皮克斯电影这样精致的东西必须在离线模式下完成。单个帧仍可能需要数小时的渲染时间!
目前还不完全清楚"预渲染对象"是什么意思,但是有一些称为 VBO 和顶点数组的东西将对象的几何存储在 VRAM 中,这样就不必使用glVertex3f()
或类似的每一帧将其加载到渲染管道中。这称为即时模式。
使用 VBO 和顶点数组代替即时模式,因为它们比调用图形驱动程序为每个顶点将数据加载到 VRAM 中要快得多,因为它们保存在 VRAM 中,这比普通 RAM 更快,准备启动到渲染管道中。
这里的页面也可能有所帮助。
没有什么能阻止您渲染到屏幕外的帧缓冲区(即FBO),然后将其保存到磁盘而不是将其显示在屏幕上。 例如,这就是GPGPU技术在CUDA,OpenCL等出现之前的工作方式。您可以将数据加载为未过滤的浮点纹理,使用 FBO 上的像素着色器执行计算,然后将结果保存回磁盘。
在我上面发布的链接中,它在概述中指出:
此扩展定义了用于绘制到渲染的简单接口 除 GL 提供给 GL 的缓冲区之外的目标 窗口系统。
然后它继续说,
通过允许使用帧缓冲可附加图像作为渲染 目标,此扩展启用一种"屏幕外"渲染形式。
因此,您可以通过在屏幕外渲染一些渲染速度低于 30fps 的场景,然后将这些结果保存为某种电影文件或文件序列格式来获得"非实时"渲染,以便以后播放。
- 从数据库实时显示QT c++中的数据
- OpenGL将纹理四边形渲染为(0,0)
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 按需渲染帧
- 使用专用显卡进行 OpenGL 渲染时帧速率较低
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 有没有办法使用 c++ 实时阅读文本?
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 将相机数据从服务器实时流式传输到客户端
- dx11 渲染到纹理仅显示透明颜色
- 在 opengl 中渲染 obj 文件时出现黑窗口
- Qt 如何渲染 mainwidget
- 将实时(非静态)放在qt(c ++)上
- 线程之间的实时数据共享
- 如何在实时应用程序中锁定线程
- C++ SDL2:如何将矩形渲染到多个视口中
- 分形编程-任何优化此代码以实现实时渲染的方法
- OpenGL 渲染(仅限实时)
- 在Windows中渲染后台桌面的实时预览
- 实时3D模型渲染和实时文本到语音