สไปรท์คิท + iOS8. SpriteKit รองรับผลลัพธ์การเรนเดอร์การอบหรือไม่

ฉันกำลังใช้งานโปรแกรมระบายสีใน SpriteKit และรู้สึกประทับใจอย่างยิ่งกับความเรียบง่ายของการปรับใช้ SprikeKit มาก เจ๋งจริงๆ!

แต่ละจังหวะแปรงจะใช้เป็น SKSpriteNode โดยมี SKShader แนบมาด้วย ทุกอย่างทำงานได้ตามที่ฉันคาดหวัง

ปัญหา: ขณะนี้ฉันกำลังเพิ่มกราฟ SKScene อย่างต่อเนื่องเมื่อมีการเพิ่มลายเส้นพู่กัน นี่ไม่ใช่โซลูชันที่สามารถปรับขนาดได้ เนื่องจากปริมาณการใช้ทรัพยากรและอัตราเฟรมช้าลงในการรวบรวมข้อมูล ดังนั้นสิ่งที่ฉันอยากทำ "อบ" กราฟ SKScene หลังจากทาสีพู่กันแล้ว

ฉันลองตั้งค่า myScene.shouldRasterize = YES บนอินสแตนซ์ SKScene ของฉันแล้ว แต่ดูเหมือนจะไม่มีผลใดๆ ฉันจะ "อบ" ผลลัพธ์การเรนเดอร์ใน SpriteKit ได้อย่างไร ต้องม้วนเองมั้ย?

ขอบคุณ
ดั๊ก


person dugla    schedule 18.08.2014    source แหล่งที่มา


คำตอบ (2)


สิ่งเดียวที่ฉันคิดได้คือโทร textureFromNode ใน SKView ของคุณที่ส่งผ่านใน SKNode ที่คุณต้องการ "อบ" จากนั้นนำพื้นผิวนั้นไปใช้กับ SKSpriteNode และลบ SKNode ที่คุณเพิ่ง "อบ" เข้าไปในพื้นผิว

person Mike S    schedule 18.08.2014
comment
ใช่. นั่นคือแนวทางที่ฉันโน้มตัวไป ไชโยไมค์ - person dugla; 19.08.2014

อยากแสดงความคิดเห็นแต่ชื่อเสียงไม่เอื้ออำนวย ฉันอยากจะเสริมว่าคุณสามารถแรสเตอร์กลุ่มของสไปรท์ได้โดยใช้ SKEffectNode เพียงเพิ่มสไปรท์ใดๆ ลงในโหนดนี้ จากนั้นใช้คุณสมบัติ shouldRasterize เดียวกัน คุณยังสามารถใช้ตัวกรอง CoreImage เช่น Gaussian Blurs ได้อีกด้วย

ข้อเสียคือประสิทธิภาพที่เห็นได้ชัดเมื่อสร้างโหนดแรสเตอร์

person gzafra    schedule 19.08.2014
comment
ขอบคุณวิลเฮม ฉันเลือกใช้ textureFromNode และผลลัพธ์ก็ตรงกับที่ฉันต้องการ SpriteKit มีประสิทธิผลอย่างน่าขัน สำหรับ 2D ส่วนใหญ่ ฉันเคยใช้ OpenGL/GLSL ฉันสามารถใช้ SpriteKit/GLSL ได้ - person dugla; 21.08.2014