Ios SceneKit着色器修改器未修改几何体';s位置
我试图应用一个简单的着色器修改器来移动立方体的位置。立方体的常规漫反射颜色为浅蓝色,但使用此修改器时,它确实会变为红色,因此我知道着色器修改器正在工作(有些)。但是,立方体仍位于屏幕中心的位置(0,0,0),因此着色器修改器不会修改该位置。有什么想法吗 这是密码Ios SceneKit着色器修改器未修改几何体';s位置,ios,swift,shader,scenekit,Ios,Swift,Shader,Scenekit,我试图应用一个简单的着色器修改器来移动立方体的位置。立方体的常规漫反射颜色为浅蓝色,但使用此修改器时,它确实会变为红色,因此我知道着色器修改器正在工作(有些)。但是,立方体仍位于屏幕中心的位置(0,0,0),因此着色器修改器不会修改该位置。有什么想法吗 这是密码 let modifier = """ _surface.diffuse = float4(1,0,0,1); _surface.position
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表示着色器编译失败的方式
\u surface.position=float3(10.0,0.0,0.0)代码>
查看SCNShadable.h,我们看到SCNShaderSurface
的位置是float4
,而不是float3
,我想你弄错了,它确实是粘贴在代码段中的一个float3(我也刚刚检查了自己),它是你代码中的float3
,但SceneKit希望是float4
,参见SCNShadable.h这是我在SCNShadable.h
-float3位置中的\u曲面
结构中看到的;//片段的位置