簡體   English   中英

在兩個不同的位置渲染OpenGL場景

[英]Render OpenGL scene at two different locations

我正在編寫一個渲染OpenGL場景的應用程序。 該應用程序有兩個窗口:

  1. 一個只顯示渲染場景的大窗口
  2. 提供多個設置和渲染場景預覽的“控制窗口”

此應用程序用.NET編寫(用於控制窗口部分),並使用本機C ++ DLL創建渲染窗口並進行實際的OpenGL渲染。

這可以正常工作,但是仍然缺少一個重要的部分:將渲染場景的實時預覽放入我的.NET控制窗口中。

到目前為止,我可以想到兩種解決方案:

  1. 不僅將場景渲染到屏幕,還渲染到內存。 然后將那一堆內存推到我的.NET WinForm中。 最后將圖像繪制到PictureBox或其他東西上。 <-這聽起來太慢了!
  2. 使我的本機OpenGL渲染器兩次渲染場景,一次渲染到本機全尺寸窗口,一次渲染到.NET窗體上的控件(面板?)。

選項2聽起來更快,但我不知道它是否/如何工作。 能做到嗎? 有更好的選擇嗎?

查看有關framebuffers的文檔。 它基本上是渲染的目標,默認情況下是您的視口(或backbuffer ,一旦准備好,它將與顯示的緩沖區一起切換)。

通常,第一個選項應該更快,因為您一次渲染場景,然后基本上只復制紋理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM