2013-02-26 36 views
7

Tôi đang cố gắng tạo một loại đối tượng 3D cụ thể trong ba.js. Tôi muốn ví dụ một khối lập phương trong chế độ wireframe (vì vậy chỉ các cạnh được hiển thị). Nhưng tôi muốn các cạnh phía sau bị rạn nứt. Minh họa: illustrationkhung hình ba.js chỉ có hình dạng với các cạnh ẩn như các đường đứt nét

Tôi không biết điều này có khả thi với ba.js hay không hoặc tôi có nên thử trực tiếp với webgl hay không. Tôi có nên sử dụng THREE.Mesh trong wireframe hoặc THREE.Line với LineDashedMaterial hoặc có thể cả hai trên đầu trang của nhau?

Trả lời

4

Tôi đã xoay xở để làm điều đó. Bạn cần tạo ba đối tượng.

đối tượng 1: đối tượng 3d rắn (Ý tôi là những gương mặt không phải là cạnh)

2 đối tượng: tất cả các cạnh nhưng tan

đối tượng thứ 3: tất cả các cạnh nhưng bình thường (không tan)

Đối với đối tượng thứ nhất, hãy đặt tài liệu với color: false, side: THREE.DoubleSide, depthTest: true.

Vật liệu đối tượng thứ hai: color: (whatever you like), depthTest: false.

Vật liệu đối tượng thứ ba: color: (whatever you like), depthTest: true.

Tôi cũng đặt tất cả tài liệu với polygonOffset: true, polygonOffsetFactor: 1, polygonOffsetUnits: 1 để loại bỏ z-fighting.

4

Đây là một ý tưởng thực sự tuyệt vời. Tôi đã thực hiện câu trả lời của bạn như mô tả ở trên tại địa chỉ:

http://stemkoski.github.com/Three.js/Dashed-3D.html

trong trường hợp ai muốn nhìn thấy nó trong hành động.

+0

điều này dường như không hoạt động nữa. Nếu tôi hiểu chính xác, các cạnh "hiển thị" phải là các cạnh duy nhất được hiển thị (dưới dạng đường liền nét) và các cạnh sẽ được che phủ nếu vật liệu của hình khối được hiển thị phải được hiển thị dưới dạng đường đứt nét. Đúng không? Trong ví dụ của bạn, tôi thấy một khối lập phương vững chắc, với cả đường đứt nét và liền nét; tuy nhiên, tôi chỉ có thể nhìn thấy mặt trước vì khuôn mặt chắc chắn. Đã có điều gì đó thay đổi với ba.js? Hoặc thực hiện điều này như dự định? Với câu hỏi OPs, tôi cho rằng ví dụ này không hoạt động (nữa). – dylnmc

+0

Ngoài ra, sau khi xem qua một số bản trình diễn của bạn, tôi cũng nhận thấy rằng ví dụ sửa đổi bề mặt phân mục là ... lẻ. Từ các ảnh chụp màn hình, tôi cho rằng những thứ này hoạt động cùng một lúc. Nó có thể là một cái gì đó với ba.js mà chagned? – dylnmc

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