D3DX의 선 그리기 지원(Direct3D 9)

D3DX는 도우미 서비스를 제공하는 유틸리티 라이브러리입니다. Direct3D 구성 요소 위의 계층입니다.

D3DX는 단일 픽셀 너비의 앤티앨리어싱된 선을 지원합니다. 선 패턴은 더 이상 지원되지 않습니다.

선 그리기 라이브러리는 텍스처 삼각형을 사용하여 선을 에뮬레이트하고 다음을 가정합니다.

  • 하드웨어는 Direct3D 9 인터페이스를 통해 사용할 수 있습니다.
  • 하나 이상의 텍스처 스테이지를 사용할 수 있습니다.
  • 64x64 텍스처가 사용됩니다.
  • 다음 모드를 사용할 수 있습니다.
    • 쌍선형 필터링
    • 클램프 주소 모드
    • 주소 모드 래핑
    • 알파 op 변조
    • 알파 혼합(SRCBLEND = SRC_ALPHA, DESTBLEND = INV_SRC_ALPHA)
    • 알파 혼합을 사용할 수 없는 경우 알파 테스트; 낮은 품질 결과

다중 샘플 렌더링 대상에서 앤티앨리어싱된 선 렌더링의 경우 텍스처 처리된 다각형을 생성하는 ID3DXLine 을 사용합니다. 앤티앨리어스된 선 래스터화에 의해 생성된 픽셀 검사 값은 픽셀 셰이더에서 계산한 픽셀의 알파 값을 변조합니다. 앤티앨리어싱된 선을 그리려면 애플리케이션에서 알파 혼합을 사용하도록 설정한 다음 D3DRS_ANTIALIASEDLINEENABLE 렌더링 상태를 TRUE로 설정해야 합니다.

기능 설명

라이브러리는 다음과 같은 선 기능을 사용하여 색이 지정된 줄무늬 그리기를 지원하며, 각 줄은 다른 기능과 독립적입니다.

  • 선 두께
  • 반복이 있는 선 패턴(선 패턴 카운터는 각 ID3DXLine::D raw 또는 ID3DXLine::D rawTransform 호출로 다시 설정됩니다. 줄무늬의 각 세그먼트로 다시 설정되지 않습니다.)
  • 앤티앨리어싱
  • OpenGL 스타일 선

참고

완화는 지원되지 않습니다.

 

라이브러리는 다음과 같은 경우에만 네이티브 하드웨어 선 그리기 지원(디바이스에서 사용할 수 있는 경우)을 사용합니다.

  • 선 너비는 1입니다.
  • 선 패턴을 사용할 수 없습니다.

단일 픽셀 너비의 앤티앨리어스 선은 일부 하드웨어에서 지원되므로 라이브러리는 사용 가능한 경우 이를 사용합니다. D3DCAPS9 구조체의 LineCaps 멤버는 선 그리기 기본 형식에 대한 하드웨어 기능을 열거합니다.

소프트웨어 선 그리기를 사용하면 각 선이 사각형으로 확장되고 4개의 꼭짓점이 드라이버로 전송됩니다.

각 선 세그먼트는 두 개의 삼각형으로 그려집니다. 기본 형식의 너비는 지정된 너비에 1.0을 더한 값이며, 이로 인해 추가 행 또는 픽셀 열이 발생할 수 있습니다. 선이 넓어지면 텍스처의 앤티앨리어스 그라데이션이 더 거칠어지고 더 완전히 불투명한 텍셀이 중간 주위에 복제됩니다. 그라데이션은 텍스처의 v 방향으로 인코딩되며 일반적으로 U 방향을 따라 복제됩니다. v의 텍스처 주소 지정 모드는 클램프입니다.

목록의 각 선 세그먼트는 이전 끝점에서 시작하는 별도의 줄로 간주될 수 있습니다.

선이 넓어지면 원래 선의 길이와 평행한 가장자리를 따라 앤티앨리어싱 품질이 저하됩니다. 32.0보다 큰 선 너비는 이러한 가장자리를 따라 아티팩트가 표시됩니다.

D3DX