Một tập bản đồ kết cấu?


8

Khi tôi muốn sử dụng kết cấu atlasing, tôi có nên cố gắng đặt tất cả các họa tiết của mình vào một tập bản đồ không? Hoặc có những lúc tôi nên có nhiều kết cấu nhỏ hơn?

Câu trả lời:


7

Giống như nhiều thứ trong phần mềm, đó là một hành động cân bằng. Ít hoán đổi kết cấu là tốt, nhưng nhận được kết cấu quá lớn cũng có thể làm giảm hiệu suất. Ngoài ra, các tấm sprite với số lượng lớn các sprite có thể khó quản lý theo logic.

Để giúp quản lý các trang sprite lớn hơn, bạn nên tách các sprite của mình, sau đó nối chúng thành một trang sprite để sử dụng trong trò chơi của bạn. Bạn có thể sử dụng các công cụ (cả hai đều có tên rất thông minh) như:

Sử dụng các công cụ này sẽ cho phép bạn đảm bảo rằng các hình ảnh động thuộc về nhau kết thúc trên cùng một bảng sprite. Bằng cách đó, bạn không chuyển đổi giữa kết cấu giữa hoạt hình.

Thật không may, không có tiêu chuẩn chung cho kích thước kết cấu tối đa. Không chỉ vậy, nó còn thay đổi từ phần cứng đến phần cứng, không chỉ giữa các nền tảng đồ họa. Có những mức tối đa mà các nền tảng đồ họa có thể hỗ trợ, nhưng điều đó không có nghĩa là phần cứng hỗ trợ nó. Hãy chắc chắn tạo một kiểm tra với trò chơi của bạn để đảm bảo rằng bạn sẽ không tải một kết cấu quá lớn.


Tôi dự định làm một trò chơi đa nền tảng (chủ yếu là máy tính để bàn, mặc dù có thể là iOS). Bao nhiêu tôi nên mong đợi kích thước kết cấu tối đa thay đổi?
Aaron

1
Tôi không biết nhiều về những hạn chế di động. Đối với máy tính để bàn, nó thực sự phụ thuộc vào phạm vi phần cứng bạn muốn hỗ trợ. Tôi nghĩ rằng 2048x2048 là một con số từ trung bình đến cao mà hầu hết các máy tính để bàn sẽ hỗ trợ. Đối với iOS chủ đề này có vẻ đầy hứa hẹn.
MichaelHouse

Tại sao lại thêm một công cụ không cần thiết vào đường ống nội dung khi bạn có thể tạo các kết cấu cũng như thời gian chạy thông qua glTexSubImage?
API-Beast

Chưa kể rằng bạn có thể linh hoạt hơn theo cách đó bởi vì bạn có thể truy vấn kích thước kết cấu tối đa và không phải đoán.
API-Beast

4
(1) TexSubImage thường rất chậm khi chạy - bạn cần lựa chọn tham số rất cẩn thận; (2) bạn vẫn cần một phương pháp chọn nơi hình ảnh đi vào tập bản đồ mà TexSubImage sẽ không cung cấp cho bạn; (3) TexSubImage sẽ không giải quyết được vấn đề về tấm sprite nào để đặt (các) hình ảnh nào; (3) TexSubImage không cung cấp cho bạn khả năng truy vấn kích thước tối đa - glGet thực hiện và vẫn có thể được sử dụng ngay cả với một công cụ bên ngoài.
Maximus Minimus

5

Càng ít họa tiết càng tốt. Vì vậy, một trong những lớn sẽ là tốt nhất. Tuy nhiên, tùy thuộc vào nền tảng và ngôn ngữ của bạn, có giới hạn kích thước cho hình ảnh. Vì vậy, nếu 2048 x 2048 px là lớn nhất hình ảnh của bạn có thể và tập bản đồ kết cấu của bạn lớn hơn thế, tốt nhất là có hai tập nhỏ hơn.


3
+1 và - nếu bạn cần nhiều hơn một tập bản đồ - hãy đảm bảo rằng bạn nhóm các hình ảnh sẽ được sử dụng cùng một tập bản đồ, nếu không, mỗi lệnh gọi có thể cần phải chuyển từ tập bản đồ này sang tập bản đồ khác và toàn bộ bài tập sẽ đạt được bạn không có gì.
Maximus Minimus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.