나는 지형을 끌어 들이고 물이 흐르는 곳을 (저렴하고 쉬운 방법으로) 시뮬레이트하는 프로그램을 가지고있다.OpenGL 모델을 병렬로 빌드 하시겠습니까?
OpenMP를 사용하여 물을 업데이트하는 것은 쉬운 일 이었으므로 초당 ~ 50 회의 업데이트가 가능합니다. 문제는 소량의 물이 있더라도 1 초당 내 드로우가 매우 낮습니다 (5에서 시작하여 상당한 양의 물이 있으면 약 2로 떨어집니다).
지형이 복잡하고 너무 빨리 그려지기 때문에 비디오 카드에는 문제가 없습니다. boost::timer
은 물을 끄면 초당 무한대로 그려진다는 것을 알려줍니다. 메모리 대역폭과 관련이있을 수 있습니다. (모델이 카드에 남아 있고 매번 전송할 필요가 없다고 가정하기 때문에).
내가 걱정하는 것은 각 무승부 때마다 glVertex3f()
(최대 크기는 450 * 600, 각 4 정점)입니다. Glut이 나를 허용하지 않기 때문에 순차적으로 완료됩니다. 무엇이든 병렬로 부르십시오.
그래서 .. 병렬로 목록을 작성한 다음 한꺼번에 OpenGL에 전달하는 방법이 있다면? 또는 다른 방법으로 더 빨리 그릴 수 있습니까? 내가 잘못된 방법을 사용하고 있습니까? (명백한 "적은 버텍스 사용"외에)?
이것은 정확하게 내가 찾고있는 것 같습니다. 감사. –