Could you check if I understood global significance score calculation correctly??
At paper, global significance calcuation is shown below.
In the code, I found this one at calculate_v_imp_score.
From what I understand, this method returns Global Significance score, and line 126 represents expression (4). Therefore, I reckon imp_list must be remaining parts of expression (3) (as i highligted as yellow).
By tracking imp_list, I found imp_list is calculated at compress_diff_rasterization submodule, renderCUDA_count in forward.cu
At line 473, I guess collected_id[j] may represent light-intersecting function 1(G(Xj), ri), con_o.w may represent opacity σj. As function1() returns only 1 and 0, there is no need additional multiplying action. But I couldn't find where Transmittance is multiplied. T is calculated at line 467 though.
Am I missing some other parts or is this code deprecated? I am not even sure if I understood code correctly... I checked all the other cuda codes, but still not sure about it.
yeah,so do what I've found. It seems that the final score function is in lack of T. And I also wonder why the scoring uses raw opacity (con_o.w) instead of the actual contribution weight (αT) that accounts for occlusion/falloff? Since a Gaussian covering many pixels might contribute minimally due to low αT, using opacity alone could overestimate its importance. Furthermore, the non-atomic += operations here when updating gaussians_count and important_score may lead to race conditions and underestimated values when multiple threads process the same Gaussian? Was this design choice made for performance reasons, or should atomicAdd be implemented for correctness?