【发布时间】:2020-06-23 10:35:48
【问题描述】:
这就是问题所在。左边是我在 scnView 中看到的。右边是我从 SCNRenderer 的snapshot 那里得到的那个场景。我在 Catalina。
我有一个场景和一种在 UI 中制作该场景快照的方法。这是我的做法
snapshotRenderer.scene = scnView.scene
snapshotRenderer.snapshot(atTime: mySceneTime, with: mySize, antialiasingMode: SCNAntialiasingMode.multisampling4X)
我尝试了什么
我的理论是snapshot 方法在整个渲染周期结束之前抓取渲染的内容,并且所有抗锯齿样本都已完成(如果有的话)。该理论基于这样一个事实,即我确实在我的scnView 中看到了相同的粗糙边缘一秒钟,直到应用抗锯齿。
所以,没有运气,我尝试用
触发循环snapshotRenderer.scene!.isPaused = false
snapshotRenderer.isPlaying = false
和
self.snapshotRenderer.update(atTime: mySceneTime)
还有SCNTransaction.begin() 和.commit()。但没有任何效果。
在上述尝试之后,我还尝试使用DispatchQueue.main.asyncAfter 等待 3 秒,然后调用快照。那也没有用。
【问题讨论】:
-
视图是否将
isJitteringEnabled设置为true?屏幕截图似乎启用了抗锯齿功能,但也许这只是因为图像在上传时被缩小了。 -
看起来就是这样!谢谢。如果您创建它,我会批准它作为答案