0

我正在使用 SCNMaterial 并使用表面着色器修改器将其设置为diffuse.contents。我想记录一些正在输入着色器的颜色值,但我找不到这样做。执行着色器修改器后,有没有办法可以读取和打印 _surface.diffuse.rgba ?

我们在 SCNPlane 上显示一个带有绿色背景的视频,我们希望它知道该绿色的确切渲染颜色。它被创建为 (0,220,0,1) 但不知何故它被着色器修改器读取为不同的绿色,我们无法将其屏蔽,因为我们可以屏蔽全绿色 (0,255,0,1) bg 视频。

4

1 回答 1

0

Xcode 有一个 GPU 调试器来调查特定帧的 GPU 上发生了什么,请参阅https://developer.apple.com/documentation/metal/shader_authoring/developing_and_debugging_metal_shaders

至于为什么颜色看起来不一样,可能是色彩空间问题。当您向 SceneKit 着色器修改器提供颜色组件时,将它们置于正确的颜色空间中很重要。见https://stackoverflow.com/a/44045637/2997825

于 2021-08-27T13:37:01.660 回答