在两个不同的位置渲染 OpenGL 场景
Render OpenGL scene at two different locations
我正在编写一个渲染OpenGL场景的应用程序。此应用程序有两个窗口:
- 仅显示渲染场景的大窗口
- 一个"控制窗口",提供多种设置和渲染场景的预览
此应用程序是用 .NET(用于控件窗口部分(编写的,并使用本机C++ DLL 创建呈现窗口并执行实际的 OpenGL 呈现。
这工作正常,但仍然缺少一个重要部分:将渲染场景的实时预览到我的 .NET 控件窗口中。
到目前为止,我能想到两个解决方案:
- 不仅将场景渲染到屏幕,还渲染到内存。然后将那团内存推到我的 .NET WinForm 中。最后将图像绘制到图片框或其他东西。<-这听起来非常慢!
- 让我的本机 OpenGL 渲染器将场景渲染两次,一次渲染到本机全尺寸窗口,一次渲染到我的 .NET 窗体上的控件(面板?
选项 2 听起来更快,但我不知道它是否/如何工作。 这能做到吗?有更好的选择吗?
查看有关帧缓冲的文档。它基本上是渲染的目的地,默认情况下它是您的视口(或后台缓冲区,一旦准备就绪,它就会与显示的缓冲区一起切换(。
第一个选项通常应该更快,因为您渲染场景一次,然后基本上复制纹理。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 在两个不同的位置渲染 OpenGL 场景
- Qt - 如何获取 QGraphicsItem 相对于场景的位置
- 更改QGraphicsItems在场景事件处理程序中的位置
- QT - 拖放 - 在自定义场景上创建自定义图形对象的位置
- 如何知道在单独类中创建的 QGraphicsItem 是否已在场景中移动(更改其位置)?
- 制作包含地图或场景信息的文件,例如要加载的资源、对象、位置、事件
- 固定了QGraphicsItem的位置,而不改变场景中其他QGraphicsItems的行为
- qgraphicem在场景中的位置
- 在3D场景中存储模型位置的好方法是什么?