场景套件着色器修改器未修改几何体的位置



我正在尝试应用一个简单的着色器修改器来移动立方体的位置。立方体的常规漫反射颜色是浅蓝色,但使用此修改器确实会变成红色,所以我知道着色器修改器正在工作(有些(。但是,立方体仍位于屏幕中心的位置(0,0,0(,因此着色器修改器不会修改该位置。有什么想法吗?

这是代码

let modifier = """
_surface.diffuse = float4(1,0,0,1);
_surface.position = float3(10.0,0.0,0.0);
"""

cube.geometry?.shaderModifiers = [SCNShaderModifierEntryPoint.surface : modifier]

品红色色调是SceneKit指示着色器编译失败的方法。

_surface.position = float3(10.0,0.0,0.0);

查看SCNShadable.h,我们发现SCNShaderSurfacepositionfloat4,而不是float3

最新更新