2009-07-01 7 views
0

현재 변환 및 유사한 설정, 특히 투영 변환 및 뷰포트를 고려하여 글꼴을 렌더링하려고합니다.C++ D3DX 글꼴 및 변환 (d3d9 및 d3d10 솔루션 필요)

나는 그것을하기위한 가장 좋은 방법은 텍스트를 렌더링하기 위해 화면을 벗어난 표면을 가지고 텍스트를 실제로 원하는 곳에 그 표면을 렌더링하는 것이라고 생각합니다.

그러나이 솔루션의 여러 측면에 대해서는 확신 할 수 없습니다.

  • 이 방법이 가장 좋은 방법인가요?

  • 자유로운 글꼴 렌더러가 이드 주위에있어 그런 것들을 허용하는 데 더 많은 시간을 보내는 것이 좋습니다. 많은 사람들이 여러 가지 이유로 d3dx 글꼴 인터페이스에 대해 불평하지만, 더 나은 유니 코드 사용 가능 렌더러에 대한 링크는 절대로 ...?

  • 특정 표면 형식 및/또는 표면 크기를 사용하면 어떤 이점이 있습니까? (예 : 크기를 작동시키려는 추가 단계가 필요한 표준 큰 하나가 아닌 가능한 한 가장 작은 것을 사용) ...

답변

1

그래, 텍스처로 렌더링 한 다음 텍스쳐 쿼드를 그려 텍스트를 배치하고 배치하면이 기능을 구현하는 가장 쉬운 방법이 될 것입니다.

D3DX 텍스트 렌더러는 사용중인 SDK에 따라 다릅니다. DirectWrite (Windows 7 및 Vista 전용)는 Direct3D와 상호 운용되는 방식으로 고품질의 텍스트 렌더링이 필요한 응용 프로그램에 고품질의 텍스트 렌더링 방법을 제공합니다.

물론 직접 래스터화할 수도 있습니다. 이 요구에 맞게 다시 사용할 수있는 오픈 소스 인 글꼴 래스터 화 엔진이 있지만 개발 비용을 보증하기에 충분히 구별되지 않는 이점을 위해 여기서 코딩을하고 있습니다.

그리드 외곽선에 곡선 데이터로 액세스 할 수 있다면 Direct3D 및 셰이더에서 완전히 새로운 대안을 사용할 수 있습니다. 아이디어는 셰이더를 사용하여 텍스트를 래스터 화하고 커브 정의를 버텍스 스트림 및 관련 텍스처에 저장하는 것입니다. 기술을 설명하는 this paper을보십시오.