OpenGL + 多个摄像头
Posted
技术标签:
【中文标题】OpenGL + 多个摄像头【英文标题】:OpenGL + multiple cameras 【发布时间】:2013-07-17 21:41:26 【问题描述】:让我看看我是否理解。如果我使用多个视口,我可以在我的 OpenGL 应用程序中创建多个“相机”。对吧?
嗯,我有一个可以在视口 1 中看到,但在视口 2 中不可见的对象。如果我希望主体出现在两个视口中,那么...我必须绘制双倍!
这意味着如果我有两个对象,如果我有两个“相机”,我必须将这些对象绘制两次。所以我在我的场景中的所有东西,我都必须绘制双倍。
这样好吗?有没有其他方法可以在不复制对象的情况下拆分屏幕?
【问题讨论】:
我认为你想要的是避免 api 调用重复。如果目标硬件支持,这可以通过视口数组来完成。 opengl.org/sdk/docs/man/xhtml/glViewportArray.xml 谢谢你的回答,朋友。 【参考方案1】:这样好吗?
是的,就是这样。
有没有其他方法可以在不复制对象的情况下拆分屏幕?
您不是在复制对象。你不能,因为 OpenGL 中没有“对象”这样的东西。 OpenGL 只是一种在帧缓冲区上绘制的复杂铅笔。没有场景,没有对象,只有点、线和三角形绘制到帧缓冲区。
您所要做的就是从不同的角度为同一事物画几张图片,就像您想在纸上用铅笔画一样。
【讨论】:
感谢您的回复。我有一个问题,如果我有一个绘制模型的函数,该模型执行各种操作,例如旋转计算等。如果我为每个视口调用此函数,我不会将同一模型的操作数量加倍吗? 是的,你正在这样做,但 datenwolf 给你的比喻很清楚:它就像用铅笔在纸上画画一样。你到底要2张纸吗?你必须画两次,2个视点(2个摄像头),2次计算成本。也许你可以用面向对象编程来保存一些参数和一些微积分,但这取决于你的程序,而不是opengl以上是关于OpenGL + 多个摄像头的主要内容,如果未能解决你的问题,请参考以下文章