- Mã hiệu ứng thị giác dựa trên ShaderToy phát hiện tiêu điểm thị giác ở vùng trung tâm thị trường nhìn (fovea)
- Cấu trúc sử dụng GPU shader để trực quan hóa theo thời gian thực khu vực nơi ánh nhìn của con người tập trung
- Thể hiện theo hướng thử nghiệm mối quan hệ giữa hiệu ứng kết xuất và vùng chú ý thị giác
- Có thể chạy và điều chỉnh trực tiếp trên trình duyệt web thông qua nền tảng ShaderToy
- Một ví dụ khám phá cơ chế lấy nét của thị giác con người bằng lập trình đồ họa
Tổng quan về Human Fovea Detector
- Là mã shader phục vụ thí nghiệm thị giác được đăng trên ShaderToy, mô phỏng việc phát hiện vùng trung tâm thị trường nhìn của con người (fovea)
- Hoạt động bằng cách sử dụng shader nền tảng GPU để làm nổi bật khu vực tập trung ánh nhìn
- Cần bật JavaScript và WebGL trong môi trường trình duyệt để có thể chạy
Tính năng và cách triển khai
- Phát hiện tiêu điểm thị giác của một vùng cụ thể trên màn hình thông qua kết xuất thời gian thực
- Sử dụng công cụ hiệu ứng thị giác tương tác của ShaderToy để thể hiện sự thay đổi của vùng trung tâm thị giác
- Khi chạy mã, triển khai hiệu ứng vùng trung tâm thị giác di chuyển theo đầu vào của người dùng hoặc chuyển động chuột
Đặc điểm kỹ thuật
- Dựa trên lập trình GPU shader, thực hiện các phép tính thị giác ở cấp độ pixel
- Để chạy trong trình duyệt, cần cho phép JavaScript và cookie
- Tuân theo cấu trúc chuẩn của nền tảng ShaderToy và được viết bằng mã GLSL
Khả năng ứng dụng
- Có thể được dùng làm công cụ nghiên cứu để trực quan hóa hoặc phân tích sự dịch chuyển tiêu điểm trong thị giác con người
- Có thể ứng dụng trong nhiều lĩnh vực như giao diện theo dõi ánh nhìn, phân tích chú ý thị giác, thử nghiệm thiết kế đồ họa
Điều kiện chạy
- Khi truy cập trang có bước xác minh bảo mật và yêu cầu kích hoạt script
- Cần cho phép JavaScript và cookie để mã shader được kết xuất bình thường
- Trên trang gốc, sau thông báo “đang xác minh bạn là con người”, trang sẽ chuyển sang màn hình kết xuất của ShaderToy
1 bình luận
Ý kiến trên Hacker News
Không thể di chuyển mắt một cách mượt mà trừ khi đang theo dõi một vật thể chuyển động
Mắt luôn thực hiện các chuyển động giật saccade nhanh và rời rạc
Nhưng khi nhìn vào vòng tròn đỏ di chuyển mượt như trong ví dụ Shadertoy này, bạn có thể đưa mắt theo nó và khiến chuyển động của mắt trở nên trơn tru
Khi xem cái này, tôi đã phát hiện ra ảo giác Maxwell’s Spot
Khi nhìn vào ảnh xanh lam/xanh lục nhấp nháy này, sẽ thấy một chấm tối ở giữa nơi ánh nhìn đang tập trung
Thật thú vị vì kết quả thay đổi hoàn toàn tùy theo loại kính
Tôi bị viễn thị, và khi bỏ kính ra thì có chút lác nhẹ nên không thể lấy nét, khiến tôi thấy chuyển động theo hình số 8
Khi đeo kính thường, hiệu ứng này giảm đi nhưng gần như không còn thấy chuyển động ngoài vùng trung tâm
Ngược lại, khi đeo kính đọc sách (dành cho cận thị), tôi thấy một vòng tròn hoàn hảo và còn có thể nhận ra chuyển động ở vùng ngoại vi như một khung hình có tốc độ thấp
Độ càng cao thì hình ảnh càng nhỏ, vì thế phạm vi nhận biết chuyển động bị thu hẹp lại quanh điểm lấy nét
Trước đây Shadertoy này từng nổi tiếng đến mức làm sập máy chủ
Khi đó còn có cả một banner tùy chỉnh kiểu “xin chờ một chút”, nên giờ thấy nó lại lên trang chủ HN cảm giác khá vui
Liên kết lưu trữ lúc đó
Vừa mở trang ra là tôi bị đau nửa đầu dữ dội nên đóng lại ngay
Cần kiểm tra xem những kích thích thị giác kiểu này có thể gây co giật hoặc đau đầu hay không
Ban đầu thấy khá thú vị, nhưng sau khoảng 1 phút thì bắt đầu có ảnh lưu trên tầm nhìn và tai tôi bắt đầu nghe ù tai
Sau 10 phút mà vẫn còn nên tôi lập tức rời khỏi máy tính
Nhưng sau đó tôi biết rằng chưa có đủ nghiên cứu liên quan nên xin đính chính
Vì có thể cảm nhận bằng trực giác rằng có thứ gì đó đang chuyển động cả ngoài vùng trung tâm, nên nếu nhìn lâu chắc sẽ đau đầu
Nếu kiểm tra xem có xuất hiện cảm giác khó chịu tương tự hay không, có lẽ sẽ thu hẹp được nguyên nhân
Tất cả các dấu thập thực sự đều đang xoay, nên thí nghiệm này cho thấy phần nào trong thị trường là nơi dễ bị mù thay đổi (change blindness)
Nói cách khác, 99% thị trường không nhận ra sự thay đổi
Nhờ bình luận của tôi mà một bài viết mới đã được đăng lên
Ban đầu tôi tưởng chuyển động quay này là một ảo giác thị giác
Tôi nhớ đến bài viết liên quan của National Geographic, nhưng trong trường hợp này thì nó thật sự đang quay
Chỉ là chỉ có thể nhìn rõ chuyển động quay đó ở vùng trung tâm (fovea)
Có lẽ có thể mở rộng thí nghiệm này thành một phiên bản đo tâm lý học (psychometric)
Nếu điều chỉnh tham số tỉ lệ thì có thể nhìn thấy chuyển động cả ở vùng ngoại vi, và chỉ cần để người tham gia báo lại xem một vùng nhất định nào đó (ví dụ nơi được đánh dấu bằng vòng tròn đỏ) có thật sự đang chuyển động hay không
Vì trường tiếp nhận (receptive field) của thị giác ngoại vi lớn hơn, nên các tế bào ở đó cần kích thích thị giác lớn hơn mới có thể phát hiện chuyển động
Tôi nhanh chóng tìm ra được một vùng mờ nơi có thể nhìn rất rõ chuyển động quay ở trung tâm
Khi thả lỏng tiêu điểm, tôi có thể thấy cả vùng ngoại vi chuyển động mờ mờ
Đây chính là nền tảng lý thuyết của foveated rendering/streaming