SpriteKit + iOS8. Apakah SpriteKit mendukung hasil pembuatan kue?

Saya menerapkan program cat di SpriteKit dan saya sangat terkesan dengan kesederhanaan implementasi yang dimungkinkan oleh SprikeKit. Sangat sungguh keren!

Setiap sapuan kuas diimplementasikan sebagai SKSpriteNode dengan SKShader terlampir. Semuanya berfungsi seperti yang saya harapkan.

Masalah: Saat ini saya terus mengembangkan grafik SKScene seiring dengan penambahan sapuan kuas. Ini bukan solusi terukur karena konsumsi sumber daya meningkat dan kecepatan bingkai melambat. Jadi, yang ingin saya lakukan adalah "memanggang" grafik SKScene setelah sapuan kuas dilukis.

Saya mencoba mengatur myScene.shouldRasterize = YES pada instance SKScene saya tetapi tampaknya tidak berpengaruh. Bagaimana cara "memanggang" hasil rendering di SpriteKit? Apakah saya harus menggulungnya sendiri?

Terima kasih,
Doug


person dugla    schedule 18.08.2014    source sumber


Jawaban (2)


Satu-satunya yang terpikir oleh saya untuk melakukan ini adalah dengan menelepon textureFromNode pada SKView Anda meneruskan SKNode yang ingin Anda "panggang". Kemudian ambil tekstur itu, terapkan pada SKSpriteNode, dan hapus SKNode(s) yang baru saja Anda "panggang" ke dalam tekstur tersebut.

person Mike S    schedule 18.08.2014
comment
Ya. Itulah pendekatan yang saya pilih. Selamat, Mike. - person dugla; 19.08.2014

Ingin menambahkan komentar tetapi reputasi tidak mengizinkan saya. Hanya ingin menambahkan bahwa Anda dapat melakukan rasterisasi sekelompok sprite dengan menggunakan SKEffectNode. Cukup tambahkan sprite apa pun ke node ini lalu gunakan properti shouldRasterize yang sama. Anda bahkan dapat menerapkan filter CoreImage seperti Gaussian Blurs.

Kelemahannya jelas adalah kinerja saat membuat node rasterisasi.

person gzafra    schedule 19.08.2014
comment
Terima kasih Willhem. Saya menggunakan textureFromNode dan hasilnya persis seperti yang saya inginkan. SpriteKit sangat produktif. Untuk kebanyakan 2D saya biasa menggunakan OpenGL/GLSL saya bisa menggunakan SpriteKit/GLSL. - person dugla; 21.08.2014