WPF - Tìm Hiểu Về Đồ Họa 3D Trong WPF

WPF vượt trội hơn Winform về khoản Drawing, trong đó đặc biệt WPF hỗ trợ đồ họa rất tốt vì nó tương tác trực tiếp đến GPU. Hôm nay chúng ta sẽ hiểu cơ bản về các thành phần đi kèm phục vụ xử lý 3D trong WPF.

tuanphamdg 3d wpf

 I> Tổng Quan

Nội dung đồ họa 3-D trong WPF được gói gọn trong một phần tử là Viewport3D , nó được hiểu như một khung cửa mà ở đó các đối tượng 3-D được load lên và cho ta thấy lần lượt cáchình chiếu của đối tượng. Nếu là 2-D, Viewport3D được hiểu như là một Canvas, Grid, StackPanel...


Trong không gian 3-D chúng ta có hệ trục tọa độ gồm Oxyz, tâm O nằm ở vị trí trung tâm của Viewport3D trong khi tâm O trong không gian 2-D chúng ở góc TRÁI-TRÊN.

Ngoài ra một Camera là không thể thiếu trong khái niệm không gian 3-D. Camera mặc định được đặt trong Viewport3D ngay trên trục Oz+.

Sau Camera, Model3D là hết sức quan trọng vì đó chứa thứ mà bạn sẽ thấy, hiện nay WPF hỗ trợ một mô hình 3D hình học với tên gọi là GeometryModel3D.


  •  GeometryModel3D.Geometry thể hiện một đối tượng 3-D hoàn chỉnh là MeshGeometry3D; trong đó MeshGeometry3D chứa tập các Point3D, khi nối các điểm này lại ta có một mô hình 3-D.


  • GeometryModel3D.Material thể hiện vật liệu của MeshGeometry3D.

Phần làm cho mô hình 3-D trở nên thật hơn đó là ĐÈN bởi vì nó góp phần tạo ra hiệu ứng bóng, mờ, sáng-tối, độ phản chiếu, độ sâu...

Translation. giúp chúng ta có thể xoay khối mô hình 3-D trong không gian 3 chiều, translation có thể được thay đổi lúc RealTime để điều khiển như điều khiển một cánh tay Robot 3D.

Sau đây là cấu trúc một cửa sổ Viewport3D










































































II> Demo

Các bạn có thể tải về một số Demo để tham khảo tại đây, dùng chuột TRÁI hoặc chuột PHẢI để xoay đối tượng.

tuanpham 3d wpf
Ở bài viết sau tôi sẽ hướng dẫn các bạn cách để điều khiển một chú Robot như thế này

tuanphamdg 3d wpf phamtuan

tuanphamdg 3d wpf
Cảm ơn các bạn đã quan tâm, mọi thắc mắc xin để lại Comment


Phạm Tuân WPF


Chúc các bạn thành công!
PHẠM TUÂN