2015-10-24 13 views
11

Tôi đang sử dụng thư viện OpenGL Rajawali3D để hiển thị các mô hình của mình. Những gì tôi muốn biết là làm thế nào tôi có thể tải một kết cấu từ máy chủ của tôi dựa trên người dùng đã đăng nhập? Tôi đã tìm kiếm trên internet để cố gắng tìm ra điều này trong nhiều tháng mà không thành công. Tôi tìm thấy trang web này giải thích làm thế nào để tải một kết cấu từ một nguồn không phải địa phương, nhưng khi tôi đã thử nó, nó đã không làm việc với Rajawali. Bất kỳ đề xuất hoặc ví dụ sẽ được nhiều đánh giá cao.Kết nối Android OpenGL từ nguồn không phải địa phương bằng Rajawali3D?

Dưới đây là các trang web tôi đã cố gắng sử dụng: texture from web

+0

Bạn sẽ có thể tải về một kết cấu như bất kỳ ứng dụng sẽ tải xuống một image.I đầu tiên sẽ bắt đầu bằng cách cố gắng tải kết cấu/hình ảnh về bộ nhớ cục bộ trước khi chuyển đổi nó thành một bitmap. Có những ví dụ về việc tải họa tiết từ Bitmap trong https://github.com/Rajawali/RajawaliExamples –

Trả lời

2

Tôi không quen thuộc với Rajawali, tuy nhiên như tôi chỉ cần kiểm tra nó ra, có vẻ như khá dễ dàng để tải một kết cấu từ xa và áp dụng nó vào một mô hình.

Tôi cho rằng bạn đã tải mô hình 3D của mình và có thể hiển thị mô hình đó tốt. Nếu vậy, bạn nên thực hiện các bước cơ bản sau đây (áp dụng chung cho tất cả các ứng dụng mô hình 3D):

  1. Chuẩn bị kết cấu
  2. Chuẩn bị nguyên liệu
  3. Áp dụng nguyên liệu đến một mô hình

Có một lớp được gọi là Texture ở Rajawali, tạo ra một đối tượng kết cấu từ một hình ảnh bitmap. Vì vậy, trước tiên bạn nên tải xuống hình ảnh đó từ máy chủ của bạn. Quá trình tải xuống nằm ngoài khái niệm Rajawali, vì vậy bạn có thể hoàn thành quá trình này qua nhiều thư viện hiện có.

Sau khi bạn tải xuống xong hình ảnh, bạn có thể cấp nó vào lớp Texture.

Texture mytexture = new Texture("texture", /*address to the downloaded image*/); 

Sau đó, bạn nên thêm nó vào một tài liệu

try { 
    material.addTexture(mytexture); 

} catch (ATexture.TextureException error){ 
    Log.d(TAG, "Error Occurred"); 
} 

Bây giờ, bạn có thể áp dụng tài liệu này sang một mô hình

model.setMaterial(material); 
+1

Cảm ơn bạn rất nhiều! Tôi đã cố gắng tìm ra điều này trong nhiều tháng. Bạn là một người tiết kiệm cuộc sống !! –

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