Canvas 2D · Reynolds flocking · spatial hashing
ฝูงเคลื่อนพร้อมกัน
ฝูงนก/ปลาทั้งฝูงดูเหมือนมีสมองเดียว แต่จริง ๆ แต่ละตัวตัดสินใจเองจาก 3 กฎง่าย ๆ ของ Craig Reynolds (1986): แยกตัว (อย่าชนเพื่อน), เรียงทิศ (หันไปทางเดียวกับเพื่อนรอบตัว), รวมกลุ่ม (วิ่งเข้าหากึ่งกลางฝูง). ใช้ spatial hash ช่วยหาเพื่อนบ้านเร็ว จึงรันได้เป็นพันตัวลื่น ๆ. เลื่อนเมาส์เป็นผู้ล่า/เหยื่อ
700 boids · — fps
ตัวชี้
การกระทำ
สี/ความสว่างตามความเร็ว · trails สูง = ทิ้งหางยาว · ตั้ง ลดการเคลื่อนไหว = เริ่มแบบหยุดนิ่ง
วิธีทำงาน: แต่ละเฟรมแต่ละตัวมองเพื่อนในรัศมี
vision แล้วรวม 3 แรง:
separation (ผลักออกจากตัวที่ใกล้เกิน), alignment (ปรับความเร็วเข้าหาค่าเฉลี่ยของเพื่อน),
cohesion (เร่งเข้าหาตำแหน่งเฉลี่ยของเพื่อน). การหาเพื่อนบ้านแบบไล่ทุกคู่จะช้า O(n²) —
จึงแบ่งจอเป็นตาราง spatial hash เช็กแค่ 9 ช่องรอบตัว ทำให้เร็วขึ้นมาก.