opengl - 在立方体贴图中跨摄像机渲染点 Sprite

标签 opengl openframeworks point-clouds particle-system point-sprites

我正在渲染一个顶点粒子系统,然后将其分割为几何着色器中的四边形,并纹理化/渲染为点 Sprite 。然后,它们的大小会根据它们距相机的距离而缩放。我试图将场景的每一帧渲染成立方体贴图。因此,基本上我将六个摄像机放置到场景中,并将它们指向立方体表面的每个方向并保存图像。

我的点 Sprite 大小各异。当它们靠近一台摄像机的边界时,(如果它们足够大)它们同时出现在两台摄像机中。由于点 Sprite 始终面向相机,这意味着当我将立方体贴图包裹回 3D 空间时,它们沿着接缝不是连续的。当这些点非常接近相机时,这一点尤其明显,因为这些点更大,并且进一步延伸到两个相机 View 中。我还进行了一些 Alpha 混合,因此这也可能会导致该问题。

我认为我不能只剔除靠近相机边缘的点,因为当我将所有内容放回 3D 时,我认为会出现一些奇怪的区域,其中云的人口更加稀疏。我的另一个想法是模糊每个相机的边缘,但我认为当我回到 3D 空间时,这也会给我一个奇怪的模糊区域。我觉得我可以在 Photoshop 中手动编辑帧,这样它们看起来就不错,但这会有点痛苦,因为它是 30fps 的动画。

所附图像是立方体贴图的细节。您可以看到 Sprite 未正确排列的水平接缝,以及图像右侧稍微不太明显的垂直接缝。我确信我的相机设置是正确的,因为我在其他场景中使用了相同的相机设置,并且我的立方体贴图看起来很好。

有人有想法吗?

我在 openFrameworks/openGL fwiw 中执行此操作。

Detail from the cubemap

最佳答案

不是面向摄像机,而是让它们面向摄像机的原点?不确定这是否可以解决所有问题,但直觉上我会说它看起来应该接近正常。也许这已经是你所做的,我不知道。

enter image description here

(我希望这是一条评论,但没有声誉)

关于opengl - 在立方体贴图中跨摄像机渲染点 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31642873/

相关文章:

c++ - ld : library not found for -lGL Error

c++ - 将 Fbo 裁剪到 Openframeworks 中的边界框

c++ - ofxFaceTracker(开放框架)示例的问题

ios - OpenGL ES 1.1 - Alpha 蒙版

python - 如何使用 pyntcloud 库将点云转换为网格

python-3.x - 如何从 npy 文件中绘制 3D 点云?

opengl - 使用 texelFetch() 进行纹理化

java - LWJGL:在 opengl 3+ 中返回 Matrix4f 的 gluLookAt?

python - 如何使用vtk在python中绘制鼠标可旋转点云

c++ - OpenGL 累积缓冲区不工作