Tôi đang cố gắng vẽ một hình tứ giác ở dạng 2D (trong SharpDX, nhưng về cơ bản đó là XNA). Nhưng hiệu chỉnh kết cấu không hoạt động và tôi chỉ nhận được một hình tứ giác có kết cấu.
Tôi đang sử dụng BasicEffect
để kết xuất nó.
BasicTextureEffect = new BasicEffect(Device)
{
Alpha = 1.0f,
TextureEnabled = true,
LightingEnabled = false,
VertexColorEnabled = true,
Projection = Matrix.OrthoOffCenterLH(0.0f, ScreenWidth, ScreenHeight, 0.0f, 0.0f, 1.0f),
};
Đây là một game isometric 2D. Tôi có tọa độ giả 3D trong thế giới đẳng cự (đó là một cái bóng trên mặt đất) được chuyển đổi thành không gian màn hình, và sau đó được hiển thị bằng cách sử dụng DrawQuad
.
Tôi có cần phải thiết lập chế độ xem (hoặc trình chiếu không?) Bằng cách nào đó, để 3D thực (mô phỏng máy ảnh đẳng cự), và sau đó vẽ hình tứ giác này theo tọa độ 3D thay thế? Cuối cùng thì thế nào? Hoặc có cách nào để sửa lỗi này trong 2D?
Cập nhật:
Tôi đã tải lên ảnh chụp màn hình một phần thực tế (Hình A), để bạn thấy nó gần giống nhau. (Tôi cắt nó một chút, nhưng nó đi vào góc)
Hình A Hình B
Cập nhật 2:
Bây giờ tôi có thể xác nhận rằng SharpDX (XNA) đơn giản BasicEffect
thực hiện điều này chỉ với ánh xạ UW đơn giản (4 góc của hình vuông) và đơn giản DrawQuad
. Tôi đã tạm thời thay đổi nó để bao gồm điểm trung tâm và tôi vẽ 4 hình tam giác thay vì 2 (Hình B), điều này làm giảm hiệu quả đến mức tối thiểu, nhưng nó vẫn ở đó. Nó vẫn cần được giải quyết, vì tôi sẽ không chỉ sử dụng nó trên bóng tối.