2012-10-05 4 views
1

최근에 실시간 3D 그래픽 응용 프로그램에서 멀티 코어 프로세서의 성능을보다 효율적으로 처리하는 것과 관련하여 병렬 처리의 이점에 대해 강의했습니다. 이 토론은 C++ 및 TBB (스레딩 구성 요소) (Intel)에 관한 것입니다. Java 7에서 Fork/Join에 대해 알았지 만 OpenGL/JOGL을 통해 실시간 3D 그래픽을 실행하는 방법에 대해 자세히 알고 싶습니다.자료 : OpenGL 실시간 응용 프로그램 용 Java의 병렬 처리

OpenGL/JOGL이 하나의 스레드에 있어야한다고 들었습니다. 이것이 사실인지 나는 모른다. Java에서 실시간 그래픽 응용 프로그램과 관련하여 Parallelism/Multicore 프로그래밍 경험이 있고 환상적인 몇 가지 리소스를 지적 할 수 있습니다.

답변

2
Is JOGL restricted to one thread? 

아니오, JOGL 자체는 하나의 스레드에 바인드되지 않습니다. AWT GLCanvas 만 있습니다. 후자는 GLAutoDrawable 구현 중 하나입니다. AWT GLCanvas는 AWT EDT에서 원시 리소스를 조작해야하는 AWT 자체 때문에 제한됩니다.

How to work with JOGL lock free? 

'거의'자물쇠를 사용하지 않으려면 NEWT을 사용할 수 있습니다. NEWT를 사용하면 복수 스레드의 여러 창을 렌더링 할 수 있습니다 ( ). 서로 간섭하지 않도록합니다. NEWT 이벤트 처리는 렌더링을 방해하지 않습니다.

Example of multithreading use 

(JOGL 여부/w) OpenGL을 사용하는 멀티 스레딩의 다른 예 들고 전용 스레드에서 텍스처 또는 다른 GL 관련 리소스를 기입하는 OpenGL은 문맥 오프 스크린 [화면의 문맥/▼] 공유. 전용 스레드는 사용 가능한 렌더링 루프 등을 신호로 알릴 수 있습니다. 우리의 GLDrawableFactory는 많은 드로어 블 팩토리였습니다. 메소드는 public입니다. Note: offscreen mode can be selected via the GLCapabilities.

You may like to browse through out unit tests in one of thegit repos. Pls check class 'TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT' and shared OpenGL context tests include the name 'Shared'.

+0

망할 놈의 repo 링크가 끊어집니다. 그것을 업데이트 할 수 있습니까? – ray