2014-06-07 16 views
6

Tôi biết rằng trên thiết bị di động, kết cấu lớn nhất bạn có thể hiển thị trong một bản vẽ khác nhau: đôi khi chỉ là 1024x1024 - các thời điểm khác 2048x2048 v.v.Có kích thước kết cấu libGDX tối đa cho máy tính để bàn không?

Trường hợp cho trò chơi trên máy tính là gì? Tôi đang sử dụng OpenGL 2.0.

Tôi định vẽ một hình nền đơn có thể lớn tới 5000x5000. Tôi đoán rằng TexturePacker không phải là khá hữu ích trong kịch bản này, bởi vì tôi không thực sự cần một tập bản đồ kể từ khi tôi chỉ cố gắng để làm cho một sprite duy nhất.

Có, tôi vừa kiểm tra 5000x5000 và nó hoạt động tốt. Chỉ cần tự hỏi nếu có một giới hạn thực tế để xem xét. Có lẽ nó khác với một máy tính khác?

Trả lời

8

Kích thước họa tiết tối đa là một chức năng của OpenGL, để lại kích thước cho trình điều khiển thiết bị của thẻ video (trong giới hạn).

Bạn có thể kiểm tra tại thời gian chạy để xem giới hạn được báo cáo là gì (mặc dù xem Confusion with GL_MAX_TEXTURE_SIZE để tránh một số cảnh báo).

Để tìm hiểu nhiều báo cáo phần cứng trong thực tế, có một số trang web thu thập cơ sở dữ liệu kết quả từ người dùng (chủ yếu liên quan đến hiệu suất điểm chuẩn), thường thu thập dữ liệu như kích thước kết cấu tối đa. (Ví dụ: gfxbench.com hoặc http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)

Tôi nghĩ rằng trên một máy tính để bàn hiện đại, GPU 5000x5000 sẽ nằm trong giới hạn được hỗ trợ.

11

Ngoài những gì P.T. cho biết, tôi muốn cung cấp mã cho điều đó (trong libGDX).

IntBuffer intBuffer = BufferUtils.newIntBuffer(16); 
Gdx.gl20.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, intBuffer); 
System.out.println(intBuffer.get()); 

Trên hệ thống máy tính để bàn của tôi kết quả này trong 4096, có nghĩa là kích thước tối đa được hỗ trợ là 4096x4096. Hệ thống của tôi không phải là cũ mặc dù. Bạn có lẽ không nên giả định rằng 5000x5000 có sẵn trên tất cả các hệ thống máy tính để bàn. Thông thường bạn không cần kết cấu lớn đến mức không phải tất cả GPU đều hỗ trợ. Bạn luôn có thể chia nhỏ nó thành nhiều họa tiết và vẽ nó trên nhiều quads cạnh nhau để giải quyết vấn đề đó.

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