Tôi muốn hỏi liệu có cách thực hành tốt nhất để cài đặt Effect
tham số trong XNA không. Hay nói cách khác, chính xác những gì xảy ra khi tôi gọi pass.Apply()
. Tôi có thể tưởng tượng nhiều kịch bản:
- Mỗi lần
Apply
được gọi, tất cả các tham số hiệu ứng được chuyển đến GPU và do đó nó không có ảnh hưởng thực sự đến tần suất tôi đặt tham số. - Mỗi lần
Apply
được gọi, chỉ các tham số được thiết lập lại được chuyển. Vì vậy, bộ nhớ đệm Các thao tác không thực sự đặt giá trị mới nên tránh. - Mỗi lần
Apply
được gọi, chỉ các tham số đã thay đổi được chuyển. Vì vậy, bộ nhớ đệm Các thao tác là vô ích. - Toàn bộ câu hỏi này là không có khởi động bởi vì không ai trong số các cách đề cập có bất kỳ tác động đáng chú ý nào đến hiệu suất trò chơi.
Vì vậy, câu hỏi cuối cùng: Có hữu ích khi thực hiện một số bộ đệm của hoạt động thiết lập như:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Cám ơn bạn với dự đoán.