죄송합니다, 귀하의 질문 스레드에 의견을 추가하려고했지만 너무 정교 해졌습니다. 내 개발 경험은 DX 11 관점에서 봤으므로 OpenGL에서 일부는 유지되지 않을 수 있습니다.
데이터의 메모리 위치는 확실히 중요한 역할을합니다. 그러나 아시다시피 데이터 너비와 관련하여 몇 가지 다른 항목이 있습니다. 나는 몇 개의 GPU를 가지고 있으며 특정 티핑 포인트를 기반으로 일부 성능에서 현저한 성능을 발휘했습니다. 예를 들어, 이전의 AMD r290에서 내가 기억한다면, 기본적으로 1 이상의 추가 비용없이 정점 버퍼에 최대 4 개의 float4를 전달할 수 있지만,> 4를 게시하면 측정 가능한 하락이 발생합니다 (프레임) 율). 이것은 순전히 나의 추억을 벗어난 것이므로 일화가 최고입니다. 그러나 GPU 아키텍처는 항상 변화하고 있으며 오늘날 성능을 향상시키는 틈새 기술은 내일의 성능 저하를 초래할 수 있습니다. 나는'
말했듯이 정점 순서에 대한 질문을 받았으며 분명히 도움이 될 것입니다. 이를 인덱스 버퍼와 결합하면 하드웨어가 이미 계산 된 정점을 최적화하고 캐시 할 수 있습니다. 당신은 확실히 당신의 생각에 따라 주문 된 삼각형 스트립 등에서 더 많은 이익을 얻을 수 있습니다. 내가하는 대부분의 모델 렌더링은 인스턴스화가있는 indice / vertex 기반 최적화 모델이며 순환 모션 효과 (예 : 나뭇 가지)에 대해 소량의 조회를 사용합니다.이 경우 트리의 전체 분기가 동일한 값을 찾습니다. 캐싱도 여기서 활용할 수 있습니다.
내가 요약해서 말할 수있는 것은 :
- 게임 / 애플리케이션을 아직 개발하고있는 동안 초기에 최적화를 지나치게 생각하지 말고 조기에 최적화하지 마십시오. 돌아와서 새로운 기능을 추가해야하는 경우 모든 노력을 잃을 수 있습니다. 당신은 내 습관일지도 모릅니다.
- GPU 아키텍처는 다양하며 하나의 장점은 다른 부분의 약점을 반영 할 수 있습니다. AMD와 Nvidia는 개발자가 게임을 아키텍처에 맞게 최적화하도록하는 것으로 유명합니다. 그 이유는 각각 장점과 단점이 있습니다. 중간 단계의 개발이 가장 좋은 방법 일 수 있습니다. 하드웨어 공급 업체 기반 기능을 사용하지 마십시오 (여기서 의견). (또한 일부 압축 형식은 AMD에만 존재합니다).
이것들은 내가 가진 몇 가지 생각과 경험입니다. 이 주제에 대해 많은 책을 가지고 있습니다. 나는 당신이 제안하는 것을 많은 사람들이 처방하는 것을 보지 못했지만 그것이 잘못되었음을 의미하지는 않습니다. 행운을 빕니다.