2015-01-28 7 views
0

서브 픽셀 래스터 라이저에서 작업하고 있습니다. 출력은 불투명 비트 맵에 렌더링됩니다. 필자는 텍스트를 흑백으로 올바르게 렌더링하기 위해 왔습니다 (기본적으로 비트 맵의 ​​내용은 무시할 수 있기 때문에).불투명 배경의 서브 픽셀 래스터 화

문제는 블렌딩입니다. 실제로 렌더링 된 각 픽셀은 저역 통과 필터링 기술 (필자는 5 탭 전나무 - 1/9, 2/9, 3/9 등을 사용함)과 이웃 픽셀 강도 레벨에 영향을줍니다. 렌더링 될 픽셀. 이 결과는 문제가 발생한 곳의 목적지 이미지로 알파 블렌드되어야합니다 ...

픽셀 상호 작용의 결과를 함께 추가하여 정확한 휘도를 얻고 대상에 알파 블렌드합니다. 그러나 한 번에 하나의 픽셀을 래스터 화합니다. 이전 픽셀의 정보를 잃어 버렸기 때문에 추가로 오버플로가 발생할 수 있습니다.

어떻게해야합니까? 내가 상상할 수있는 유일한 해결책은 각 색상의 알파 채널이있는 별도의 이미지로 렌더링 한 다음 복잡한 블렌딩 알고리즘을 사용하고 마지막으로 대상을 알파 블렌드하는 것입니다. 어떻게 든.

그러나 액정 픽셀의 기본적인 렌더링 개념과 모니터 픽셀의 근접 촬영 이미지 외에도 실제 작업 방법에 대한 리소스를 찾을 수 없었습니다. 누군가가 길을 따라 나를 도울 수 있다면, 나는 매우 감사 할 것입니다.

답변

0

오늘 밤 나는 깨어 다시 잠들 수 없었다. 나는 뇌의 에너지를 낭비하지 않고 똑같은 문제를 우연히 만났습니다.

나는 두 가지 다른 해결책을 제시했으며 두 가지 모두 검증되지 않았습니다.

  • 3 채널 알파 마스크를 사용해야합니다 (각 서브 픽셀마다 하나씩). 각 색상은 고유 한 알파와 혼합됩니다.
  • 회색/BW 글꼴 (밝은 배경색에 어두운 텍스트를 그리면 1-color_value) 만 렌더링하고 각 색상을 개별적으로 적용하면 알파 채널로 각 색상 채널을 사용할 수 있습니다. 이 경우 색상 값 자체를 1로 간주해야합니다.

희망이 조금 도움이, 불면증 ~ 2h 가득 채웠다.

~ 1 월

+0

의견을 보내 주셔서 감사합니다. 나는 항상 왼쪽에서 오른쪽으로, line-for-line으로 렌더링한다는 사실을 이용하여 이것을 풀었다. 따라서 마지막 및 다음 N/2 서브 픽셀 (N은 앤티 엘리 어싱에 사용 된 필터 커널의 크기 임)을 저장하기 만하면 디스플레이에 직접 매핑됩니다. 이 alphaMap을 호출하여 픽셀의 커널, 감마 및 흑백 강도를 혼합합니다. 다음 픽셀로 이동할 때마다 이전 점을 래스터 화하고 알파 맵을 현재 색상에 매핑 한 다음 알파 채널을 대상 표면에 알파 블렌드합니다. 여기에서 초기 버전을 볼 수 있습니다. http://pastebin.com/SP2PW6rr – Shaggi