Trong Three.js, tôi có một đối tượng 3D, nơi tôi đang sử dụng các mặt cắt cắt cục bộ để chỉ hiển thị một phần của đối tượng.Cách vẽ các bề mặt bị cắt thành các đối tượng cứng
Tuy nhiên, vì đối tượng 3D là "rỗng" (nghĩa là chỉ bề mặt bên ngoài được hiển thị), khi chúng ta cắt bất kỳ thứ gì trên bề mặt đó, chúng ta có thể "nhìn vào" đối tượng. Dưới đây là ví dụ về ý tôi, clipping a corner off a cube. Lưu ý cách chúng tôi có thể thấy mặt sau ở góc đối diện.
Tôi muốn cung cấp cho sự xuất hiện của đối tượng được rắn. Dựa trên this issue, có vẻ như cách tốt nhất để thực hiện điều này là tạo ra một bề mặt trên vùng bị cắt bớt, do đó đóng nắp và làm cho đối tượng xuất hiện giống như nó không rỗng.
Câu hỏi của tôi là, làm cách nào để biết nơi để xây dựng bề mặt này? Three.js có cung cấp một cách để có được một danh sách các đỉnh giao nhau giữa một mặt phẳng và bất kỳ bề mặt tùy ý nào không? Nếu không, làm thế nào tôi có thể tiếp cận vấn đề này bản thân mình?
Tôi tìm thấy this question, nhưng tác giả không mô tả cách họ giải quyết vấn đề tôi đang gặp phải ở đây.
Bạn có thể cung cấp liên kết trực tiếp đến trường hợp sử dụng thực tế thể hiện ràng buộc thực sự của bạn không? Các kết cấu có liên quan không? Bạn đang sử dụng tài liệu nào? Bạn sẵn sàng thỏa hiệp gì? – WestLangley
@WestLangley Chắc chắn, [ví dụ đơn giản] này (http://threejs.org/examples/#webgl_clipping) thể hiện sự cố của tôi. Tôi muốn che đậy các lỗ để bạn không thể nhìn thấy bên trong hình dạng. Tôi không sử dụng kết cấu, chỉ là một MeshPhongMaterial cơ bản. Hiệu suất là ưu tiên của tôi, vì vậy nếu điều này chỉ có thể được thực hiện theo cách thực hiện trên các hình dạng đơn giản, thì hãy là như vậy. Nhưng tôi muốn biết nếu nó có thể làm điều này một cách chung chung có thể được áp dụng cho bất kỳ hình dạng nào. –