Tôi đã triển khai trình tạo bóng Lafortune trong WebGL và mối quan tâm lớn nhất của tôi là về công thức này:
Giải trình
Kd / Ks là khuếch tán vật chất / màu sắc đặc trưng, ρd / ρs là thành phần khuếch tán ánh sáng / đặc trưng, m là số lượng thùy (trong shader tôi luôn sử dụng một thùy), o là hướng người xem (từ điểm bề mặt ), i là hướng sáng, Oj là thùy và ej là yếu tố sáng bóng.
Tham khảo đầy đủ tại đây: Một cuộc khảo sát về các mô hình tô bóng để hiển thị thời gian thực , tại trang 28.
Câu hỏi
Vấn đề đi kèm với thùy Oj. Tôi nhận ra rằng khi tôi thay đổi giá trị của Oj, ánh sáng bị dịch chuyển khỏi vị trí ban đầu của nó, ví dụ như đó là những gì tôi nhận được với Oj = (-1, -1,1):
Và đó là những gì tôi nhận được với Oj = (0,0,1):
Hành vi đó có bình thường không? Ánh sáng có bị dịch chuyển theo giá trị của Oj không?