Thuật toán ROAM sử dụng hai hàng đợi: các hàng đợi ưu tiên chứa đựng tất cả các tam giác khả phân và khả hợp, được sắp xếp theo thứ tự của giá trị ưu tiên. Các hàng đợi ưu tiên được quản lý cùng với các thao tác mà thuật toán ROAM thực hiện, điều này cho phép thuật toán có thể trực tiếp đạt được số lượng tam giác cho trước: có thể chỉ ra rằng trong một khung hình nào đó thì nên gồm có, ví dụ, 3000 tam giác. Sau đó thuật toán sẽ thực hiện phép phân chia và kết hợp các tam giác cho đến khi lưới tam giác đạt đến số tam giác là 3000 tam giác. Phụ thuộc vào các hàng đợi ưu tiên, mỗi thao tác phân chia hay kết hợp là tối ưu mang tính cục bộ, cho kết quả là một lưới tam giác tối ưu với bất kỳ số lượng tam giác nào.
Một vài năm trở lại đây, mục đích quản lý số lượng tam giác cố định là để bảo đảm một ứng dụng có thể chạy ở một tốc độ hiển thị cố định, từ đó nhu cầu xử lý từ khung hình này đến khung hình khác gần như là như nhau đối với số tam giác không đổi. Tuy nhiên phần cứng đồ họa ngày càng mạnh và đặc biệt là khả năng phần cứng hổ trợ xử lý các phép biến đổi và chiếu sáng, nên có thể loại bỏđược nhu cầu quản lý số lượng tam giác cốđịnh để có được tốc độ hiển thị không đổi. Các phần cứng đồ họa hiện đại có thể dễ dàng đương đầu với cả ngàn tam giác mà tốc độ hiển thị hầu như không bị ảnh hưởng.
Từ khi tốc độ hiển thị ngày càng không phụ thuộc vào số lượng tam giác thì các hàng đợi ưu tiên đã được sắp xếp không còn là điều kiện tiên quyết cho quá trình lập lưới tam giác cho địa hình. Thay vào đó thuật toán sẽ sử dụng 4 hàng đợi LIFO có thời gian thêm vào và xóa đi không thay đổi.
• SplitBelow – chứa tất cả tam giác khả phân có giá trị ưu tiên bé hơn giá trịưu tiên đích.
• SplitAbove – chứa tất cả tam giác khả phân có giá trịưu tiên lớn hơn giá trịưu tiên đích.
KHOA CNTT –
ĐH KHTN
- 48 -
• MergeBelow – chứa tất cả tam giác khả hợp có giá trị ưu tiên bé hơn giá trịưu tiên đích.
• MergeAbove – chứa tất cả tam giác khả hợp có giá trị ưu tiên lớn hơn giá trịưu tiên đích.