나는 시간이 지남에 따라 대부분 정적 데이터를 축적하는 프로세스를 가지고 있으며, 그 중 많은 데이터 요소가 수백만 개가 있습니다. 데이터의 작은 부분이 때때로 변경 될 수도 있지만 대체로 변경되지는 않습니다.GPU에서 데이터 시각화 최적화?
그러나 모양과 색상 모두에서 데이터를 보는 방법을 자유롭게 변경할 수 있습니다.
데이터를 GPU에 데이터로 저장할 수있는 방법이 있습니까? 그런 다음 해당 데이터를 GPU에서 렌더링 가능한 것으로 변환하는 여러 가지 방법이 있습니다. 사용자는 알고리즘 중에서 선택할 수 있으며 우리는 데이터를 전혀 건드리지 않고 효율적으로 교체 할 수 있습니다. 또한 데이터에 색상 ID가 있지만 사용자는 데이터를 건드리지 않고 각 ID가 일치해야하는 색상을 변경할 수 있습니다.
따라서, 예를 들어, 아마도 다음 데이터있다:
[1000, 602, 1, 1] 는 [1003, 602.5, 2, 2]
주 : 데이터가 NOT 정점 인 오히려 어떤 계산이나 룩업이 꼭지점으로 변환되어야 할 수도 있습니다.
사용자는 시각화 알고리즘 중에서 선택할 수 있습니다. (0, 602, 0)과 (3, 602.5, 100)에 각각 2 개의 큐브를 표시한다고합시다. 사용자는 색상 ID 1 = 파란색 및 2 = 녹색을 선택합니다. 따라서 원점 큐브는 파란색으로 표시되고 원점 큐브는 녹색으로 표시됩니다.
데이터를 전혀 수정하지 않고 사용자가 다른 시각화를 선택하면 이제 구가 (10, 602, 10) 및 (13, 602.5, 20)에 표시되고 사용자가 색상 매핑을 변경했습니다.
그러나 모든 데이터 요소 또는 4의 각 세트에 대한 사각형 사이에 선을 표시 할 수 있습니다 다른 시각화 등
는 간단한 방법으로 수행 할 수 있습니다 위의 설명 뭔가 있습니까? 어떻게 최선을 다하겠습니까?
끝에 추가하면 새 데이터가 추가된다는 점에 유의하십시오. 초당 수천의 버스트 가능성이 있습니다. 기존 데이터의 수정은 더 드뭅니다. 이러한 경우에 대한 성능 저하는 허용됩니다. 사용자가 알고리즘과 색상 매핑을 변경하는 경우는 상대적으로 드뭅니다.
크로스 플랫폼 API (OS 및 GPU를 통해)를 사용하여이 작업을 수행하고 싶습니다. 따라서 OpenGL을 사용한다고 가정합니다.
감사합니다. VBO에 추가하는 것을 최적화 할 수있는 방법이 있습니까? 이후로 나는 그것에 데이터를 아주 빨리 추가 할 수 있습니다. 또한 기하 구조 셰이더에서 한 번에 둘 이상의 점에 액세스 할 수 있으므로 한 점에서는 점 하나당 하나의 모양을 만들 수 있지만 다른 경우 여러 점당 하나의 모양이 만들어 질 수 있습니까? – mentics
'glBindBuffer'는 * target * param (이 VBO가 버텍스 또는 인덱스 데이터를 보유할지 여부를 알려줍니다)를 허용합니다. 'glBufferData'는 * usage * param (데이터가 정적, 동적 또는 스트림인지, 그리고 앱이 읽기, 복사 또는 그리기 여부를 암시 함)을 허용합니다. –
또한 정확한 힌트 조합을 통해 ** 최상의 성능을 프로파일 링을 통해서만 발견 할 수 있습니다. 정말 하드웨어 + OpenGL 드라이버 버전에 달려 있습니다. –