OpenGL中基于实例的虚拟现实绘制

OpenGL中基于实例的虚拟现实绘制,opengl,virtual-reality,geometry-instancing,Opengl,Virtual Reality,Geometry Instancing,我尝试使用实例在OpenGL中进行VR渲染,使用1个绘图调用,2个实例(一个用于左眼,一个用于右眼)。顶点着色器然后向左平移instanceID 0的顶点,向右平移instanceID 1的顶点。我唯一需要更多的是用于自动硬件剔除/剪裁的每个实例视口。这在directX中是可行的,但在OpenGL中是可行的吗?最近,我实际上在为VR实现实例化立体渲染,并且遇到了同样的问题。我可以选择对实例化视口使用几何体着色器,但我不希望它会带来开销。最后,我改变了每个视图的透视图,并使用了一个剪辑平面 那可能

我尝试使用实例在OpenGL中进行VR渲染,使用1个绘图调用,2个实例(一个用于左眼,一个用于右眼)。顶点着色器然后向左平移instanceID 0的顶点,向右平移instanceID 1的顶点。我唯一需要更多的是用于自动硬件剔除/剪裁的每个实例视口。这在directX中是可行的,但在OpenGL中是可行的吗?

最近,我实际上在为VR实现实例化立体渲染,并且遇到了同样的问题。我可以选择对实例化视口使用几何体着色器,但我不希望它会带来开销。最后,我改变了每个视图的透视图,并使用了一个剪辑平面

那可能就是你要找的,一架剪贴机。在顶点着色器中实现起来也非常简单,只需将“x”坐标传递到gl_ClipDistance。


祝你好运

我不认为你可以拥有每个实例的视口(尽管还有其他方法可以进行每个实例的剪裁)。出于好奇,你的DirectX解决方案是什么?@Jerem:从OpenGL-4开始,你就可以了。几何体着色器阶段允许指定FBO层或/和视口,基本体将发送到该层或/和视口进行光栅化。请参阅任何OpenGL-4规范中的“层和视口选择”部分。我看到了几何阶段,但这可能会对我的性能产生负面影响……好吧,OP场景中的实际性能影响还不清楚。当前,执行此操作时,无法绕过股票GL的几何体着色器。德国劳埃德船级社(GL)的扩展将满足OP的理想需求。但目前它是一个特定于供应商的扩展。也许以后它会被添加到core GL中,但我不会打赌。如果我没有在NVIDIA芯片上运行,那就太完美了:-'