2010-07-14 6 views
2

iPhone 그리기, 애니메이션 및 OpenGL에서 자유롭게 사용할 수있는 모든 정보를 읽는 데 약 1 주일을 보냈습니다. Apple의 GLPaint 및 Quartz 샘플 애플리케이션과 같은 사용 가능한 iOS 드로잉 예제를 사용하여 페인팅 도구의 몇 가지 버전을 작성했지만 "잘 모르는 부분을 모르는"많은 이유로 인해 많은 한계가 발생했습니다. 석영은 처음에는 사용하기 쉽고 빠르지 만 추가 할 때마다 컨텍스트를 다시 렌더링해야하기 때문에 20 개 또는 30 개의 경로 이후 크롤링 속도가 느려집니다. OpenGL 스트로크 렌더링은 일반적으로 느린 것처럼 보이며 (GLPaint 앱) UI가 지연에 휩싸이고 "싼"느낌을 갖습니다. 아마존과 포럼을 통해 검색 한 결과 낮은 수준의 iPhone 드로잉 기술에 대한 훌륭한 책이나 리소스 권장 사항이 없었기 때문에 사용자 경험과 시각적 품질이 우수한 고성능 앱을 기술적으로 능숙하게 만들 수있게되어 "브러쉬"나 "Adobe Ideas 1.0" 저는 무료 코드를 얻으려고하지 않고 배우고 싶습니다. 학습 도구를 지불 할 의향이 있습니다!
제안 사항? 지도?"브러시"품질의 그리기 응용 프로그램 작성하기, 도서 및 자원 권장 사항이 필요합니다.

편집 : 저기있는 책이 거의없는 것에 놀랐습니다. 나는 많은 것들이 있고 쉬운 실행 취소 기능을 계획 할 때조차도 응답하는 경로를 그려서 진행하지만 동시에 지우기 기능과 실행 취소 방법을 궁금해합니다. 지우개를 사용하려면 장면을 래스터 화해야합니다. 그런 다음 경로를 추적하는 대신 캡쳐 화면을 사용하여 실행 취소를 수행해야합니다.

답변

1

CGLayers를 살펴보십시오. 이렇게하면 일부 드로잉을 캐시 할 수 있으며 변경 될 때마다 모든 것을 다시 렌더링하지 않고 변경 사항 만 그릴 수 있습니다. 실행 취소/다시 실행 지원을 추가하려면 약간의 작업이 필요하지만 일부 성능 문제가 완화되어야합니다.

+0

팁 주셔서 감사합니다. 내 배경 이미지에 대해 잘 작동하는 CGLayers가 있지만 그 내용이 반복되지 않기 때문에 드로잉 부분에 사용하지 않았습니다. 나는이 링크를 찾았 : http://stackoverflow.com/questions/1355527/improving-finger-painting-performance 그리고 그것은 UI의 반응을 개선에 큰 힌트를 주었다. 그래서 내가 할 일은 Quartz Paths와 함께 UView를 사용하여 현재 그려지는 선을 그립니다. 그리고 touchesEnded에서 그 아래의 두 번째보기에 저장된 경로 배열에 해당 경로 클래스 (색상 및 크기 변수가있는 변경 가능한 경로)를 푸시합니다. 첫 번째는 경로가 끝난 후 다시 그리기 만합니다. – Langosta39

관련 문제