2011-08-30 2 views
2

독립적으로 조작하고 겹쳐서 표시 할 수있는 여러 레이어를 가질 수 있는지 알고 싶습니다.OpenGL에서 서로 다른 독립적 인 오버랩 레이어를 사용하는 방법은 무엇입니까?

내가 원한다. 나는 Turtle Graphics API를 구현하고있다. 나는 거북이 움직임을 움직이기 원합니다. 나는 하나의 레이어에있는 모든 그래픽과 거북이 (작은 이등변 삼각형을 사용하여 표현함)를 다른 레이어에 홀로 넣을 수 있는지 궁금해서이 레이어를 지우고 그래픽 레이어에 영향을주지 않고 거북을 지울 수 있는지 궁금합니다. 거북이 비행기의 다른 위치/방향으로 거북이를 다시 그립니다.

답변

2

OpenGL은 장면 그래프가 아닙니다.

OpenGL은 (일반적으로) 재 드로잉을 최소화하려는 클래식 2D 프레임 버퍼가 아닙니다. OpenGL을 사용하면 일반적으로 깊이와 색상 버퍼를 지운 후에 각 프레임 전체 장면을 다시 그릴 것입니다.

1) 깊이 버퍼/깊이 체크를 해제하고 다시 전면에 레이어에 렌더링 :

당신은 몇 가지 옵션이 있습니다.

2) 각 레이어에 적절한 Z 좌표가 있는지 확인하고 Z 버퍼가 레이어를 올바르게 처리하도록 모든 순서로 렌더링합니다. 레이어가 반투명 인 경우 작동하지 않습니다.

3) 지원하려는 느낌을주는 방법으로 거북이 경로를 텍스처로 렌더링하십시오 (glCopyPixels(), PBOs, FBOs, cairo). 화면 크기의 질감이있는 쿼드와 거북이를 맨 위에 렌더링하십시오.

4) 가장 오래된 점부터 각 프레임 전체에 거북이 경로를 다시 그립니다. 수십만 줄의 수가 없으면 느려져서는 안됩니다. 버텍스 배열이나 VBO를 사용해야합니다.

관련 문제