2011-05-12 4 views
2

Silverlight에서 WriteableBitmap을 임시 저장 도구로 사용하고 끝내서 알고리즘 알고리즘의 결과를 그려 무한 양의 균일 한 평면 2 차원 우주를 그립니다. 문제. Silverlight WriteableBitmap에서 가우시안 블러

이 "우주"(도 3)의 정의 누르라하려면 : I는 알고리즘 aproximate하는 비트 맵 크기 조정을 사용하고 http://alienryderflex.com/homogeneity/

를 선형 품질 손실 이차 고속화를 얻는다.

문제가 있다면 이미지의 가우시안 블러 (Gaussian blur)를 내려서 스케일링 및 업 스케일링 후에 픽셀 화를 줄이면 알고리즘의 오류율이 증가합니다.

내 테스트 구현 Here을 볼 수 있습니다.

생성을 누른 다음 그리기를 누르고 20 초 정도 기다리면 출력 픽셀 화에서도 볼 수 있습니다.

하지만 알고리즘의 두 번째 단계에서 "물질 밀도 맵"으로 출력 비트 맵이 필요합니다.

그래서 쓰기 가능한 비트 맵에 어떻게 가우스 흐림 효과를 적용합니까? 정말 int 배열에 시간이 많이 걸릴 내 자신의 쓰기 대신 적절한 구현을 찾고 싶습니다 -> 거룩한 그리스도 이미지 데이터에 바이트 포인터가 ??

감사합니다.

편집 :

명확히하기 위해 : 나는 그것을 작동하도록 다시 가우스 흐리게 데이터가 필요 :뿐만 아니라 시각적 블러를 이미지 위에.

답변

1

silveright에서 가장 좋은 방법은 맞춤 그래픽 효과를 작성하는 것입니다. Silverlight 3에서는 DirectX .fx 파일로 쓸 수 있습니다. 이것들은 하드웨어가 보증 된 것이며, 서로 다른 이미지 표현간에 앞뒤로 복사하는 것을 피할 것입니다.

Here 소개합니다. 아마 더 좋은 것들이 있지만 그것은 당신을 시작할 것입니다. 픽셀 쉐이더의 멋진 점은 매우 빠르기 때문에 최적화에 대해 걱정할 필요가 없다는 것입니다.

+0

HLSL 가우시안 블러를 코딩하는 법을 알고 있습니다. 비록 두 단계로 이루어져야하고 HLSL에서 그것을 수행하는 것이 지옥이다. 나는 이미 여기에서 그것을했다 : http://marino.boletus.hr/3dpee.zip - 그러나! 내 유일한 질문은 이것에 관한 것입니다 : 픽셀 쉐이더가 효과를 적용한 후에 비트 맵 데이터를 다시 얻을 수 있습니까? 데이터가 시각적으로 필요한 것은 아닙니다. –

관련 문제