The unified shader branched features via keywords, but in practice only 1~2 options were ever used — keyword combinations exploded and unnecessary variants were included
키워드로 기능 분기
Feature branching by keywords in the unified shader → keyword combinations grew → shader variants grew
(Only 1~2 options are actually used, but keyword on/off was not managed → unnecessary features included → performance loss)
Split per feature into separate shaders → fewer keyword combinations → fewer shader variants