프레임 버퍼와 뷰포트 간의 관계에 대해 약간 혼란 스럽습니다. screenWidth + 1 및 screenHeight 크기의 기본 FBO를 사용하는 응용 프로그램이 있습니다. 나는 X11 (적어도 우리가 사용하는 보드에서)에서 전체 화면을 가능하게하는 유일한 방법을 찾았 기 때문에 너비에 하나를 추가했습니다.프레임 버퍼 크기와 뷰포트 관계
어떤 경우에도 screenWidth & screenHeight (+1 무시)에 따라 투영 및 카메라 매트릭스를 만듭니다. 창문과 주 FBO를 만들 때를 제외하고는이 +1에 실제로 다른 +1이 없습니다. 그래서 모든 것이 모두 잘 작동하고 FBO가 끝날 때 픽셀이 비어있는 것으로 예상됩니다.
내가 사용하는 뷰포트는 glViewport (0, 0, screenWidth, screenHeight)로 설정됩니다. 프로젝션이 y 축에서 뒤집 혔기 때문에 y 좌표는 0입니다. 그게 꽤 오래 동안 있었고 (나는 생각했다.) 그 +1로 인한 인공물이 없었다.
하지만 빠른 테스트를 한 결과 +1이 +500 또는 다른 큰 숫자로 변경되었으며 장면의 일부 개체가 오른쪽으로 이동한다는 것을 알았습니다. FBO의 패딩 (padding)은 물건에 영향을 미치는 것처럼 보입니다.
왜 이런 경우입니까? 뷰포트는 정규화 된 장치 좌표를 창 좌표로 변환합니다. 그래서 올바르게 viewWidth와 viewHeight를 사용하여 이것을 이해한다면 FBW의 screenWidth x screenHeight 영역을 채우고 마지막에 여분의 픽셀을 제외해야합니다.
누군가가이 문제에 대해 밝힐 수 있습니까? FBO의 크기에 맞게 내 뷰포트를 변경해야합니까?
렌더링 한 데이터가 FBO에 표시되지 않으므로 실제로는 화면에 표시되도록 _something_을 수행해야합니다. – derhass