и потом по очереди считать свет для каждого типа это нормально или хреново?
                  
                  
                  
                  
                  
                  Например
                  
                  
                  Uniform PointLights
                  
                  
                  Uniform DirectionalLights
                  
                  
                  Uniform SpotLights
                  
                  
                  
                  
                  
                  For light in PointLights
                  
                  
                      Lightning += calcLight(light)
                  
                  
                  For light in DirectionalLights
                  
                  
                      Lightning += calcLight(light)
                  
                  
                  For light in SpotLights
                  
                  
                      Lightning += calcLight(light)
                  
                  
                
Базовое решение, но пару минусов: 1. Обычно мы пытаемся для ряда пикселкй (внутри тайла/вокселя) предрассчитать какие источники света на них могут повлиять. Таким образом уходит нужда проходиться по всем источникам света для каждого пикселя. 2. Даже если у тебя не будет ни одного spotlight в сцене, у тебя все равно будут выделены регистры и прочее для расчётов по этой ветке...
Зависит. Если ты просто на весь экран передаешь, то не оптимально
 adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  У меня на стороне проца определяется какие будут рендериться, а какие нет. Типо все которые на скринспейсе будут
Обычно просто в скринпрейсе недостаточно. Можешь поделить экран на сетку, и в каждом блоке ссылаться на индексы источников, имеющий наибольшее влияние в этом блоке
Если у тебя деферред* Если форвард, можно попробовать делить на блоки в 3д с учётом удаления от камеры
 adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Да, deferred + pbr + ibl
в каких ситуациях может оказаться больше одного directional light?
 adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          adamfull
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Он один, не правильно просто пример написал
у тебя какой-то ебанутый мир с двумя солнцами
Обсуждают сегодня