답변:
이는 게임과 청크에 사용되는 인덱싱 구조에 따라 다릅니다. 그렇게 높은 수준에서는 메모리 나 특정 성능 향상과 관련이 없을 것입니다. 아마도 청크 크기를 예측 가능한 방식으로 결정하는 것은 임의의 결정입니다. 비트 시프트를 사용하여 2의 거듭 제곱이 아닌 숫자로는 불가능한 계산 및 색인 트릭을 허용합니다.
예를 들어, 2의 거듭 제곱으로 계산하는 것은 이진수로 비트를 이동하는 것만 큼 쉽습니다.
Dec = Bin
1 = 000001
2 = 000010
4 = 000100
8 = 001000
16 = 010000
32 = 100000
이러한 단축키가 사용되는 위치는 개발자와 그들이 해결하려는 문제에 따라 다릅니다.
청크를 만들 크기를 결정하고 다른 측면에서 중요하지 않은 경우 익숙하고 사용하는 이점이있는 것을 사용할 수도 있습니다.
첫째, 2의 거듭 제곱은 임의의 숫자를 곱하는 것보다 훨씬 저렴합니다. 비트 이동으로 수행 할 수 있기 때문입니다 합니다. 입니다. 대부분의 경우 컴파일러에서이 작업을 수행 할 수 있으므로 코드에 "* 16"을 쓸 때마다 컴파일러는 실제로 4 씩 시프트를 수행하므로 걱정할 필요가 없습니다. 이런 식으로 데이터 구조를 설계하여 기회를 컴파일하십시오.
둘째, 컴퓨터의 캐시 라인, 메모리 버스 및 기타 정보 고속도로는 2의 거듭 제곱을 사용하도록 설계되는 경향이 있으므로 이러한 방식으로 전체적으로 더 나은 성능을 얻을 수 있습니다.
셋째, 우리의 오래된 괴짜들은 2의 거듭 제곱으로 놀기에 익숙하기 때문에 습관입니다.
넷째, 하드웨어와 컴파일러를 설계하는 다른 오래된 괴짜들도 2의 거듭 제곱을 좋아하므로 조만간 변경되지 않을 것입니다.
이진 컴퓨터에서 2의 거듭 제곱은 좋은 둥근 숫자입니다.
평범한 사람이 어떤 목적으로 임의의 숫자를 선택해야 할 때, 그들은 일반적으로 자신이 편한 숫자 체계에서 기초 10을 선택합니다. 따라서 그들은 10, 100, 1000 등을 선택합니다. 간단하고 쉬우 며 많은 생각이 필요하지 않으며 정확한 가치는 그들에게 실제로 중요하지 않았으며, 그들은 단지 일반적인 규모의 규모를 목표로했습니다.
프로그래머로서, 어떤 목적으로 임의의 숫자를 선택해야 할 때, 우리는 일반적으로 숫자 2가 컴퓨터 컴퓨터에서 사용하는 숫자 2를 선택합니다. 따라서 2, 4, 8 등을 선택합니다. 쉽고 많은 생각을 요구하지 않고 정확한 가치는 우리에게 실제로 중요하지 않았으며, 우리는 단지 일반적인 규모를 목표로했습니다.
그보다 더 복잡하지는 않습니다. 그들은 단지 좋은 둥근 숫자입니다.
또 다른 잠재적 이유는 각 청크에 대한 정보를 3D 텍스처로 인코딩 할 수 있기 때문입니다. 대상 하드웨어가 3D 텍스처를 지원했지만 완전히 강력하고 일반적인 2의 제곱이 아닌 텍스처를 지원하지 않은 경우 (저는 상당히 낮게 촬영하고 싶다고 인정) 청크 크기를 2로 설정하는 것은 아닙니다. 이상적입니다-필수입니다.
2^n
)