struct{
Vector3* centers;
float* radii;
float* colors;
unsigned int size;
}Spheres;
против
struct Sphere{
Vector3 center;
float radius;
float color;
};
struct{
struct Sphere* spheres;
unsigned int size;
}Spheres;
пример использования
void spheres_process(){
int i;
for(i = 0; i < Spheres.size; ++i){
// do something with this sphere
}
}
Я думаю, что второй случай имеет лучшую пространственную локальность, поскольку все данные чередуются и должны быть загружены вкеш одновременно.В обоих случаях я буду обрабатывать все сферы одновременно.Любой вход?