【问题标题】:How to fix screen tearing in cocos3d?如何修复 cocos3d 中的屏幕撕裂?
【发布时间】:2014-04-01 20:31:29
【问题描述】:

当我将相机靠近场景中的某些对象时,图像会像下面所示那样撕裂。

我正在使用 OpenglES 2.0

This 是显示问题的视频。

this 是重现问题的测试项目,它只是带有 Temple.pod 文件的 cocos3d 模板。

似乎只有在视野为 85º 或更宽时才会发生。

【问题讨论】:

  • 只有在相机移动时才会出现这种情况吗?
  • @MattFichman 无论是静态相机还是动态相机,都会发生这种情况。
  • @rraallw 这很奇怪。我认为这可能是屏幕撕裂(通过启用 vsync 修复)但显然不是。我对 cocos3d 不太熟悉——它多久交换一次屏幕缓冲区?渲染循环是否连续运行/刷新?
  • @MattFichman 渲染循环是一个带有 NSDefaultRunLoopMode 的 CADisplayLink,每次渲染循环都会交换一次屏幕缓冲区,我还添加了一个指向显示问题的视频的链接。
  • 你是如何创建你的透视变换的?

标签: screen opengl-es-2.0 cocos3d tearing


【解决方案1】:

根据我通过运行您的演示可以看出,“撕裂”似乎正在发生,因为您的相机的近剪裁平面破坏了您的模型。本质上,这是相机进入您的模型的结果。

CC3Camera nearClippingDistance 属性控制到相机近剪裁平面的距离。默认值为1.0。如果您的场景的坐标比例非常小,那么您应该将相机的近剪裁距离和远剪裁距离调整为更适合您的场景的值。

【讨论】:

  • 谢谢,这是最近的剪辑距离,对于墙壁来说太大了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 2012-10-27
  • 2012-09-09
相关资源
最近更新 更多