ฉันไม่รู้ว่ามีวิธีที่ "ถูกต้อง" หรือไม่ แต่น่าจะเป็นแค่การแปลงเชิงเส้นที่น่าพึงพอใจที่ประยุกต์ใช้กับการตกหล่นที่คำนวณจากระยะทางจนถึงจุดหนึ่ง
ดังนั้นสำหรับองค์ประกอบใด ๆ ที่คุณทำงานด้วยคุณจะ:
- ค้นหาระยะทางสู่ศูนย์กลางของวิปริต (d)
- คำนวณ 1 - d / ระยะทางสูงสุดของเอฟเฟกต์ที่คุณต้องการ (i สำหรับความเข้ม)
- ยึดที่ [0-1]
- เปลี่ยนองค์ประกอบโดย lerp (identity, transform, i)
Iirc สงครามเรขาคณิตนำมาใช้ในการบิดเบี้ยวกับองค์ประกอบบางอย่างในขณะที่องค์ประกอบอื่น ๆ เช่นอนุภาคได้รับผลกระทบจาก "แรง" โดยไม่ถูกบิดเบือน คุณสามารถใช้การบิดเบี้ยวในส่วนยอดได้โดยสมมติว่าคุณมีจุดยอดพอที่จะสุ่มตัวอย่างผลกระทบได้อย่างราบรื่น อีกทางหนึ่งคุณสามารถแสดงทุกสิ่งที่ต้องการส่งผลกระทบต่อบัฟเฟอร์หน้าจอก่อนจากนั้นแสดงผลลัพธ์ลงในรูปสี่เหลี่ยม tessellated ที่คุณใช้การบิดเบือนก่อนที่จะเพิ่มองค์ประกอบที่ไม่บิดเบี้ยวทั้งหมด
สำหรับการแปลงรูปการปรับขนาดนั้นจะทำให้คุณดูดดู ถ้าฉันจำได้อย่างถูกต้องก็มีการบิดเกิดขึ้นซึ่งจะเป็นการหมุนเล็กน้อย
คุณสามารถได้รับนักเล่นและนักเล่นด้วยการคำนวณของปัจจัยความเข้มเพื่อรับลักษณะพิเศษ ตัวอย่างเช่นคุณสามารถคำนวณมุม (a) ที่องค์ประกอบนั้นสัมพันธ์กับศูนย์กลางและปัจจัยที่เกิดขึ้นใช้ cos (a) และคุณสามารถสร้างคลื่นรัศมีได้ สิ่งที่คุณต้องการทำคือตั้งค่าตัวคุณเองด้วยรหัสนั่งร้านที่จำเป็นจากนั้นไปที่เมืองทดลองกับชุดค่าผสมต่างๆ