将float3 []从GLSL转换为Metal

时间:2016-09-14 05:11:47

标签: c++ glsl metal

如何转换:

const float3 GDFVectors[19] = float3[](
                                   normalize(float3(1, 0, 0)),
                                   normalize(float3(0, 1, 0)),
                                   normalize(float3(0, 0, 1)),

                                   normalize(float3(1, 1, 1 )),
                                   normalize(float3(-1, 1, 1)),
                                   normalize(float3(1, -1, 1)),
                                   normalize(float3(1, 1, -1)),

                                   normalize(float3(0, 1, PHI+1)),
                                   normalize(float3(0, -1, PHI+1)),
                                   normalize(float3(PHI+1, 0, 1)),
                                   normalize(float3(-PHI-1, 0, 1)),
                                   normalize(float3(1, PHI+1, 0)),
                                   normalize(float3(-1, PHI+1, 0)),

                                   normalize(float3(0, PHI, 1)),
                                   normalize(float3(0, -PHI, 1)),
                                   normalize(float3(1, 0, PHI)),
                                   normalize(float3(-1, 0, PHI)),
                                   normalize(float3(PHI, 1, 0)),
                                   normalize(float3(-PHI, 1, 0))
                                   );

进入Metal(或C ++)?使用上面的代码我遇到了一些错误:

  

全局变量必须具有常量地址空间限定符。

1 个答案:

答案 0 :(得分:0)

在Metal中,您需要将数组限定为COUNT(CASE WHEN ads.date > '.strtotime('-2 weeks').' THEN 1 END) AS ads_active_count地址空间,并将其限定为constant。我把它写成:

const