DirectX Graphics 프로그래밍 가이드 고도의 주제 Direct3D extension (D3DX) 의 라인 드로잉(Drawing)   [목차열람] [주소복사] [슬롯비우기]
Direct3D extension (D3DX)의 라인 드로잉(Drawing)
 
Microsoft DirectX 9.0

Direct3D extension (D3DX)의 라인 드로잉(Drawing)


Direct3D extension (D3DX)가 확장되어 단일 픽셀폭의 anti-aliasing 된 라인을 지원 하게 되었다. 라인 패턴의 지원은 삭제되어 D3DRS_LINEPATTERN 렌더링 스테이트는 지원 되지 않게 되었다.

라인 드로잉(Drawing) 라이브러리에서는, 다음의 전제에 근거해, 텍스처 처리된 삼각형을 사용한 라인을 열거하고 있다.

D3DRS_ANTIALIASEDLINEENABLE 렌더링 스테이트를 TRUE 또는 FALSE 로 설정 하면, 라인의 anti-aliasing가 유효 또는 무효가 된다. 디폴트의 스테이트는 FALSE 이다.

D3DRS_ANTIALIASEDLINEENABLE 렌더링 스테이트는, 와이어 프레임 모드로 드로잉(Drawing) 된 삼각형과 라인 드로잉(Drawing)의 기본도형 타입의 양쪽 모두에 적용된다. 멀티 샘플링 렌더링 타겟으로 렌더링 하는 경우, D3DRS_ANTIALIASEDLINEENABLE 렌더링 스테이트는 무시되어, 모든 라인이 anti-aliasing 되지 않고 렌더링 된다.

멀티 샘플 렌더링 타겟으로 라인을 anti-aliasing 해 렌더링 하려면 ,ID3DXLine 를 사용해, 텍스처 처리된 다각형을 생성한다. anti-aliasing 해 라인을 래스터화했을 때에 생성되는 픽셀의 카버리지값으로, 픽셀 셰이더에 의해 계산된 픽셀의 알파값을 곱셈한다. anti-aliasing 한 라인을 드로잉(Drawing) 하려면 , 애플리케이션으로 알파 혼합을 유효하게 할 필요가 있다.

변경 사항을 다음에 나타낸다.

 
// New render state
D3DRS_ANTIALIASEDLINEENABLE
// Can be TRUE (nonzero) or FALSE (zero)

// New capability bit
D3DLINECAPS_ANTIALIAS

// Deleted the following 
D3DRS_LINEPATTERN, struct D3DLINEPATTERN, D3DPMISCCAPS_LINEPATTERNREP

기능의 설명

라이브러리는, 다음의 라인 기능을 가지는 색첨부의 라인 스트립의 드로잉(Drawing)를 지원 하고 있다. 이러한 기능동안에 의존관계(dependencies)는 없다.

  미타링은 지원 하고 있지 않다.

하드웨어의 네이티브의 라인 드로잉(Drawing) (장치로 사용 가능한 경우)이 지원 되는 것은, 다음의 경우에 한정된다.

일부의 하드웨어에서는 단일 픽셀폭의 anti-aliasing 한 라인을 지원 하고 있으므로, 라이브러리는, 사용 가능한 경우에는 이것을 사용한다.

소프트웨어에 의한 라인 드로잉(Drawing)를 사용하고 있는 경우는, 각 라인을 직사각형에 확폭 해, 4 개의 정점을 드라이버에 보낸다.

각 라인 세그먼트(segment)는 2 개의 삼각형을 사용해 드로잉(Drawing) 된다. 기본도형의 폭은 1.0 + 지정한 폭이기 (위해)때문에, 픽셀의 행 또는 열이 추가되는 경우가 있다. 라인이 굵어지는에 따라, anti-aliasing 한 텍스처의 변화도는 엉성해져, 각 단계의 중간 부근에서는, 복제되는 완전하게 불투명한 텍셀의 수가 증가한다. 변화도는 텍스처의 v 방향으로 encode 되어 보통은 u 방향에 따라 복제된다. v 의 텍스처어드레싱모드는 클램프이다.

리스트내의 각 라인 세그먼트(segment)는, 전의 라인의 종점으로부터 시작되는 개별의 라인이라고 볼 수가 있다.

원의 라인의 길이에 병행하는 엣지에 따른 부분에서는, 라인이 굵어지는에 따라 anti-aliasing의 품질이 저하한다. 일반적으로, 라인의 굵기가 32.0 을 넘으면 이러한 엣지에 따른 부분의 부자연스러운 효과가 눈에 띄기 시작한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP