2011-03-09 2 views
1

회전 할 때마다 텍스처에 일부 알고리즘을 적용해야하는 상황이 있습니다.Texture2D를 통해 이미지 처리 알고리즘을 수행하는 효과적인 방법

제 질문은 - XNA 내에서 이미지 처리 알고리즘을 적용하는 최선의 방법은 무엇입니까?

이제 텍스쳐는 RenderTarget2D이며, 알고리즘은 픽셀로 몇 가지 연산을 수행하고 RenderTarget2D로 다시 설정합니다. 이 접근법은 내 애플 리케이션의 종료 원인과 성능이 매우 나쁘다.

stackoverflow를 통해 검색했지만 주제와 관련된 항목을 찾을 수 없습니다. 나는 또한이 문서 http://blogs.msdn.com/b/shawnhar/archive/2008/04/14/stalling-the-pipeline.aspx을 읽고 내 접근 방법이 얼마나 나쁜지 이해합니다.

+0

알고리즘 종류, 적용 빈도 및 적용시기 (컴파일 시간,로드 시간, 실행 시간)에 따라 다릅니다. 더 자세한 정보를 제공 할 수 있습니까? –

+0

Andrew,이 알고리즘은 런타임에 (텍스처가 회전 할 때마다) 적용됩니다. 모든 업데이트에서 텍스처를 회전 할 수 있다는 것을 고려하면 모든 그리기 전에 알고리즘을 적용해야합니다. – zavolokas

+1

정말 성능 문제입니다. 렌더링 타겟에서 읽기가 하나의 옵션입니다. 일반적으로 픽셀 쉐이더를 사용하는 것이 가장 빠르지 만 제한이 있으며 그 한계를 극복하기위한 많은 기술이 있습니다. 알고리즘을 좁히기 전에 알고리즘에 대한 자세한 정보를 알고 싶습니다. 또한 정확하게, "회전 된"의미는 무엇입니까? 당신은 정점을 움직이고 있습니까? 텍스처 좌표는? 아니면 더 복잡한 무엇입니까? –

답변

1

필요한 작업에 따라 HLSL 셰이더를 통해 수행하는 것이 좋습니다.

GPU에있는 여러 코어를 활용할 수 있고 렌더 타겟에서 데이터를 분석 할 필요가 없으므로 셰이더가 실제로 올바른 선택입니다. 스 톨링을 발생시키지 않고 데이터가 화면에 표시됩니다.

관련 문제