Scene
                  
                  
                  {   
                  
                  
                      int num_spheres;
                  
                  
                      int num_materials;
                  
                  
                      Sphere spheres[32];
                  
                  
                      Material materials[32];
                  
                  
                  };
                  
                  
                  Это в шейдере. У меня есть массив spheres который хранит координаты шаров. Но я его прям руками хардкожу размером в 32, и первым параметром говорю склько там реально шаров. Чтобы, когда я отрисовую шары рей трейсом, итерироваться num_spheres раз. А что если я захочу сделать 33 шара? Все сломается. Для этого надо идти в код шейдера и увеличивать размер больше. А вдруг я захочу только 1 шар таскать, зачем мне тогда все эти 32, как есть сейчас. Я так понимаю это будет медленно каждый раз через SSBO передавать так много всего
                  
                  
                
Делай несколько ssbo, каждый на массив
А лучше поместить сферу и материал в одну структуру, увеличив кэш мэтчинг
Разве не зависит от того, сколько материалов?
Обсуждают сегодня