2010-06-21 4 views
3

높은 수준 (또는 원하는 경우 낮은 수준)에서 Quartz2D (Core Graphics)를 사용하여 iPad의 드로잉 프로그램에 얼룩 효과를 구현하는 좋은 방법은 무엇입니까? 아무도 이것을 시도 했습니까?iPad의 드로잉 프로그램에 얼룩 도구를 구현하는 좋은 방법은 무엇입니까?

alt text http://www.pixlr.com/wiki/_media/help/image_editor/smudge_example.png

주셔서 감사 지혜를 사전에 너무 많은!

내가 관심이있는 사람들을 위해 this great article을 발견 UPDATE, 그것을 확인! 지금의

링크 : http://losingfight.com/blog/2007/09/05/how-to-implement-smudge-and-stamp-tools/

+0

+1 기사 링크, 모든 그의 그래픽 기사 우수합니다! – ethyreal

+0

링크가 변경되었습니다. http://losingfight.com/blog/2007/09/05/how-to-implement-smudge-and-stamp-tools/ – CoderDan

답변

1

나는 최상의 성능을 얻을 수는 OpenGL ES 2.0을 사용하여 해당 문서에 설명 된 것과 유사한 알고리즘을 구현 건의 할 것입니다.

  1. 는 텍스처로 렌더링하는 프레임 버퍼를 설정 텍스처로 시작 이미지를 가져옵니다
  2. 쿼드
  3. 다른 쿼드에게 약간보기 어긋난와 브러시의 크기를 렌더링의 초기 이미지를 렌더링 텍스처에 저장되거나 가우스 함수 (gaussian function)에 의해 정의 된 알파 마스크에 의해 곱해진다. 배경 쿼드에 알파 블렌딩을 사용하십시오.
  4. 이 텍스처를 CAEAGLLayer 기반보기와 연결된 프레임 버퍼에 렌더링하십시오.
  5. 이전의 렌더링 결과를 입력으로 사용하여 next -touchesMoved 이벤트에서 1로 이동하십시오. 한 번에 같은 텍스처를 읽고 쓸 수 없으므로 두 개의 텍스처 객체가 "핑퐁"되도록하고 싶습니다.

나는 당신이 CPU에서 훌륭한 성능을 얻지는 않을 것 같지만, 그렇게 설정하는 것이 분명 쉽다. 이 설정에서는 브러시 크기 등을 본질적으로 제한하지 않고 이미지 그리기 코드를 루핑하지 않을 수 있습니다.

CPU에 어떤 성능 향상을 주는지 궁금합니다. 신경 써서 :

+0

이 작업을 시도하고 OpenGL을 처음 접했습니다. ES. 4 단계를하려고했지만 운이 없다. 그것을 달성하는 방법에 대한 힌트가 있습니까? – Amendale

+0

새로운 질문을하고 코드를 첨부 해보십시오. 이 문제를 n00b 공개 질문으로 오염시키지 마십시오. –

관련 문제