Tại sao bản đồ bình thường chủ yếu là màu xanh thay vì màu ngẫu nhiên?
Tôi đoán các vectơ bình thường của một vật thể 3D có thể chỉ theo mọi hướng, như:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
Tại sao bản đồ bình thường chủ yếu là màu xanh thay vì màu ngẫu nhiên?
Tôi đoán các vectơ bình thường của một vật thể 3D có thể chỉ theo mọi hướng, như:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
Câu trả lời:
Có hai loại bản đồ bình thường thường được sử dụng trong phát triển trò chơi. Cách bạn nghĩ họ nên làm việc là cách một loại hoạt động (bản đồ bình thường trong không gian mô hình), nhưng hầu hết các trò chơi sử dụng một loại khác (bản đồ bình thường không gian tiếp tuyến), đó là lý do tại sao bạn liên kết hầu hết các kết cấu màu xanh với bản đồ bình thường.
Với các bản đồ thông thường trong không gian mô hình , mỗi kênh mã hóa giá trị chính xác của bình thường bằng cách sử dụng cùng một hệ tọa độ như các đỉnh của mô hình mà nó sử dụng. Điều này có nghĩa là các phần khác nhau của bản đồ bình thường sẽ có màu sắc khác nhau, nhưng các pixel gần nhau thường sẽ có màu tương tự nhau. Một ví dụ về bản đồ bình thường không gian mô hình xuất hiện ở trên ( nguồn ).
Bản đồ bình thường không gian tiếp tuyến thường có màu xanh nhạt. Loại bản đồ này xác định các quy tắc trong không gian tọa độ duy nhất cho từng vị trí của pixel trên bề mặt của lưới. Nó sử dụng đỉnh (nội suy) bình thường như trục Z và hai vectơ trực giao khác, được gọi là tiếp tuyến và bitangent, như trục X và Y. Về cơ bản, bạn có thể nghĩ về các quy tắc trong bản đồ như là một "phần bù" so với thông thường cho pixel đó được tính bằng cách nội suy các quy tắc đỉnh. Các vectơ tiếp tuyến và bitangent cũng được nội suy từ dữ liệu đỉnh và xác định hướng nào trên lưới tương ứng với "lên" và "trái" trong bản đồ bình thường. Hình ảnh được cung cấp trong câu hỏi cung cấp một ví dụ tuyệt vời về bản đồ bình thường không gian tiếp tuyến điển hình trông như thế nào, vì vậy tôi sẽ không cung cấp một ví dụ khác ở đây.
Các thành phần của một phạm vi bình thường bình thường (không có ý định chơi chữ) từ [-1, 1]
. Nhưng các thành phần của màu trong một phạm vi hình ảnh từ [0, 1]
(hoặc [0, 255]
thường là chúng được chuẩn hóa thành [0, 1]
). Vì vậy, quy tắc được thu nhỏ và bù đắp sao cho bình thường (0, 0, 1)
trở thành màu sắc (0.5, 0.5, 1)
. Đây là màu xanh lam nhạt mà bạn nhìn thấy trong các bản đồ bình thường và nó cho thấy không có độ lệch so với đỉnh nội suy bình thường khi sử dụng các quy tắc không gian tiếp tuyến.
Lý do các quy tắc không gian tiếp tuyến được ưa thích hơn các quy tắc không gian mô hình là do chúng dễ tạo hơn và có thể được sử dụng cho nhiều mắt lưới. Ngoài ra, nếu được sử dụng với lưới hoạt hình, các quy tắc không gian tiếp tuyến luôn được sử dụng, vì các quy tắc luôn thay đổi.
bitangent
và binormal
chính xác.
Bản đồ bình thường chủ yếu chỉ ra bên ngoài từ một bề mặt. Giả sử bạn đi với ánh xạ thông thường của thành phần Z của vectơ thông thường XYZ là hướng "độ sâu" và ánh xạ tới thành phần B của không gian màu RGB, bạn sẽ kết thúc với hầu hết các vectơ bình thường có màu xanh lam.
Nếu kết cấu là màu đỏ, thì điều đó có nghĩa là bản đồ bình thường là một bề mặt chủ yếu chỉ về phía bên phải. Bạn có thể thấy tính năng đó trên hình ảnh mẫu của bạn là cạnh phải nhất của các vết sưng có màu hơi đỏ đối với chúng.
Một bề mặt hoàn chỉnh của một màu đỏ sẽ không có ý nghĩa gì. Điều đó sẽ chỉ ra một bề mặt hoàn toàn hướng về phía bên phải. Điều đó sẽ chỉ được mô hình hóa bằng hình học, không phải là một phần của bản đồ bình thường.