>  기사  >  백엔드 개발  >  OpenGL에서 크기를 조정할 때 픽셀화된 선을 얻는 방법은 무엇입니까?

OpenGL에서 크기를 조정할 때 픽셀화된 선을 얻는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-06 01:38:02545검색

How to Achieve Pixelated Lines When Scaling in OpenGL?

OpenGL에서 단일 픽셀 라인 크기 조정

레트로 2D 픽셀 그래픽을 렌더링할 때 픽셀화를 위해 더 낮은 내부 해상도를 사용하고 출력을 더 큰 해상도로 크기 조정하는 것이 일반적입니다. 표시하다. 그러나 GL_LINE_LOOP 프리미티브의 크기를 조정하면 픽셀화되지 않은 선이 발생할 수 있습니다.

문제 이해

OpenGL의 glOrtho 함수는 원점이 왼쪽 하단에 있고 끝 부분까지 확장되는 2D 좌표계를 정의합니다. 오른쪽 상단. glOrtho(0, 320, 240, 0, 0, 1)을 호출하면 320x240 가상 캔버스를 정의합니다.

그러나 glViewport 함수를 사용하여 출력 크기를 조정하면 가상 캔버스의 크기가 물리적으로 조정되지 않습니다. . 대신, 프리미티브는 전체 출력 해상도(예: 960x720)로 그려진 다음 크기가 확대됩니다. 이로 인해 픽셀화된 직사각형이 생성되지만 픽셀화되지 않은 선이 생성됩니다.

올바른 접근 방식

권장되는 해결 방법은 원하는 가상 해상도(이 경우 320x240)의 텍스처로 렌더링한 다음 해당 텍스처를 그리는 것입니다. 원하는 출력 해상도(960x720)로 창에 표시됩니다. 이렇게 하면 기본 요소가 픽셀화된 모양을 유지하면서 가상 해상도로 렌더링됩니다.

구현 단계

  1. 320x240 크기의 텍스처를 생성합니다.
  2. 텍스처를 프레임 버퍼 개체(FBO)에 연결합니다.
  3. 렌더링을 위해 FBO를 바인딩합니다.
  4. 뷰포트를 텍스처 크기(320x240)로 설정합니다.
  5. 렌더링
  6. FBO 바인딩을 해제합니다.
  7. 뷰포트를 출력 창의 크기(960x720)로 설정합니다.
  8. 텍스처를 텍스처 단위로 바인딩합니다.
  9. 적절한 좌표를 사용하여 출력 창에 텍스처를 그립니다.

이 접근 방식을 사용하면 선이 가상 해상도로 그려지므로 더 높은 해상도로 확대해도 픽셀 모양이 유지됩니다. 출력 해상도.

위 내용은 OpenGL에서 크기를 조정할 때 픽셀화된 선을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.