2010-10-17 21 views
6

Tôi đang cố gắng tạo trò chơi 3D bằng cách sử dụng OpenGL. Tôi có một thế giới rất cơ bản và hiện đang làm việc trên một nhân vật. Tôi muốn bản đồ một kết cấu để đầu mà sẽ được hình bầu dục. Làm cách nào để thực hiện ánh xạ? Tôi biết cách lập bản đồ cho bề mặt phẳng. Tôi đang tự hỏi nếu các normals có thể được sử dụng để giúp đỡ nhưng tôi đã không bao giờ làm điều này trước và khi tôi tìm kiếm Google tôi không có bất kỳ may mắn.Làm cách nào để kết cấu bản đồ lên bề mặt cong?

Tôi đang lập kế hoạch thực hiện điều này tất cả và không sử dụng Blender hoặc Maya nếu điều đó tạo ra bất kỳ sự khác biệt nào.

Trả lời

1

Tôi đoán từ bài đăng của bạn rằng bạn ổn với hình học?

Đối với ánh xạ tự động trong trường hợp chung, dự đoán của bạn là một ý tưởng hay - bắt đầu từ mỗi đỉnh và theo hướng thông thường của nó cho đến khi bạn nhấn nguyên thủy bên ngoài được xác định rõ, sau đó sao chép vị trí kết cấu vào từ đó.

Trong trường hợp này, tôi nghĩ có lẽ chìa khóa là cách bạn tạo hình học của mình. Nếu bạn đang làm một cái gì đó giống như tạo ra 8 vòng 16 điểm, có hiệu quả lặp xung quanh một vòng tròn trong vòng lặp bên ngoài và vòng lặp khác trong vòng lặp bên trong thì bạn có thể lặp lại u và v để có được ánh xạ. Bạn nhận được một số đa giác có kích thước bất thường và ánh xạ trở nên rắc rối ở các cực, nhưng khu vực xung quanh nơi khuôn mặt sẽ hoạt động khá tốt.

Nếu bạn muốn có kích thước bằng đa giác hơn và ánh xạ đáng tin cậy ở tất cả các khu vực, hãy bắt đầu với khối hình chữ nhật (ví dụ: lưới 8x8 quads trên mỗi bề mặt thay vì chỉ một) và ánh xạ tọa độ kết cấu trong bất kỳ có ý nghĩa. Hãy suy nghĩ về mạng lưới của một khối lập phương. Sau đó, biến khối lập phương thành hình cầu bằng cách làm việc vectơ từ trung tâm đến từng điểm và di chuyển điểm sao cho nó là bán kính của hình cầu từ tâm. Cuối cùng, biến hình cầu thành hình bầu dục bằng cách nhân rộng các trục khác nhau.

Các vấn đề liên quan