- โปรเจกต์เว็บอินเทอร์แอ็กทีฟที่ใช้ อักขระ ASCII เพื่อแสดงภาพเมฆ
- สามารถปรับพารามิเตอร์ได้หลากหลาย เช่น Noise, Wave, Color, Glyph Thresholds เพื่อเปลี่ยนเอฟเฟกต์ภาพ
- รองรับการแสดงเมฆในบรรยากาศต่างกันผ่าน โหมดพรีเซ็ต เช่น Retro CRT, Cosmic, Fog, Red
- มีฟังก์ชัน บันทึกภาพเป็น PNG, คัดลอกลิงก์ และ นำเข้าค่าการตั้งค่า (Import)
- เป็น การทดลองกราฟิกบนเว็บ ที่แสดงให้เห็นความเป็นไปได้ของการผสานข้อความกับเอฟเฟกต์ภาพ
ภาพรวมโปรเจกต์
- ASCII Clouds คือ เครื่องมือแสดงภาพแบบอินเทอร์แอ็กทีฟบนเว็บ ที่สร้างรูปทรงเมฆจากอักขระ ASCII
- เรนเดอร์แพตเทิร์นเมฆแบบเรียลไทม์ในเบราว์เซอร์
- ผู้ใช้สามารถปรับพารามิเตอร์ด้านภาพต่าง ๆ ได้โดยตรง
- ในอินเทอร์เฟซมีปุ่มฟังก์ชันอย่าง Fullscreen, บันทึก PNG, Copy Link, Import รวมอยู่ด้วย
ฟังก์ชันปรับเอฟเฟกต์ภาพ
- ปรับค่าต่าง ๆ เช่น Noise, Wave Amplitude, Wave Speed, Noise Intensity, Time Speed เพื่อควบคุมการเคลื่อนไหวและพื้นผิวของเมฆ
- ตัวอย่าง: มีค่าเริ่มต้นอย่าง Wave Amplitude 0.150, Wave Speed 0.60, Noise Intensity 0.035, Time Speed 0.70
- สามารถตั้งค่า Intensity(0.80) และ Radius(0.60) สำหรับเอฟเฟกต์ Vignette
- มีรายการ ปรับสี พร้อมค่า Hue(35), Saturation(0.85), Brightness(-0.05), Contrast(1.50)
โครงสร้างการเรนเดอร์ด้วยอักขระ
- มีการใช้ Glyph Thresholds ตามความหนาแน่นของเมฆเพื่อแสดงอักขระที่แตกต่างกัน
. (dot) 0.15, - (dash) 0.30, + (plus) 0.50, O (ring) 0.70, X (cross) 1.00
- ลำดับของอักขระเหล่านี้ใช้เพื่อถ่ายทอดความหนาแน่นหรือความลึกของเมฆ
พรีเซ็ตและธีม
- มีพรีเซ็ตหลากหลาย เช่น Default, Terminal, Retro CRT, Cosmic, Fog, Red
- แต่ละพรีเซ็ตสร้างเอฟเฟกต์ภาพที่มีเอกลักษณ์ผ่านการผสมผสานของสี คอนทราสต์ และนอยส์
- ผู้ใช้สามารถเลือกพรีเซ็ตเพื่อสร้างเมฆ ASCII ในสไตล์ที่ต่างออกไปได้ทันที
ฟังก์ชันการส่งออกและการแชร์
- สามารถ บันทึกภาพที่สร้างขึ้นเป็นไฟล์ PNG หรือแชร์ผ่าน การคัดลอกลิงก์
- ผ่าน ฟังก์ชัน Import สามารถโหลดค่าการตั้งค่าก่อนหน้าเพื่อสร้างแพตเทิร์นเมฆเดิมซ้ำได้
- ฟังก์ชันเหล่านี้ช่วยให้บันทึกและนำผลลัพธ์จากการแสดงภาพเชิงทดลองกลับมาใช้ซ้ำได้อย่างสะดวก
2 ความคิดเห็น
ตัวอักษรที่ใช้ก็น่ารักดีนะ
ความคิดเห็นจาก Hacker News
สวยมาก แกนอัลกอริทึมของเอฟเฟกต์นี้คือ Perlin noise ที่มีมานานกว่า 40 ปี
ภาพที่สร้างขึ้นสามารถนำไปใช้กับเอฟเฟกต์ภาพได้หลากหลาย เช่น displacement effect แบบกระจกหรือน้ำแข็ง, เอฟเฟกต์ระลอกคลื่น, การสร้างภูมิประเทศ เป็นต้น
จุดสำคัญคือให้ความรู้สึกที่เป็นธรรมชาติและเป็นออร์แกนิก
สมัย Flash AS3 ก่อนหน้านี้มักใช้บ่อยเวลาทำเอฟเฟกต์หรือเกมแบบนี้ และคิดว่าจนถึงตอนนี้ก็น่าจะยังถูกใช้อยู่มาก
อ้างอิง p5.noise()
จริง ๆ แล้วเอฟเฟกต์แบบนี้ทำได้ง่ายด้วยการสร้าง text post-processing shader แล้วนำไปใช้กับฉาก 3D หรือวิดีโอ เป็นต้น
แหล่งอ้างอิงที่น่าสนใจ:
คู่มือ pmndrs/ascii,
ตัวอย่างในฟอรัม BabylonJS,
ตัวอย่าง ASCII ของ Three.js,
เดโมจาก fwdapps.net,
ตัวอย่าง CodeSandbox,
วิดีโอ YouTube
โค้ดตัวอย่าง shademacs
มันเจ๋งดี แต่ถ้าแต่ละสัญลักษณ์มีสีหรือความสว่างต่างกัน ก็รู้สึกว่า ความเป็น ASCII ในตัวมันเอง จะอ่อนลง
เพราะชื่อ เลยคาดหวังว่าจะมี ตัวเลือกการเลือกอักขระ ASCII เพิ่มขึ้น หรือมีฟีเจอร์เลือกข้อความได้มากกว่านี้ ถึงอย่างนั้นในแง่ภาพก็ค่อนข้างน่าสนใจและเล่นสนุกดี
ผมลองต้นแบบช่วงแรกด้วย Claude Code แล้วได้ผลลัพธ์ที่ค่อนข้างดี
โปรเจกต์ bbs-ansi-to-html
เอาเข้าจริงมันแทบไม่เกี่ยวกับ ASCII เลย แต่ก็เป็น เอฟเฟกต์ภาพที่เท่มาก
เมื่อก่อนผมเคยทำเอฟเฟกต์คล้าย ๆ กันด้วย C (น่าจะราวปี 2007)
วิดีโอ YouTube, คลังโค้ด
ผมอัปเดตให้คอมไพล์ได้บนระบบสมัยใหม่แล้ว และยังเก็บเวอร์ชันต้นฉบับไว้ด้วย
ไฟล์ gol.c ต้นฉบับ
มันเจ๋งนะ แต่ถ้าเป็น ASCII จริง ก็น่าจะต้อง คัดลอก/วางท้องฟ้าที่เป็นก้อนเมฆ ลงใน text editor ได้สิ ;-P
อันนี้น่าจะเหมาะกับ การเรนเดอร์เมฆจากมุมมองดาวเทียม มาก แต่ดูไม่เหมาะกับการโมเดลเมฆจากมุมมองบนพื้นดิน
ผมกำลังหาอัลกอริทึมที่เร็วและดีอยู่ ถ้าใครมีข้อมูลที่เกี่ยวข้องก็อยากให้ช่วยแชร์
มีเดโมที่เกี่ยวข้องกันในเชิงธีมอยู่
เดโม chromaspiral
ผมเผลอใช้เวลานานเกินคาดไปมากกับการพยายามทำ เอฟเฟกต์พื้นหลังของ Balatro ขึ้นมาใหม่