2013-09-05 34 views
6

Tôi đã xây dựng một ứng dụng 3D nhỏ bằng ThreeJS và WebGL. Tôi cố tình không chọn chuyển đổi mô hình thành các tệp .json tương thích với ThreeJS, thay vào đó bắt đầu xây dựng một nhà nhập khẩu. Nó hoạt động, nhưng tôi cũng đã lên kế hoạch để ứng dụng quyết định loại mô hình nào đã được tải bằng cách sử dụng cả phần mở rộng tệp và kiểu MIME, sau này nếu kiểu đầu tiên không xác định.MIME Loại OBJ của Wavefront và MTL

Tôi đã đọc ở đâu đó rằng loại MIME được cho là application/wavefront-obj, điều này thật kỳ lạ vì cũng có cây model, nhưng dù sao cũng được. Mặc dù duyệt trang web IANA cho loại tệp này không mang lại kết quả nào.

Tôi có thiếu gì đó không?

+1

Tham chiếu duy nhất tôi có thể tìm thấy bằng cách nhanh chóng googling là [Wikipedia] (http://en.wikipedia.org/wiki/Wavefront_.obj_file) mà nói 'text/plain'. – tripleee

+0

@tripleee Quá mơ hồ cho nhu cầu của tôi, nhưng ít nhất một xác nhận tôi không bỏ lỡ điều gì đó hiển nhiên ... Tôi đoán tôi sẽ dính vào giả MIME. Dù sao cũng cảm ơn. – Kiruse

Trả lời

5

According to wikipedia, đó là "văn bản/đồng bằng" cho .obj.

Tôi đoán đó là "text/plain" cho các tập tin .mtl là tốt, kể từ khi có văn bản trong họ và vì nó "là một tiêu chuẩn được xác định bởi đầu sóng Technologies cho file ASCII".

+0

Tôi biết nó là một tiêu chuẩn cho các tập tin ASCII, nhưng nó chỉ có vẻ quá ... mơ hồ. Hệ thống (tự động) mà tôi đã xây dựng quyết định cách phân tích tài nguyên dựa trên các yếu tố khác nhau, một trong số đó là loại MIME. Vì nó là một ASCII, không có bất kỳ số phép thuật nào mà tôi có thể dựa vào. Ngoài ra, việc xử lý tệp trong JavaScript không phải là tất cả những thứ tiện dụng ngay từ đầu ... Tôi sẽ cung cấp thêm thời gian này, nhờ cố gắng thu hút nhiều sự chú ý hơn đến điều này. Khi tiền thưởng hết hạn, tôi sẽ đánh dấu câu trả lời này là câu trả lời. – Kiruse

+0

Điều chắc chắn. Tôi chạy vào bản thân mình bằng cách tạo các tệp .obj của gzip máy chủ được tìm nạp thông qua ajax (để tiết kiệm thời gian và băng thông). Cần biết mime-type để chỉ định nó trong cấu hình nginx. – kangax

+0

Và rõ ràng 'text/plain' không đủ cụ thể, giống như trường hợp của tôi. Mặc dù tôi không nghĩ rằng có bất cứ điều gì khác hơn thế, có lẽ ai đó có một giải pháp khác. Trường hợp của tôi là hài lòng bởi chỉ đơn giản bằng cách sử dụng một MIME giả, nhưng tôi không chắc chắn về nginx. – Kiruse

0

Tôi đã rất ngạc nhiên khi thấy không có gì trong số IANA database đối với các tệp obj wavefront, xem xét rằng chúng đã bị đá xung quanh Internet trong ít nhất 20 năm. Tôi rất vui khi được cộng tác với những người khác trong việc thiết lập một loại MIME chính thức.

Cho đến lúc đó, theo mục 3.3 của RFC 6838, "Cây cá nhân hoặc Vanity", bạn có thể sử dụng loại phương tiện của riêng mình cho điều này, chẳng hạn như text/prs.wavefront-obj, ngoài text/plain. Bằng cách đó, bạn có thể sử dụng tiêu đề HTTP Accept để thương lượng loại MIME thích hợp trong phản hồi của bạn.

+0

Tôi rất ngạc nhiên khi thấy khó có thể tìm thấy một cái gì đó trong lĩnh vực này nói chung. Tôi cho rằng .obj hơi lỗi thời, nhưng sự đơn giản của nó chắc chắn tìm thấy ứng dụng ở đâu đó. – Kiruse

+0

Tôi không nghĩ rằng obj là lỗi thời. Đây là một định dạng "phổ biến" có thể sử dụng được cho hình học giữa nhiều ứng dụng. – legalize

+0

Có thực sự. Đó là lý do tại sao tôi đặc biệt nói hơi lỗi thời. Các tính năng duy nhất tôi nghĩ là thiếu là động lực và vật lý. Nó được thiết kế cho các mô hình tĩnh chỉ vì vậy nó có giá trị cho hình ảnh động rõ ràng là khá thấp. Về vấn đề này một cách tự nhiên người ta sẽ ủng hộ một định dạng khác. Các khía cạnh vật lý đi tay trong tay với trước đó. – Kiruse

1

Bạn cần cập nhật web.config của bạn và thêm tham chiếu đến obj loại tập tin

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <staticContent>   
      <remove fileExtension=".obj" /> 
      <mimeMap fileExtension=".obj" mimeType="text/plain" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 
0

Sử dụng MIME gõ "application/đối tượng" cho các tập tin obj. Nó hoạt động trong Chrome, Safari và FireFox.

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