chủ đề khá cũ, nhưng tôi sẽ trả lời nó cho bất kỳ người mới vào nghề có thể tìm kiếm bất kỳ sự giúp đỡ ở đây:
1) & 2)
bản đồ bình thường của bạn cũng giống như một kết cấu khuếch tán thường xuyên, bạn cần phải tải nó từ đĩa, tạo texture2D của bạn như bạn sẽ làm với kết cấu khuếch tán, và khóa nó với các kết cấu khác để gửi nó đến các shaders. Vì vậy, để tổng hợp nó, bản đồ bình thường, bản đồ chiều cao, vv không khác nhau khi bạn đối phó với họ bên CPU ... nó luôn luôn tải chúng, tạo ra các kết cấu, và khóa chúng.
3)
Bản đồ bình thường chỉ là cách lưu trữ các chuẩn của mọi đoạn trong kết cấu. Tốt hơn nên sử dụng chúng với kết cấu khuếch tán tương ứng, vì đó là cách bạn có thể giả mạo các chi tiết nhỏ. Tuy nhiên, không phải lúc nào cũng cần thiết trong một số trường hợp ... ví dụ, lần cuối tôi làm việc trên một cách để làm cho nước ... Tôi sử dụng bản đồ dudv và bản đồ bình thường, nhưng không phải bản đồ khuếch tán tương ứng, như tôi được sử dụng để đưa vào kết cấu để đạt được sự phản ánh.
4)
bản đồ bình thường được ánh xạ với kết cấu tương tự như phối kết cấu khuếch tán ... nó có nghĩa là nếu bạn có một quad tọa độ tính năng này đều 0; 0, 0, 1, 1; 0, 1; 1 đây là các tọa độ bạn sử dụng để lập bản đồ cả hai hoạ tiết.
5)
bạn có thể làm điều đó mà không shaders, tôi đoán ... thậm chí bạn có thể làm điều đó mà không cần OpenGL nếu bạn muốn ... shaders được thiết kế cho các loại hoạt động, và nó sẽ được dễ dàng hơn để làm điều đó với shaders.
Vì vậy, các bản đồ thông thường là các hoạ tiết mã hóa vectơ bình thường thành màu ... vectơ bình thường là vector 3D, và màu sắc cũng là vector 3D. Khi bạn sử dụng ánh sáng, bạn thường gửi các chỉ tiêu của mình từ trình đổ bóng tới trình đổ bóng phân đoạn ... trình đổ bóng phân đoạn sẽ nội suy giá trị của đỉnh bình thường để tìm ra xấp xỉ vectơ thông thường của pixel. điều này được thực hiện theo mặc định ...
Với bản đồ bình thường, bạn không sử dụng vectơ bình thường đỉnh, nhưng vector thông thường được mã hóa trong kết cấu.
Trước tiên, bạn sẽ phải chuyển đổi phép tính ánh sáng từ không gian thế giới thành không gian tiếp tuyến.được thực hiện trong trình đổ bóng đỉnh.
sau đó, bạn sẽ lấy mẫu bản đồ bình thường của bạn trong trình đổ bóng phân đoạn như một texture thông thường.Bạn sẽ nhận được màu RGB của pixel. bạn sẽ phải chuyển đổi giá trị đó thành một vector bình thường, nghĩa là nhân nó với 2 và trừ 1, tức là rgb * 2 - 1, sau đó sử dụng nó làm vector bình thường của bạn trong tính toán ánh sáng.
Cảm ơn, bản trình bày nVidia và 3DKingdoms rất tuyệt. Tôi đã nhìn thấy paulsprojects một, nhưng tôi đã bị mất khi nó bắt đầu trên bản đồ khối lập phương. – zyndor