Tại một số thời điểm của tôi tại e-on, tôi đã duy trì dòng sản phẩm của Vue .
Tôi có thể nói với bạn, nó sẽ đưa bạn nhiều ngày, toàn thời gian.
Trừ khi bạn tìm thấy một số thư viện hoặc cách siêu thông minh, cách cổ điển là lấy tọa độ của chuột trong cửa sổ khi bạn nhấp, nếu đó là tọa độ tương đối của chế độ xem, bạn chỉ cần chia x và y theo chiều rộng và chiều cao, bạn lấy một vectơ (float 2d) trong phạm vi [0,1]. trừ (0,5,0,5) cho nó để vào phạm vi [-0,5, 0,5] cho cả x và y.
Sau đó, bạn tạo một tia từ tọa độ này bằng cách sử dụng x và y đơn giản là tia x và y, và bạn đặt z thành khoảng cách tiêu cự. đôi khi tỷ lệ khung hình là một cơn đau ở mông trong hoạt động này. Một chút lỗi và thử nghiệm sẽ giúp bạn sửa chữa.
Sau đó, bạn cần kiểm tra giao điểm với các phần tử gizmos của mình, hoặc bạn có một lưới mà bạn đã tạo hoặc được mô hình hóa trong máy xay hoặc DCC khác, hoặc các phần lưới có thể khớp nối với nhau ... Chỉ cần sử dụng phần lưới đó như một tia / truy vấn tam giác.
Hoặc nếu bạn có nó, tia / hình trụ, tia / hình cầu tùy theo ngoại hình và bộ phận của bạn.
Bạn cần có các thói quen giao nhau có khả năng áp dụng ma trận biến đổi trên nguyên thủy mà chúng va chạm . Vô cùng quan trọng vì gizmo của bạn sẽ dịch với đối tượng mà nó phục vụ để di chuyển, nó sẽ xoay và nó sẽ mở rộng theo tỷ lệ nghịch của khoảng cách với máy ảnh, để nó giữ kích thước chiếu cố định trên màn hình.
Sau đó, bạn có phần tương tác, dễ nhất là lấy điểm delta khi chuột là sự kiện "chuột xuống" đầu tiên và vị trí "Chuột di chuyển" hiện tại, ở dạng 2D thuần túy và sử dụng delta này làm chuyển động trục hiện tại trong không gian thế giới, nhân với một số k
mà bạn quyết định theo kinh nghiệm. Theo các đơn vị nội bộ của bạn so với pixel so với tỷ lệ thu phóng hiện tại, v.v.
Bước cuối cùng chỉ đơn giản là áp dụng ma trận của gizmo cho đối tượng bị thao túng, để nó tuân theo nó.
Tôi nói với bạn đó là một hành trình trong địa ngục để thực hiện, và nếu bạn đang thực hiện nó trong thời gian rảnh rỗi thì hơn một tuần. Nhiều tuần nếu bạn hoàn toàn khám phá lĩnh vực này. Hơn một tháng nếu cuối tuần của bạn bận rộn với các hoạt động khác :)
Tôi khuyên bạn nên tải xuống Embree 2.0 từ intel để thực hiện truy vấn giao điểm tia / tam giác cho bạn, vì vậy bạn không phải lo lắng về việc mã hóa điều đó. Hoặc bạn có thể sao chép / dán và điều chỉnh mã không thương tiếc từ máy xay sinh tố ... Tôi nghĩ rằng họ đã chuyển sang giấy phép Apache? Nên có thể hợp pháp.