Chúng ta hãy tưởng tượng một lưới lưới lớn, giống như một lưới chúng ta có thể sử dụng cho địa hình. Chúng tôi sẽ hiển thị n
hình tam giác có giá trị của nó, bao gồm một nửa màn hình 1080p của chúng tôi, trong một cuộc gọi rút thăm duy nhất.
Nếu chúng ta hàn tất cả các đỉnh của chúng ta và không có đường nối làm mịn / kết cấu, thì mỗi tam giác có 3 đỉnh và mỗi đỉnh được chia cho 6 tam giác, vì vậy chúng ta có n/2
các đỉnh.
Để kết xuất này, chúng ta cần phải:
Chạy shader đỉnh ít nhất một n/2
lần
("ít nhất" bởi vì bộ nhớ cache của chúng tôi cho kết quả đỉnh chỉ quá lớn. Đôi khi, cuối cùng chúng tôi sẽ gỡ bỏ một đỉnh mà chúng tôi đã chuyển đổi, sau đó cần một lần nữa cho một tam giác sau đó chia sẻ nó và do đó chạy lại trình tạo bóng đỉnh trên nó Vì vậy, chúng tôi không nhận được nhiều tiền tiết kiệm như trên giấy)
Clip & cull n
tam giác.
Rasterize & nội suy trên ít nhất 1920x1080 / 2 hoặc khoảng 1 triệu pixel của bộ đệm khung (vì chúng tôi đã nói rằng địa hình của chúng tôi chiếm khoảng một nửa màn hình).
( "ít nhất" vì các GPU cách làm việc trên quads của pixel , một số mảnh vỡ ngay bên ngoài các cạnh của đa giác vẫn được rasterized nhưng sau đó đeo mặt nạ, có nghĩa là chúng tôi xử lý các mảnh vỡ hai lần. Đối với một gập ghềnh lưới chúng ta cũng sẽ nhận được mức vẽ quá bất cứ nơi nào lưới đôi khi chính nó, nếu chúng ta không đủ may mắn để vẽ đa giác phía trước vào bộ đệm sâu trước)
Chạy shader mảnh cho tất cả những người> = 1 triệu mảnh.
Trộn ~ 1 triệu kết quả vào bộ đệm khung & độ sâu.
Được rồi, bây giờ chúng ta hãy mở ra tất cả các đỉnh của chúng ta để bây giờ chúng ta có 3n
các đỉnh để kết xuất, gấp sáu lần so với trước đây! Các bước của chúng tôi là ...
Chạy shader đỉnh 3n
lần.
(Không có dấu sao do bộ đệm vì mỗi đỉnh chỉ được sử dụng một lần, mặc dù điều này có nghĩa là bộ đệm không thể cứu chúng tôi bất cứ lúc nào)
Clip & cull n
tam giác.
Rasterize & nội suy trên ít nhất 1920x1080 / 2 hoặc khoảng 1 triệu pixel của bộ đệm khung.
Chạy shader mảnh cho tất cả những người> = 1 triệu mảnh.
Trộn ~ 1 triệu kết quả vào bộ đệm khung & độ sâu.
... Đợi đã, mọi bước trừ bước đầu tiên đều giống nhau! Vì vậy, hầu hết các công việc mà GPU thực hiện trong lệnh gọi rút thăm thông thường không liên quan trực tiếp đến số lượng đỉnh được sử dụng. Số lượng bảo hiểm màn hình, rút tiền và tổng số tam giác chiếm nhiều hơn chi phí.
Điều đó không có nghĩa là đỉnh hoàn toàn miễn phí. Nếu bạn chia sẻ các đỉnh khi bạn có thể nhận được một số tiền tiết kiệm khiêm tốn từ bộ nhớ đệm, đặc biệt là nếu các trình tạo bóng đỉnh của bạn phức tạp hoặc đường ống đỉnh của phần cứng của bạn yếu (như trường hợp trên một số máy chơi game cũ). Nhưng với số lượng đỉnh theo dõi tỷ lệ thuận với số lượng tam giác cộng hoặc trừ đi một yếu tố không đổi, thường sẽ không thú vị bằng một thước đo chi phí lưới tổng thể.