2010-11-01 40 views
5

Cách hiệu quả nhất để xác định các đỉnh được hiển thị từ một quan điểm cụ thể là gì?Xác định các đỉnh có thể nhìn thấy trong OpenGL

Tôi có một cảnh bao gồm một số mô hình 3D. Tôi muốn đính kèm một định danh cho mỗi đỉnh (ModelID, VertexID) sau đó tạo ra hình ảnh 2D từ các quan điểm khác nhau và cho mỗi hình ảnh tạo ra một danh sách các định danh đỉnh có thể nhìn thấy (về cơ bản này là cho một ứng dụng xử lý hình ảnh). Đầu tiên tôi nghĩ để thực hiện một sản phẩm dấu chấm giữa một đỉnh bình thường và camera xem vector để tìm ra nếu đỉnh là đối diện với máy ảnh hay không, tuy nhiên nếu mô hình được occluded bởi một đối tượng thử nghiệm này sẽ không hoạt động.

Cảm ơn trước

+0

Sẽ gluProject là những gì bạn đang tìm kiếm? Ánh xạ đối tượng phối hợp với các tọa độ cửa sổ? – Jim

+0

Bạn nhắm mục tiêu phiên bản OpenGL nào? Luôn bao gồm thông tin này. Ngoài ra, bạn cần phải biết những đỉnh nào vượt qua bài kiểm tra, hay bạn chỉ cần đếm? –

+0

Tôi đang nhắm mục tiêu hồ sơ lõi OpenGL 3.1. Câu trả lời được cung cấp là tất cả những gì tôi cần, cảm ơn. – tat0

Trả lời

3
  1. Disable tất cả các ánh sáng/texturing
  2. Render hình học của bạn (GL_TRIANGLES) để cư Z-buffer
  3. Render hình học của bạn một lần nữa (GL_POINTS), chọn màu RGB khác nhau cho mỗi đỉnh, ánh xạ tới ID mô hình/đỉnh của bạn
  4. Đọc lại bộ đệm khung và quét tìm các màu bạn đã sử dụng trước đó, ánh xạ ngược lại ID mô hình/đỉnh của bạn.

Không phải rất nhanh, nhưng nó sẽ hoạt động.

+0

Tuyệt vời, đó là một mẹo tốt và hoạt động tốt. Tốc độ không phải là rất quan trọng trong trường hợp này. Cảm ơn bạn đã giúp đỡ. – tat0

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