Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
4,2 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ DIỆP HỒNG MÔ PHỎNG TÍNH TRONG SUỐT CỦA LỬA THEO NHIỆT ĐỘ TRONG THỰC TẠI ẢO Chuyên ngành: Khoa học máy tính Mã số: 60-48-01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: PGS TS Đỗ Năng Toàn ii Thái Nguyên - 2013 i LỜI CAM ĐOAN Tôi xin cam đoan toàn bộ nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình thức nào và cũng không chép từ bất kỳ một công trình nghiên cứu nào Nội dung bản luận văn này là tự sưu tầm, nghiên cứu và sắp xếp cho phù hợp với yêu cầu nội dung của đề tài Tất cả phần mã nguồn của chương trình đều tự thiết kế và xây dựng, đó có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất bản công khai và miễn phí mạng internet Nếu sai xin hoàn toàn chịu trách nhiệm Thái Nguyên, ngày 15 tháng năm 2013 Người cam đoan Nguyễn Thị Diệp Hồng ii LỜI CẢM ƠN Em xin chân thành cảm ơn sự giúp đỡ quý báu, sự hướng dẫn và chỉ bảo tận tình của thầy giáo PGS TS Đỗ Năng Toàn, Viện Công nghệ Thông tin thuộc Viện Khoa học và Công nghệ Việt Nam là cán bộ trực tiếp hướng dẫn khoa học cho em quá trình thực hiện luận văn này Em xin chân thành cảm ơn các thầy giáo, cô giáo của Viện Công nghệ Thông tin và trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên đã nhiệt tình giúp đỡ, tạo điều kiện tốt nhất cho em suốt quá trình học tập tại trường Em xin chân thành cảm ơn các anh, chị cán bộ của phòng VRLAB Viện Công nghệ Thông tin và các bạn học viên lớp cao học khóa 10B Trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên đã giúp đỡ, chia sẻ những kinh nghiệm học tập, nghiên cứu suốt khóa học Thái Nguyên, ngày 15 tháng năm 2013 Tác giả luận văn Nguyễn Thị Diệp Hồng iii MỤC LỤC LỜI CẢM ƠN II CHƯƠNG 1: KHÁI QUÁT THỰC TẠI ẢO VÀ CÁC YẾU TỐ TRONG MÔ PHỎNG LỬA .3 CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM 43 KẾT LUẬN 48 TÀI LIỆU THAM KHẢO 50 DANH MỤC CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN LUẬN VĂN .51 DANH MỤC CÁC HÌNH VẼ LỜI CẢM ƠN II CHƯƠNG 1: KHÁI QUÁT THỰC TẠI ẢO VÀ CÁC YẾU TỐ TRONG MÔ PHỎNG LỬA .3 CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM 43 KẾT LUẬN 48 TÀI LIỆU THAM KHẢO 50 DANH MỤC CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN LUẬN VĂN .51 iv DANH MỤC CÔNG THỨC Công thức (1) 19 Công thức (2) 19 Công thức (3) 20 Công thức (4) 20 Công thức (5) 22 Công thức (6) 23 Công thức (7) 32 Công thức (8) 32 Công thức (9) 32 MỞ ĐẦU Ngày nay, Công nghệ Thông tin đã được ứng dụng mạnh mẽ hầu hết các lĩnh vực đời sống Những ứng dụng của nó ngày càng phong phú, đa dạng và thiết thực Từ các lĩnh vực khoa học bản đến các lĩnh vực kinh tế, kỹ thuật cho đến các lĩnh vực giải trí, du lịch ; không lĩnh vực nào không có ứng dụng thiết thực và hiệu quả của Công nghệ thông tin Sự phát triển không ngừng của máy tính đã làm cho một số lĩnh vực khó phát triển trước đã phát triển và đạt được những thành tựu đáng kể là: các hệ chuyên gia, các hệ thống xử lý thời gian thực, và lĩnh vực được phát triển mạnh mẽ thế giới đó là công nghệ mô phỏng Nhìn chung, mô phỏng ở Việt Nam vẫn là một khái niệm khá mới mẻ thế giới hiện ứng dụng của công nghệ mô phỏng các lĩnh vực của đời sống là khá đa dạng và phong phú, nó dường đã trở thành một phần không thể thiếu cuộc sống Vì vậy, nghiên cứu và phát triển công nghệ mô phỏng sẽ trở thành một hướng nghiên cứu mang nhiều hứa hẹn Việc tái tạo các hiện tượng, sự vật thế giới thực máy tính có rất nhiều tác dụng Cụ thể các lĩnh vực giải trí nó sẽ giúp chúng ta tạo các trò chơi sống động, gần gũi với người tạo nên sức lôi cuốn mạnh mẽ Trong xây dựng nó giúp tạo nên các mô hình thực tại ảo cho chúng ta cái nhìn trực quan, chính xác về các công trình để từ đó đưa những quyết định, sáng kiến thiết kế về công trình xây dựng Trong giáo dục thì những thí nghiệm, những ví dụ minh họa trực quan được mô tả sát thực máy tính giúp cho người học hứng thú, kiến thức được thể hiện rõ ràng hơn, đầy đủ Ngoài thì còn rất rất nhiều các ứng dụng các lĩnh vực khác y học, kinh tế, kỹ thuật “Thực tại ảo” là lĩnh vực nhằm mô phỏng thế giới thực của người vào máy tính, mà đó người có thể tương tác, cảm nhận thế giới thực Việc mô phỏng thế giới thực là rất cần thiết và có rất nhiều sự vật hiện tượng cần được mô phỏng; đó, lửa là một chất liệu phổ biến và quan trọng Lửa được xem là một những phát minh quan trọng của nhân loại, nó đánh dấu bước tiến quan trọng văn minh loài người Nhờ có lửa người được ăn thức ăn chín tiệt trùng làm giảm bớt nguy bệnh tật và chết chóc, cũng nhờ có lửa người mới biết đốt nóng kim loại để rèn, đúc cải tạo công cụ lao động giúp tăng suất lao động Trong thực tế có rất nhiều ngành liên quan trực tiếp đến lửa như: giải trí, giáo dục, khoa học kỹ thuật, phòng cháy chữa cháy, mà việc tương tác trực tiếp với lửa là rất khó khăn, vì vậy việc mô phỏng các hiệu ứng của lửa là rất cần thiết để đưa cái nhìn trực quan, chính xác về các trạng thái, tính chất của lửa tương tác với các đối tượng khác hay chính các đối tượng lửa với Vì tính ứng dụng rất rộng rãi của lửa vậy nên đã chọn đề tài MÔ PHỎNG TÍNH TRONG SUỐT CỦA LỬA THEO NHIỆT ĐỘ TRONG THỰC TẠI ẢO để làm luận văn tốt nghiệp Luận văn tốt nghiệp gồm có chương Chương 1: Khái quát thực tại ảo và yếu tố mô phỏng lửa Chương 2: Trình bày yếu tố suốt mô phỏng lửa Trong đó đưa sở lý thuyết để xây dựng kỹ thuật mô phỏng lửa và độ suốt của lửa phụ thuộc theo nhiệt độ Chương 3: Chương trình thử nghiệm Giới thiệu bài toán và một số kết quả đạt được của chương trình Chương 1: KHÁI QUÁT THỰC TẠI ẢO VÀ CÁC YẾU TỐ TRONG MÔ PHỎNG LỬA 1.1 Khái quát về thực tại ảo 1.1.1 Định ngĩa VR - Virtual Reality - Thực Tại Ảo thuật ngữ xuất khoảng đầu thập kỷ 90, Mỹ châu Âu VR (Thực tại ảo) trở thành công nghệ mũi nhọn nhờ khả ứng dụng rộng rãi lĩnh vực (nghiên cứu công nghiệp, giáo dục đào tạo thương mại, giải trí, ) tiềm kinh tế, tính lưỡng dụng (trong dân dụng, quân sự) Thuật ngữ "Virtual Reality" - thực ảo - đưa Jaron Lanier (người sáng lập công ty VPL Research, Redwood California, công ty cung cấp sản phẩm cho môi trường ảo, virtual environment) Hiện nay, có nhiều định nghĩa thực ảo, định nghĩa chấp nhận rộng rãi C Burdea P Coiffet hiểu VR tương đối xác sau “VR- Thực Tế Ảo hệ thống giao diện cấp cao Người sử dụng Máy tính Hệ thống mô vật tượng theo thời gian thực có tương tác với người sử dụng qua tổng hợp kênh cảm giác Đó ngũ giác gồm: thị giác, thính giác, xúc giác, khứu giác, vị giác”[6] 1.1.2 Các đặc điểm chính của thực tại ảo Tương tác (Interactive): Thực tại ảo (VR) hệ thống mô đồ họa máy tính sử dụng để tạo giới "như thật" Hơn nữa, giới "nhân tạo" không tĩnh tại, mà lại phản ứng, thay đổi theo ý muốn (tín hiệu vào) người sử dụng (nhờ hành động, lời nói, ) Người sử dụng tương tác với mô hình ảo, tương tác mô từ thao tác với đối tượng thực Điều xác định đặc tính thực tại ảo, tương tác thời gian thực (real-time interactivity) Thời gian thực có nghĩa máy tính có khả nhận biết tín hiệu vào người sử dụng thay đổi giới ảo Người sử dụng nhìn thấy vật thay đổi hình theo ý muốn họ bị thu hút mô Điều nhận thấy quan sát trẻ nhỏ chơi video game Đắm chìm (Immersion): Các phương pháp hiển thị có độ phân giải tốc độ cao lôi người sử dụng tạo cảm giác thực tế Khả thu hút thực tại ảo góp phần lớn vào cảm giác đắm chìm, cảm giác trở thành phần hành động hình mà người sử dụng trải nghiệm Nhưng thực tại ảo đẩy cảm giác "thật" nhờ tác động lên tất kênh cảm giác người Trong thực tế, người dùng nhìn thấy đối tượng đồ họa 3D nổi, điều khiển (xoay, di chuyển, ) đối tượng hình (như game), mà sờ cảm thấy chúng có thật Ngoài khả nhìn (thị giác), nghe (thính giác), sờ (xúc giác), nhiều nghiên cứu nghiên cứu để tạo cảm giác khác ngửi (khứu giác), nếm (vị giác) Tuy nhiên thực tại ảo cảm giác sử dụng đến Tưởng tượng (Imagination): Ngoài đặc tính thực tại ảo Tương tác Đắm chìm mà nhiều người biết Thì thực tại ảo còn có đặc tính thứ mà người để ý tới Thực tại ảo không hệ thống tương tác Người- Máy tính, mà ứng dụng liên quan tới việc giải vấn đề thật kỹ thuật, y học, quân sự, Các ứng dụng nhà phát triển thực tại ảo thiết kế, điều phụ thuộc nhiều vào khả “tưởng tượng” người Do coi thực tại ảo tổng hợp yếu tố: Tương tác- Đắm chìm- Tưởng tượng, (3 chữ “I” tiếng Anh: Interactive- Immersion- Imagination) 37 // channel image for(int y = 0; y < image->height; y++) { for(int x = 0; x < image->width; x++) { // Assign values of original image to new image for(int j = 0; j < 3; j++) { pixels[4 * (y * image->width + x) + j] = image->pixels[3 * (y * image->width + x) + j]; } // Assign RED value of alpha image to the 4th value of // new image pixels[4 * (y * image->width + x) + 3] = alphaChannel->pixels[3 * (y * image->width + x)]; } } return pixels; } Sau thực thuật toán này, ta có ảnh với màu sắc ảnh gốc, thêm vào số độ suốt cho pixel ảnh alpha channel Hình ảnh hạt lửa ban đầu xây dựng theo cách này, màu sắc hình dạng hạt lửa phụ thuộc vào hai ảnh chọn làm ảnh gốc alpha channel Hình ảnh tổng hợp tham gia vào chuyển động biến đổi riêng hạt cho ta cảm giác màu sắc độ suốt lửa Màu sắc lửa theo nhiệt độ • Màu đỏ Vẫn nhìn thấy: 525 °C (980 °F) Tối: 700 °C (1,300 °F) Đỏ tối: 800 °C (1,500 °F) 38 • • Đỏ vừa: 900 °C (1,700 °F) Đỏ sáng: 1,000 °C (1,800 °F) Màu cam Sậm: 1,100 °C (2,000 °F) Sáng: 1,200 °C (2,200 °F) Màu trắng Hơi trắng: 1,300 °C (2,400 °F) Sáng: 1,400 °C (2,600 °F) Sáng lóa: 1,500 °C (2,700 °F) Hình 2.16 Tạo Particle System mô lửa từ hạt cộng thêm Alpha Channel 2.2.4 Các phương thức Particle System mô lửa Một particle system có phương thức để khởi tạo cho hạt cho particle system Nhìn chung phương thức khởi tạo cho particle system mô lửa tương tự particle system khác Nhiệm vụ truyền thông số cần thiết cho particle system hoạt động Các tham số phải tính toán lựa chọn cẩn thận để mang lại hiệu mô tốt Như trình bày trên, thông số truyền vào 39 cho hạt gán ngẫu nhiên quanh giá trị trung bình khoảng biến thiên cố định 2.2.4.1 Phương thức khởi tạo hạt InitialParticle(particle){ _position = MeanInitialPosition + varPosition*Random(MinP,MaxP); _velocity = MeanInitialVelocity + varVelocity*Random(MinV,MaxV); _size = MeanInitialSize + varSize*Random(MinS,MaxS); _lifeTime = MeanInitialLifeTime + varTime*Random(MinT,MaxT); _alpha = MeanInitialAlpha + varAlpha*Random(MinA,MaxA); } Trong đó: MeanInitialPosition: Vị trí khởi varPosition: Khoảng biến thiên tạo trung bình MeanInitialVelocity: Vận tốc khởi vị trí khởi tạo varVelocity: Khoảng biến thiên tạo trung bình MeanInitialSize: Kích thước khởi vận tốc khởi tạo varSize: Khoảng biến thiên tạo trung bình MeanInitialLifeTime: Thời gian kích thước khởi tạo varTime: Khoảng biến thiên sống khởi tạo trung bình MeanInitialAlpha: Độ suốt thời gian sống khởi tạo varAlpha: Khoảng biến thiên khởi tạo particle trung bình độ suốt khởi tạo Random(): Hàm chọn ngẫu nhiên giá trị khoảng MinX: Giá trị nhỏ khoảng MaxX: Giá trị lớn khoảng 2.2.4.2 Phương thức khởi tạo cho particle system InitialParticleSystem(){ For each particle in fireParticle Initialize (particle) 40 camera = cameraPosition; viewport = viewportPosition; } Trong phương thức này, ta khởi tạo tham số cho khung nhìn, quan trọng khởi tạo cho tập hạt particle system Số lượng hạt khởi tạo định mật độ hạt lửa Cốt lõi particle system phương thức điều khiển hoạt động hạt Trong mô lửa, phương thức định hình dáng, màu sắc chuyển động chung lửa Trong môi trường không trọng lượng, lửa có dạng hình cầu.Tuy nhiên, mặt đất tác dụng trọng lực tượng đối lưu khí quyển, lửa xuất phát từ điểm hay vùng nhỏ có xu hướng bốc lên cao bóp vào ta thường thấy hình ảnh nến Hình 2.17 Hình ảnh nến cháy Để mô hình dạng lửa, vector vận tốc hạt lửa thay đổi hướng liên tục để quỹ đạo hạt lửa tạo có hình dạng vòng cung 41 Hình 2.18 Sự thay đổi hướng vecto vận tốc Phương trình sau cho phép thay đổi hướng vận tốc cho hạt lửa dạng đơn giản: _velocity.x() -= deltaX; _velocity.Z() -= deltaZ; Sau khoảng thời gian định, thành phần theo trục Ox Oz bị trừ lượng deltaX deltaZ tương ứng Lượng trừ tính toán cho hết thời gian sống, vector chiếu vector vận tốc lên mặt phẳng Oxz phương khác hướng với hình chiếu lên mặt Oxz vecto vận tốc khởi tạo Phương thức cập nhật trạng thái cho hạt thủ tục gọi gọi lại suốt trình hoạt động particle system Một hạt hết thời gian sống, khởi tạo lại để trở thành hạt mới, trì liên tục lửa 42 2.2.4.3 Phương thức cập nhật trạng thái cho hạt cụ thể sau: Update() { foreach particle in fireParticle _position += _velocity; _size *= sizeChangeRate; _alpha *= alphaChangeRate; _velocity.x() -= deltaX; _velocity.Z() -= deltaZ; _lifeTime -= deltaTime; if(_lifeTime