C++ 我们也非常欣赏您修复此限制的方法! concurrency::extent<2> ePositions(positionsVector.size() / 3, 3); concurrency::array_view<const float
我们也非常欣赏您修复此限制的方法!C++ 我们也非常欣赏您修复此限制的方法! concurrency::extent<2> ePositions(positionsVector.size() / 3, 3); concurrency::array_view<const float,c++,arrays,parallel-processing,gpgpu,c++-amp,C++,Arrays,Parallel Processing,Gpgpu,C++ Amp,我们也非常欣赏您修复此限制的方法! concurrency::extent<2> ePositions(positionsVector.size() / 3, 3); concurrency::array_view<const float, 2> positions(ePositions, positionsVector); concurrency::extent<2> eUVs(uvsVector.size() / 2, 2); concurrency::a
concurrency::extent<2> ePositions(positionsVector.size() / 3, 3);
concurrency::array_view<const float, 2> positions(ePositions, positionsVector);
concurrency::extent<2> eUVs(uvsVector.size() / 2, 2);
concurrency::array_view<const float, 2> UVs(eUVs, uvsVector);
concurrency::extent<2> eNormalDirections(normalDirectionsVector.size() / 3, 3);
concurrency::array_view<float, 2> normalDirections(eNormalDirections, normalDirectionsVector);
normalDirections.discard_data();
concurrency::extent<2> eTangentDirections(tangentDirectionsVector.size() / 3, 3);
concurrency::array_view<float, 2> tangentDirections(eTangentDirections, tangentDirectionsVector);
tangentDirections.discard_data();
concurrency::extent<2> eBitangentDirections(bitangentDirectionsVector.size() / 3, 3);
concurrency::array_view<float, 2> bitangentDirections(eBitangentDirections, bitangentDirectionsVector);
bitangentDirections.discard_data();
concurrency::parallel_for_each(eNormalDirections.tile<1, 3>(), [=](concurrency::tiled_index<1, 3> t_idx) restrict(amp)
{
< ... calculate the normals, tangents and bitangents and write them back ... >
}
normalDirections.synchronize();
tangentDirections.synchronize();
bitangentDirections.synchronize();