Như một bài tập học tập, tôi đã viết một công cụ kết xuất hoãn lại. Bây giờ tôi muốn thêm một biểu đồ cảnh vào công cụ này nhưng tôi hơi khó hiểu làm thế nào để làm điều này.
Trên một công cụ bình thường (công cụ kết xuất chuyển tiếp) tôi sẽ chỉ thêm tất cả các mục (Tất cả triển khai IDrawable và IUpdateAble) vào biểu đồ cảnh của mình, trước tiên di chuyển theo chiều rộng của biểu đồ cảnh và gọi Draw () ở mọi nơi.
Tuy nhiên, trong một công cụ kết xuất hoãn lại, tôi phải tách các lệnh gọi. Đầu tiên tôi phải vẽ hình học, sau đó là các bóng đổ và sau đó là đèn (tất cả cho các mục tiêu kết xuất khác nhau), trước khi tôi kết hợp tất cả chúng. Vì vậy, trong trường hợp này, tôi không thể đi qua biểu đồ cảnh và chỉ cần gọi vẽ. Cách tôi nhìn thấy tôi phải di chuyển trên toàn bộ biểu đồ cảnh 3 lần, kiểm tra loại vật thể đó phải được vẽ hoặc tôi phải tạo 3 biểu đồ cảnh riêng biệt được kết nối với nhau. Cả hai giải pháp này có vẻ kém, tôi muốn xử lý các đối tượng cảnh trong suốt hơn.
Một giải pháp khác mà tôi nghĩ là di chuyển qua biểu đồ cảnh như bình thường và thêm các mục vào 3 danh sách riêng biệt, tách hình học, đổ bóng và đèn, sau đó lặp lại các danh sách này để vẽ chính xác, điều này tốt hơn, và nó có tốt hơn không? khôn ngoan để sao chép 3 danh sách mỗi khung?