transform feedback을 사용하여 피킹 루틴을 구현하려고합니다. 현재는 정상적으로 작동하지만 문제는 매우 느립니다 (GL_SELECT
보다 느림). 지금 작동 방법느린 변환 피드백 기반 피킹?
: (처음에 0) 오프셋 glBindBufferRange()
와를 사용하여
- 바인드 TBO.
glBufferSubData()
을 사용하여 메모리 재설정 (TF 가변 구조의 크기) (정확한 수확을 위해). 주요 문제는 여기에 있습니다.- 피킹 선과 교차를 검사하는 지오메트리 셰이더가있는 개체를 그립니다. 교차점이 발견되면 쉐이더는이를 TF 변화에 씁니다 (처음에는 교차가 없으므로 2 단계 참조).
- 오프셋을 늘리고 다음 개체로 1 단계로 이동하십시오.
그래서 마지막으로 각 개체에 대한 데이터를 선택하는 배열이 있습니다.
질문은 각 반복마다 glBufferSubData()
번으로 전화하는 것을 피하는 방법입니까? 가능한 솔루션 (그러나 구현 방법을 모르겠습니다)은 다음과 같습니다.
- 하나만 변경하면 TF가 변경됩니다. 그래서 다른 방법
어떤 아이디어를 다른 사람에게
OpenGL을 사용 했으므로 오랜 시간이 걸렸지 만 한 번에 모든 객체를 처리 할 수 없었고 기하 도형 필터가 교차하는 모든 프리미티브의 ID를 쓸 수 없었습니까? 원시 객체를 자신이 속한 객체와 연관시키는 방법을 찾아야하지만 가능해야합니다. – Knoep