Du lịch là nhu cầu khá phổbiến hiện nay tại nhiều quốc gia, trong đó có Việt Nam,
nhưng thật khó khăn cho khách hàng trong việc lựa chọn địa điểm du lịch, nếu chỉthông
qua tranh ảnh, các tờrơi, quảng cáo thì chắc chắn sẽkhông được chính xác. Còn gì tiện
lợi hơn khi bạn có thể“xem” “tận mắt” những địa điểm mà bạn đang đắn đo, đểxem
mình thích nơi nào hơn khi mà bạn chẳng phải đến tận nơi, vẫn ngồi nhà, nhâm nhi cốc
café hay đang tán gẫu cùng bạn bè vềchuyến du lịch sắp tới. Tất cảnhững gì bạn cần làm
là một trình duyệt web và kết nối internet.
Nhưchúng ta đã biết, Google Maps Street View là một dịch vụkhá nổi tiếng trên
thếgiới hiện nay. Dịch vụnày cho phép người sửdụng “đi lại” trên đường phốtại một
nơi nào đó. “Đi lại” ở đây được hiểu theo nghĩa bạn có thểthấy được phong cảnh, đường
phốtại nơi bạn chọn, những cảnh này được chụp lại nên tính trung thực rất cao, bạn hoàn
toàn có thểyên tâm không phải lo nghĩrằng phong cảnh nơi sắp đến có làm bạn thất vọng
hay không.
Tuy nhiên, do hạn chếvềmặt quy mô, nên Google Maps Street View mới chỉthực
hiện được trên một sốthành phốtại một sốquốc gia. Còn tại Việt Nam thì sao? Nếu
Google đểmắt tới Việt Nam, thì may chăng chỉcó một sốthành phốlớn được đưa vào
CSDL của Google Maps. Vậy tại sao chúng ta không tựxây dựng một dịch vụtương tự
nhưvậy trên chính đất nước của mình?
49 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 1853 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu phát triển hệthống thửng hiệm cung cấp quang cảnh đường phố Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đinh Nhật Minh
NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG
THỬ NGHIỆM CUNG CẤP QUANG CẢNH
ĐƯỜNG PHỐ HÀ NỘI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đinh Nhật Minh
NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG
THỬ NGHIỆM CUNG CẤP QUANG CẢNH
ĐƯỜNG PHỐ HÀ NỘI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Nguyễn Ngọc Hóa
HÀ NỘI - 2009
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới Tiến sĩ Nguyễn Ngọc Hóa
(Bộ môn Công Nghệ Thông Tin - Trường Đại học Công Nghệ) đã chỉ bảo và hướng dẫn
tận tình cho em trong suốt quá trình thực hiện khoá luận này.
Em xin gửi lời cảm ơn và biết ơn sâu sắc tới các thầy, cô đã dạy dỗ em trong suốt 4
năm học tập tại trường Đại học Công Nghệ. Những kiến thức các thầy, cô dạy là vô cùng
quý báu và sẽ là hành trang để em vững bước vào đời.
Em cũng xin chân thành cảm ơn các anh, chị trong phòng Công nghệ phần mềm –
Trung tâm Công nghệ phần mềm – Tập đoàn Điện lực Việt Nam đã tạo điều kiện, giúp đỡ
về mặt kỹ thuật và động viên tinh thần cho em trong quá trình làm khoá luận.
Tôi xin gửi lời cảm ơn tới các bạn sinh viên trong lớp K50HTTT hiện nay và các
thành viên lớp K50CA trước đây, cùng bạn bè đã ủng hộ và khuyến khích tôi trong quá
trình nghiên cứu và làm khoá luận này.
Và cuối cùng, con xin gửi lời cảm ơn và lòng biết ơn tới bố, mẹ, anh chị, cảm ơn
những người thân yêu của tôi, đã nuôi nấng, dạy dỗ và luôn động viên, làm chỗ dựa tinh
thần cho tôi trong cuộc sống cũng như trong học tập và làm việc.
Xin chân thành cảm ơn!
Hà Nội, ngày 25 tháng 05 năm 2006
Sinh viên
Đinh Nhật Minh
Tóm tắt nội dung:
Tên đề tài của khóa luận là : Nghiên cứu phát triển hệ thống thử nghiệm cung cấp
quang cảnh đường phố Hà Nội.
Cung cấp quang cảnh đường phố Hà Nội có nghĩa là cho phép người sử dụng quan
sát được các hướng xung quanh tại một điểm, tạo cho người sử dụng cảm giác đang đứng
tại vị trí đó, đồng thời cho phép họ di chuyển tới các vị trí khác.
Nội dung khóa luận này sẽ giới thiệu về các dịch vụ nổi tiếng trên thế giới trong
lĩnh vực tương tự, nêu lên phương pháp và công cụ mà họ sử dụng, từ đó nêu lên tính cần
thiết cũng như khả thi của đề tài.
Khóa luận sẽ nêu lên bài toán cần thực hiện, phân tích bài toán thành các module
nhỏ, đồng thời đưa ra cơ sở lý thuyết, phương hướng thực hiện cho từng module.
Cuối cùng sẽ là chương trình demo sản phẩm, các hạn chế và phương hướng phát
triển.
Mục lục
Danh sách các hình vẽ được sử dụng trong khóa luận ............................... 3
LỜI MỞ ĐẦU ................................................................................................ 4
Chương 1. Tìm hiểu về các dịch vụ cung cấp quang cảnh đường phố ...... 5
1.1. Google Maps Street View ....................................................................................5
1.2. MapJack ...............................................................................................................7
Chương 2. Một số lý thuyết về đồ họa 3D.................................................... 9
2.1. Giới thiệu ..............................................................................................................9
2.2. Một số kiến thức cơ bản ......................................................................................9
2.3. Lý thuyết về phép chiếu ....................................................................................13
2.3.1. Phép chiếu song song..................................................................................13
2.3.2. Phép chiếu phối cảnh .................................................................................17
2.4. 3D trong Flash....................................................................................................21
Chương 3. Bài toán ...................................................................................... 23
3.1. Mục tiêu của bài toán ........................................................................................23
3.2. Phân tích bài toán ..............................................................................................23
3.3. Các lý thuyết liên quan......................................................................................23
3.3.1. Adobe Flash.................................................................................................23
3.3.2. Flex builder 3.0 ...........................................................................................26
3.3.3. Action Script ...............................................................................................28
3.3.4. Open Sources ..............................................................................................28
3.4. Giải quyết bài toán.............................................................................................28
3.4.1. Xây dựng chương trình cho phép người sử dụng nhìn xung quanh 360° .29
3.4.2. Xử lý việc cho phép người sử dụng dịch chuyển tới các vị trí khác nhau .31
3.4.3. Cách lưu trữ Cơ sơ dữ liệu ........................................................................35
3.5. Thực nghiệm.......................................................................................................36
3.5.1. Môi trường thực nghiệm............................................................................36
3.5.2. Công cụ thực nghiệm .................................................................................37
3.5.3. Quá trình thực nghiệm...............................................................................37
3.6. Kết quả thực nghiệm .........................................................................................40
Chương 4. Kết luận...................................................................................... 43
4.1. Đóng góp của mình ............................................................................................43
4.2. Hướng phát triển của đề tài ..............................................................................43
Tài liệu tham khảo....................................................................................... 45
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 3 GVHD: TS. Nguyễn Ngọc Hóa
Danh sách các hình vẽ được sử dụng trong khóa luận
Hình 1. Hình ảnh quang cảnh đường phố của Google Maps Street View ......................... 6
Hình 2. Hình ảnh quang cảnh đường phố của MapJack.................................................... 7
Hình 3. Giao diện công cụ của MapJack............................................................................ 8
Hình 4. Ba phép chiếu trực giao của một đối tượng ........................................................ 14
Hình 5. Phép chiếu cùng kích thước của một đối tượng lên bề mặt quan sát ................. 15
Hình 6. Phép chiếu vuông góc lên mặt phẳng chiếu ....................................................... 16
Hình 7. Phép chiếu phối cảnh của trên mặt phẳng chiếu. .............................................. 18
Hình 8. Các quang cảnh phối cảnh của một hình lập phương......................................... 20
Hình 9. Adobe Flash CS3 ................................................................................................. 24
Hình 10. Adobe Flex Builder 3.0 ...................................................................................... 26
Hình 11. Action Script 3.0 Logo ....................................................................................... 28
Hình 12. Ảnh 360° ............................................................................................................ 29
Hình 13. Ảnh mặt cầu ....................................................................................................... 31
Hình 13. Cách định hướng của Google Maps Street View............................................... 32
Hình 14. Ảnh mờ của ảnh mặt cầu ................................................................................... 34
Hình 15. Ảnh mờ của 6 mặt khối lập phương................................................................... 34
Hình 16. Ảnh 6 mặt tại một điểm...................................................................................... 41
Hình 17. Kết quả thu được................................................................................................ 41
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 4 GVHD: TS. Nguyễn Ngọc Hóa
LỜI MỞ ĐẦU
Du lịch là nhu cầu khá phổ biến hiện nay tại nhiều quốc gia, trong đó có Việt Nam,
nhưng thật khó khăn cho khách hàng trong việc lựa chọn địa điểm du lịch, nếu chỉ thông
qua tranh ảnh, các tờ rơi, quảng cáo thì chắc chắn sẽ không được chính xác. Còn gì tiện
lợi hơn khi bạn có thể “xem” “tận mắt” những địa điểm mà bạn đang đắn đo, để xem
mình thích nơi nào hơn khi mà bạn chẳng phải đến tận nơi, vẫn ngồi nhà, nhâm nhi cốc
café hay đang tán gẫu cùng bạn bè về chuyến du lịch sắp tới. Tất cả những gì bạn cần làm
là một trình duyệt web và kết nối internet.
Như chúng ta đã biết, Google Maps Street View là một dịch vụ khá nổi tiếng trên
thế giới hiện nay. Dịch vụ này cho phép người sử dụng “đi lại” trên đường phố tại một
nơi nào đó. “Đi lại” ở đây được hiểu theo nghĩa bạn có thể thấy được phong cảnh, đường
phố tại nơi bạn chọn, những cảnh này được chụp lại nên tính trung thực rất cao, bạn hoàn
toàn có thể yên tâm không phải lo nghĩ rằng phong cảnh nơi sắp đến có làm bạn thất vọng
hay không.
Tuy nhiên, do hạn chế về mặt quy mô, nên Google Maps Street View mới chỉ thực
hiện được trên một số thành phố tại một số quốc gia. Còn tại Việt Nam thì sao? Nếu
Google để mắt tới Việt Nam, thì may chăng chỉ có một số thành phố lớn được đưa vào
CSDL của Google Maps. Vậy tại sao chúng ta không tự xây dựng một dịch vụ tương tự
như vậy trên chính đất nước của mình?
Với thực trạng đó, mục tiêu chính của khoá luận tốt nghiệp của tôi được tập trung
xoay quanh tìm câu trả lời cho câu hỏi trên. Trong quá trình nghiên cứu, tìm hiểu và thực
hiện khóa luận này, những kết quả bước đầu thu được chứng minh được việc cung cấp
dịch vụ quang cảnh đường phố là hoàn toàn có thể thực hiện được với những công nghệ
và kỹ thuật hiện nay của Việt Nam.
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 5 GVHD: TS. Nguyễn Ngọc Hóa
Chương 1. Tìm hiểu về các dịch vụ cung cấp quang cảnh
đường phố
Như chúng ta đã biết, Google Maps Street View và MapJack là 2 dịch vụ khá nổi
tiếng trong lĩnh vực này, để có thể nắm rõ hơn về mục tiêu của khóa luận, trước hết chúng
ta hày cùng tìm hiểu đôi nét về 2 dịch vụ này
1.1. Google Maps Street View
Google Maps (thời gian trước còn gọi là Google Local) là một dịch vụ ứng dụng
và công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google và hỗ trợ
nhiều dịch vụ dựa vào bản đồ như Google Ride Finder và một có thể dùng để nhúng vào
các trang web của bên thứ ba thông qua Google Maps API (Application Programing
Interface). Nó cho phép thấy bản đồ đường xá, đường đi cho xe đạp, cho người đi bộ
(những đường đi ngắn hơn 6.2 dặm) và xe hơi, và những địa điểm kinh doanh trong khu
vực cũng như khắp nơi trên thế giới.
Google Maps trước đây chỉ có ảnh chụp từ vệ tinh, với độ phóng to, thu nhỏ mà
vẫn cho hình ảnh khá rõ, qua đó ta có thể biết được tuyến đường này, khu vực này ở đâu,
đi từ vị trí này đến vị trí kia bằng cách nào.
Cách đây không lâu, Google Maps đưa thêm một tính năng mới với tên: Google
Maps Street View. Tính năng này cho phép người sử dụng nhìn cận cảnh đường phố, nhà
cửa, tạo cho người sử dụng cảm giác như chính họ đang đi trên con đường đó vậy. Có thể
nói đây là một bước đột phá của Google.
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 6 GVHD: TS. Nguyễn Ngọc Hóa
Hình 1. Hình ảnh quang cảnh đường phố của Google Maps Street View
Google Maps Street View cho phép người sử dụng nhìn xung quanh bằng cách sử
dụng chuột hoặc các button phía trên bên trái của bản đồ, cũng có thể dùng 2 phím mũi
tên sang trái, sang phải để nhìn 2 bên cùng với 2 phím page up và page down để nhìn bên
trên và bên dưới.
Người sử dụng có thể di chuyển đến địa điểm khác, có các cách sau:
- Sử dụng 2 phím mũi tên lên và xuống để di chuyển đến điểm liền kề trước hoặc
sau trên bản đồ
- Sử dụng mũi tên có trên màn hình để di chuyển đến điểm liền kề trước hoặc sau
trên bản đồ
- Di chuyển hình người trên bản đồ nhỏ (mini map) tới vị trí cần đến (không giới
hạn là chỉ đi đến những điểm ngay kề với vị trí hiện tại)
Chế độ zoom của Google Maps Street View khá tốt, cho ảnh có độ nét chấp nhận
được khi phóng to. Tương tự như khi nhìn xung quanh, có thể sử dụng chuột giữa (wheel
mouse) hoặc 2 button + và – có trên bản đồ.
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 7 GVHD: TS. Nguyễn Ngọc Hóa
Ngoài ra, trên mini map có thể zoom in hoặc zoom out để hiển thị chi tiết cũng như
thu gọn đường phố.
1.2. MapJack
MapJack là một công ty, làm việc giống như Google. Mục đích của MapJack, theo
như những gì được nói trên trang chủ của mình là cung cấp một bức tranh toàn cảnh về
các thành phố trên toàn thế giới. Nhưng hiện tại MapJack mới chỉ cung cấp quang cảnh
cho một số thành phố của Thái Lan.
Hình 2. Hình ảnh quang cảnh đường phố của MapJack
Các tiện ích của MapJack về cơ bản giống như Google Maps Street View, tuy
nhiên cũng có nhưng điểm khác nhau, đó là:
- Để thay đổi góc nhìn, người sử dụng có thể sử dụng chuột hoặc 2 phím mũi tên
sang trái và sang phải
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 8 GVHD: TS. Nguyễn Ngọc Hóa
- Để thay đổi vị trí quan sát, có thể dùng 2 phím mũi tên lên và xuống, hoặc 2 button
góc dưới bên trái của bản đồ lớn.
- Chế độ zoom tương tự như của Google Maps Street View, đó là dùng chuột giữa
(wheel mouse) hoặc 2 button zoom in và zoom out góc dưới bên trái của bản đồ
lớn. Ngoài ra MapJack còn đưa thêm 2 phím Z và X tương ứng với zoom in và
zoom out.
- Bản đồ nhỏ (mini map) đặt ở vị trí bên dưới bản đồ lớn, kích thước lớn hơn so với
mini map của Google Maps Street View, do đó dễ xác định vị trí hơn.
- Khác với Google Maps Street View sử dụng một đường thẳng làm trục chính,
MapJack sử dụng các điểm xanh (Blue Dots) làm trục cho con đường của mình,
người dùng có thể thay đổi vị trí đến bất cứ điểm xanh nào mà họ nhìn thấy bằng
cách click chuột trái vào điểm đó, trong khi Google Maps Street View chỉ cho
phép tiến đên điểm ngay sau đó.
- MapJack cung cấp thêm các công cụ (tools) tùy chọn cho người sử dụng như độ
sắc nét (Sharpness), chất lượng ảnh (Quality), hay đổi độ rộng góc nhìn của mắt
(Prjection), ánh sáng (Brightness)…
Hình 3. Giao diện công cụ của MapJack
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 9 GVHD: TS. Nguyễn Ngọc Hóa
Chương 2. Một số lý thuyết về đồ họa 3D
2.1. Giới thiệu
Đồ họa máy tính 3D là công việc tạo ra nghệ thuật đồ họa, nghĩa là tạo ra với sự
trợ giúp của máy tính kĩ thuật số và các phần mềm 3D. Nói chung thuật ngữ này có thể
hiểu như là tiến trình tạo ra đồ họa, hoặc việc nghiên cứu công nghệ đồ họa máy tính 3D
và liên quan tới công nghệ đó.
Đồ họa máy tính 3D khác với đồ họa máy tính 2D vì nó có chiều thứ 3 và các dữ
liệu hình học được máy tính lưu trữ với mục đính để tính toán và tạo lại các hình ảnh 2D
của đối tượng mô phỏng 3D. Đôi khi các hình ảnh này sẽ hiển thị sau theo dạng được tạo
ảnh trước, và đôi khi chúng được tạo trong quá trình trực tiếp luôn (real-time).
Nói chung nghệ thuật của các mô hình 3D, được tạo bởi các dữ liệu hình học được
máy tính lưu trữ gần giống với các hình ảnh vật thể đó ở bên ngoài thực tế hay các ảnh
chụp, trong khi đồ họa 2D là phần tính để tô lại giống thì đồ họa 3D là vẽ lại theo các
công thức toán học để tạo ra các hình ảnh 2D về vật thể 3D đó.
Trong các phần mềm đồ họa máy tính sự phân biệt này thi thoảng là mờ nhạt; một
số ứng dụng 2D sử dụng công nghệ 3D để tạo các hiệu ứng như ánh sáng, trong khi một
số phần mềm 3D lại sử dụng công nghệ 2D để tạo 3D ảo.
2.2. Một số kiến thức cơ bản
Đồ hoạ 3D cho phép mô phỏng không gian 3 chiều trong máy tính. Về mặt toán
học, đây là một công việc cực kỳ phức tạp, tuy nhiên hầu hết những công việc phức tạp
này được thực hiện bởi phần cứng chuyên dụng với tốc độ rất cao.
Để biểu diễn không gian 3 chiều, người ta dùng hệ trục toạ độ Đề các, với các trục
toạ độ vuông góc với nhau. Mỗi điểm trong không gian được đặc trưng bởi 3 toạ độ: x, y
và z. Một đoạn thẳng được biểu diễn bằng 2 điểm và một tam giác được biểu diễn bằng 3
điểm trong không gian.
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 10 GVHD: TS. Nguyễn Ngọc Hóa
Để biểu diễn một hình khối phức tạp, người ta chia bề mặt thành các tam giác và
biểu diễn toàn bộ vật thể thông qua tập các đỉnh của các tam giác. Số lượng tam giác dùng
để biểu diễn một vật thể càng nhiều thì vật thể trông càng mượt nhưng tốc độ tạo hình sẽ
càng chậm, do đó cần phải cân bằng giữa chất lượng và hiệu năng.
Sau khi các vật thể được mô hình hoá, công việc tiếp theo là phải thể hiện được các
vật thể trong không gian lên màn hình máy tính. Mỗi công nghệ có một cách làm riêng,
tuy nhiên về mặt ý tưởng, có thể tóm tắt qua các bước sau:
Bước 1: Transform
Transform là thao tác biến đổi vật thể trong không gian 3 chiều. Có ba phép biến
đổi cơ bản là phép tịnh tiến (translation), phép xoay (rotation) và phép tỉ lệ (scaling).
Bước 2: View
Ngầm định, hướng nhìn là dọc theo trục z, đầu hướng lên theo trục y. Chúng ta có
thể thay đổi được hướng nhìn bằng cách cung cấp toạ độ mắt, điểm nhìn vào và hướng
đầu.
Bước 3: Projection
Một khi đã có hướng nhìn các vật thể trong không gian, phép chiếu (projection) sẽ
quyết định hình ảnh vật thể được thể hiện trên màn hình. Phép chiếu là một thao tác để
biến đổi từ toạ độ trong không gian 3 chiều thành toạ độ trong không gian hai chiều để có
thể thể hiện trên màn hình máy tính.
Có 2 phép chiếu thường dùng là phép chiếu song song với mặt phẳng chiếu vuông
góc với tia chiếu và phép chiếu phối cảnh với mặt phẳng chiếu vuông góc với tia chiếu.
Phép chiếu song song thường được dùng trong các ứng dụng kỹ thuật, hay tạo giao diện
người dùng còn phép chiếu phối cảnh thường được dùng trong các trò chơi hoặc các ứng
dụng mô phỏng. Cụ thể về 2 phép chiếu này sẽ được nói rõ hơn trong phần sau.
Như vậy để có thể thể hiện hình ảnh cơ bản của vật thể trên mặt phẳng chiếu, thì
một điểm trong không gian phải được biến đổi qua 3 bước với 3 phép nhân ma trận. Tuy
Nghiên cứu phát triển hệ thống thử nghiệm cung cấp quang cảnh đường phố Hà Nội
SVTH: Đinh Nhật Minh 11 GVHD: TS. Nguyễn Ngọc Hóa
nhiên trên thực tế tích của 3 ma trận được tính sẵn, khi đó toạ độ điểm trong không gian
chỉ phải nhân một lần với ma trận tích mà thôi.
Ba bước trên đều được xử lý bởi ma trận (Matrix3D).
Sau ba bước trên chúng ta mới chỉ thu được toạ độ các đỉnh được chiếu lên mặt
phẳng chiếu, chưa thấy được vật thể. Cách đơn giản nhất là nối các đỉnh với nhau, khi đó
chúng ta sẽ thu được một mạng các đoạn thẳng biểu diễn vật thể (wireframe).
Để có thể thu được hình ảnh thật hơn, các bước sau tiếp tục được áp dụng:
Bước 4: Depth test
Với hình ảnh thu được ở trên, chúng ta không biểu diễn được việc các vật thể ở
gần che lấp các vật thể ở xa. Có 2 kỹ thuật để thực hiện được việc này, đó là dùng z-
buffer và dùng cây BSP.