Предполагая, что вы перенесли соответствующие части шейдера, загрузили карту куба и связали ее как аргумент шейдера, эквивалентная строка кода языка металлического шейдинга выглядит просто:
float backColor = dot(texCube.sample(cubeSampler, direction).rgb, channel);
где texCube
имеет тип texturecube<float, access::sample>
, а cubeSampler
- это что-то вроде
constexpr sampler cubeSampler(coord::normalized, filter::linear, mip_filter::linear)