KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ MÔ PHỎNG NƯỚC
KHÁI QUÁT VỀ THỰC TẠI ẢO
Theo cách truyền thống, việc tương tác với máy tính được thực hiện thông qua các thiết bị nhƣ bàn phím, chuột hay joystick/trackball để cung cấp thông tin đầu vào và sử dụng khối hiển thị trực quan (VDU) để nhận thông tin đầu ra từ hệ thống Với sự ra đời của các hệ thống Thực tại ảo (Virtual Reality-VR), các phương thức giao tiếp mới được phát triển cho phép người sử dụng tương tác một cách tích cực hơn với máy tính
Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá các đối tượng trong không gian ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại để xây dựng một thế giới mô phỏng bằng máy tính – môi trường ảo (virtual environment) Trong thế giới ảo này, người sử dụng không còn được xem như người quan sát bên ngoài, mà đã thực sự trở thành một phần của hệ thống Một cách lý tưởng, người sử dụng có thể tự do chuyển động trong không gian ba chiều, tương tác với các vật thể ảo, quan sát và khảo cứu thế giới ảo ở những góc độ khác nhau về mặt không gian Ngược lại, môi trường ảo lại có những phản ứng tương ứng với mỗi hành động của người sử dụng, tác động vào các giác quan như thị giác, thính giác, xúc giác của người sử dụng trong thời gian thực và tuân theo những quy tắc vật lý rất tự nhiên, làm anh ta có cảm giác nhƣ đang tồn tại trong một thế giới thực
1.1.2 Sơ lƣợc lịch sử phát triển của thực tại ảo
Mặc dù Thực tại ảo đƣợc mô tả nhƣ một công nghệ mới mang tính cách mạng, nhưng ý tưởng về việc nhúng người sử dụng vào một môi trường nhân tạo không còn mới Thực tại ảo có thể đƣợc xem nhƣ một sự mở rộng của những ý tưởng đã ra đời khá lâu như hệ thống mô phỏng bay (flight simulation), rạp chiếu phim màn ảnh rộng (nhƣ Cinerama hay IMAX) Sử dụng các hệ thống như vậy, người dùng được quan sát hình ảnh trong một màn hình có trường nhìn rộng lớn cho họ cảm giác như đang tồn tại trong trường không gian đó
Sự ra đời của các máy điện toán mini và bài báo khoa học của Ivan Sutherland có tên “Màn hình tối tân” (Ultimate Display) vào năm 1965 đƣợc xem là hai bước đột phá lớn vào những năm 1960 cho công nghệ Thực tại ảo
Trong bài báo của mình, Sutherland đã tiên đoán sự phát triển của Thiết bị Hiển thị đội đầu (Head Mounted Display-HMD) đầu tiên, mà sau đó chính ông đã tạo ra một thiết bị nhƣ vậy, có tên là “Thanh kiếm của Damocles”
(The Sword of Damocles) Sutherland cũng nhận ra tiềm năng của máy điện toán trong việc tạo lập hình ảnh cho hệ thống mô phỏng bay, trong khi những hình ảnh này trước đó được xây dựng bằng video camera
Những ý tưởng này được hai nhà khoa học Mỹ ở NASA là Fisher và McGreevy kết hợp lại trong một dự án có tên là “trạm làm việc ảo” (visual workstation) vào năm 1984 Cũng từ đó NASA phát triển thiết bị Hiển thị đội đầu có tính thương mại đầu tiên, được gọi là màn hình môi trường trực quan
(visual environment display - VIVED), thiết kế dựa trên mẫu hình mặt nạ lặn với các màn hình quang học mà hình ảnh đƣợc cung cấp bởi hai thiết bị truyền hình cầm tay Sony Watchman Sự phát triển của thiết bị này đã thành công ngoài dự đoán, bởi NASA đã sản xuất đƣợc một thiết bị HMD có giá chấp nhận được trên thị trường, và như vậy ngành công nghiệp Thực tại ảo đã ra đời
1.1.3 Một số lĩnh vực thực tế ứng dụng thực tại ảo
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhƣng do nhiều lý do về mặt công nghệ (kéo theo chi phí cho nghiên cứu và phát triển), phải mất nhiều thời gian và nỗ lực để Thực tại ảo có đƣợc những thành tựu nhƣ ngày nay Hiện tại đây vẫn là lĩnh vực công nghệ mới mẻ và nhiều tiềm năng xét về khía cạnh ứng dụng Ở đây, báo cáo cố gắng đƣa ra những lĩnh vực ứng dụng chính có khuynh hướng phát triển mạnh mẽ nhất trong thời gian gần đây
- Kiến trúc và thiết bị công nghiệp
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là thiết kế kiến trúc Khả năng mô hình hoá thế giới thực của công nghệ Thực tại ảo dường như đáp ứng một cách tự nhiên mục tiêu của ngành thiết kế kiến trúc: đƣa ra mô hình trực quan nhất có thể về hình ảnh công trình kiến trúc mong muốn trong tương lai
Hình 1.1: Ứng dụng thực tại ảo trong thiết kế kiến trúc
Việc xây dựng các mô hình không gian kiến trúc bằng hình ảnh lập thể với đầy đủ mô tả trực quan về các hình khối kiến trúc, cách bố trí nội thất bên trong, thậm chí hoa văn hay màu của từng vật, cùng với khả năng cho phép khách hàng tự do tham quan, khảo sát khuôn viên của họ trong tương lai theo nhiều góc độ và vị trí khác nhau thực sự đem lại hiệu quả trực quan mang tính cách mạng trong lĩnh vực mang nhiều đặc điểm nghệ thuật này
Tương tự như trong kiến trúc, với các ngành sản xuất thiết bị mà trong đó công đoạn thiết kế đóng vai trò quan trọng nhƣ thiết kế động cơ, thiết kế ô tô, tàu biển, hay thậm chí tàu vũ trụ, hình dạng và cách bố trí các chi tiết không chỉ đơn thuần mang tính thẩm mỹ, tính kỹ thuật mà đôi khi còn ảnh hưởng tới sức sống của thiết bị xét về khía cạnh thương mại Khả năng mô hình hoá bằng hình ảnh lập thể của công nghệ Thực tại ảo cho phép người thiết kế thể hiện được một cách trực quan nhất ý tưởng thiết kế của mình, đánh giá cơ bản về hiệu năng của thiết bị dựa trên những thử nghiệm mô phỏng trên thiết bị ảo, từ đó có những hiệu chỉnh cần thiết trước khi thiết bị thực sự đƣợc sản xuất Điều này rõ ràng góp phần không nhỏ trong thành công của thiết bị công nghệ, giảm bớt những chi phí phát sinh
Hình 1.2: Ứng dụng công nghệ Thực tại ảo trong thiết kế thiết bị công nghệ Giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của các môi trường Thực tại ảo Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo khía cạnh lợi ích về tài chính Rất nhiều công ty đang sản xuất ra các trò chơi có sử dụng các nguyên lý Thực tại ảo Số lượng người bị cuốn hút theo các trò chơi nhƣ vậy, đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm năng thương mại to lớn của công nghệ Thực tại ảo trong lĩnh vực này
Hình 1.3: Ứng dụng thực tại ảo trong lĩnh vực giải trí
Hơn thế, ngành công nghiệp trò chơi điện tử có những ảnh hưởng to lớn tới lĩnh vực Thực tại ảo Nó tạo ra động lực cần thiết để thúc đẩy sự phát triển của rất nhiều phần cứng Thực tại ảo, chẳng hạn nhƣ card tăng tốc đồ hoạ (graphic accelerator cards) Nếu như chúng ta trở lại khoảng 10 năm về trước, thật khó có thể tìm thấy một card tăng tốc đồ hoạ có đủ năng lực tính toán cần thiết cho phép tạo ra các ứng dụng Thực tại ảo thời gian thực Tại thời điểm đó, những chiếc card nhƣ vậy trị giá hàng ngàn đô-la và chỉ đủ khả năng sinh 100.000 đa giác/giây ở mức độ phân giải trung bình Những thiết bị phần cứng khác nhƣ Găng tay dữ liệu (DataGloves) và Thiết bị hiển thị đội đầu (Head Mounted Displays-HMD) cũng chịu ảnh hưởng phần nào của công nghiệp giải trí Tóm lại, chúng ta có thể nói rằng các ứng dụng Thực tại ảo trong giải trí đã và đang đóng một vai trò quan trọng trong việc định hướng đi cho công nghiệp Thực tại ảo
Giáo dục và đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp những đặc tính làm cho bản thân nó có những tiềm năng vƣợt trội so với các công nghệ đa phương tiện truyền thống khác: cho người sử dụng cảm nhận sự hiện diện của mình trong môi trường do máy tính tạo ra bằng khả năng tương tác, tự trị (autonomy) của người dùng trong môi trường ảo, cũng như bằng những phản hồi tức thời, trực quan từ phía môi trường ảo tới các giác quan của người sử dụng Hơn thế nữa, công nghệ Thực tại ảo cho phép mô phỏng những môi trường nguy hiểm hay tốn kém như buồng lái máy bay, phòng thí nghiệm hoá chất v.v
Hình 1.4: Mô hình huấn luyện bay sử dụng công nghệ Thực tại ảo
MÔ PHỎNG NƯỚC TRONG THỰC TẠI ẢO
Có thể nói nước là thành phần không thể thiếu trong cuộc sống của mỗi chúng ta Nước phục vụ cho đời sống hàng ngày, phục vụ cho sản xuất, cuộc sống của con người gắn liền với nước… Nhưng để mô phỏng được nước không phải là điều đơn giản, việc tính toán, đo đạc các thông số của nước trong nhiều môi trường và điều kiện khác nhau tốn rất nhiều thời gian và công sức Sau đó, để có thể biểu diễn đƣợc những dữ liệu đó thành hình ảnh trên máy tính cần phải tìm ra những thuật toán, những phương pháp để xử lý kho dữ liệu đó Tiếp theo, phải phân tích thiết kế một hệ thống các công cụ trợ giúp cho việc lập trình tạo hiệu ứng nước, rồi mới tới khâu thiết kế ra những bản vẽ nước được thể hiện trên màn hình Cuối cùng, là khâu kết xuất
(Rendering) tạo ra sản phẩm thực sự
Ngoài ra, còn một lý do nữa để xếp mô phỏng nước có vị trí quan trọng trong lĩnh vực mô phỏng chính là tầm quan trọng không thể thiếu của hiệu ứng nước trong các hệ mô phỏng Hiệu ứng nước tạo ra cảm giác thật, lôi cuốn cho hệ vốn không phải là những hình ảnh thật, nó tạo ra sự hài hoà, nhẹ nhàng cho những chuyển động của đối tƣợng Việc thể hiện thành công hiệu ứng nước trong Thực tại ảo sẽ cho phép ta đi sâu vào thế giới ảo để tạo ra những giá trị thật cho cuộc sống con người
1.2.2 Một số hiệu ứng nước cơ bản
Mô phỏng nước có thể coi là một trong những công việc khó khăn nhất, phức tạp nhất của Thực tại ảo, đã và đang là một thách thức lớn đối với công nghệ mô phỏng Mô phỏng nước là dạng mô phỏng động theo thời gian thực hoặc không theo thời gian thực Để mô phỏng nước mà chỉ yêu cầu dạng mô hình, không yêu cầu sự chính xác và không cần thể hiện đúng bản chất vật lý thì không quá khó Ví dụ: để mô phỏng mặt nước động không theo thời gian thực ta có thể thực hiện bằng cách sử dụng các mặt phẳng đƣợc áp vật liệu nước trượt lên nhau (trong Flash), hay để mô phỏng vòi nước chảy theo thời gian thực ta sử dụng thành phần Particle System trong 3DsMax Nhƣng để mô phỏng được nước đúng với các tính chất vật lý của nó và hiệu ứng của nước theo thời gian thực thì quả là một công việc không dễ dàng mà cho đến nay kết quả nghiên cứu đƣợc vẫn còn hạn chế
Không giống với các loại vật chất khác, nước tồn tại ở rất nhiều trạng thái và có các tính chất rất phức tạp Do đó, muốn mô phỏng thành công chất lỏng nói chung và nước nói riêng thì phải dựa vào các tính chất vật lý của chúng, và xác định hình thái của chất lỏng mình muốn thể hiện
Có nhiều tiêu chí để phân loại nước, nhưng ở đây chúng ta giới hạn việc phân loại nước theo hình dạng
Dưới các tác dụng khác nhau của ngoại lực thì các dạng nước trên sẽ biến đổi hình dạng và chuyển động khác nhau Chúng ta có thể xét các trường hợp sau:
- Dòng nước chảy gặp vật rắn cản
- Dòng nước (nước trong kênh, sông) va vào bờ
- Dòng nước chảy từ cao xuống thấp
- Giọt nước rơi xuống mặt nước
- Giọt nước rơi nằm trên các bề mặt:
+ Giọt nước trên bề mặt lá
+ Giọt nước trên bề mặt các chất rắn
- Khối nước dưới tác dụng của chất rắn
- Mặt nước dao động bình thường
- Mặt nước khi có vật rắn rơi xuống
- Mặt nước khi có mưa
- Mặt nước khi có gió mạnh Đối với các dạng nước khác nhau, dưới các tác dụng khác nhau thì sẽ dẫn đến các hiệu ứng khác nhau Sau đây là một số hiệu ứng nước cơ bản mà ta thường gặp:
Hiệu ứng phản chiếu ánh sáng
Hiệu ứng in bóng nước
Hiệu ứng giao thoa sóng nước
Hiệu ứng giọt nước rơi
Hiệu ứng nước sôi (sủi bọt nước)
Tìm hiểu các giải thuật để thể hiện đƣợc những hiệu ứng rất phức tạp trên người ta đã đưa ra nhiều giải pháp khác nhau :
- Khi muốn thể hiện sóng nước có mấy cách sau: cho những điểm ảnh là sóng nước chuyển động theo chiều thẳng đứng với các thông số như (tần số, biên độ, góc radian) => do đó sinh sóng => nhiều sóng nhƣ vậy tạo thành mặt sóng
- Cũng có thể tạo ra sóng bằng cách cho các lớp hình ảnh mặt nước xếp chồng lên nhau chuyển động trƣợt trên nhau => do đó có mặt sóng
- Cũng có thể tạo ra mặt sóng bằng cách cho các khối hình cơ bản (cấu tạo nên ảnh) chuyển động => sau đó dùng các kỹ thuật ghép ảnh, cắt xén ảnh, biến đổi ảnh để, làm trơn làm cho những hình cơ bản ghép với nhau mềm mại hơn, hợp khớp với nhau hơn Cách này có ƣu điểm là dung lƣợng nhỏ, tốn ít bộ nhớ
- Với các trò chơi 3D trực tuyến, do yêu cầu khắt khe về dung lƣợng và tốc độ đường truyền để đáp ứng nhanh chóng thao tác của người chơi Cho nên họ đã tạo hiệu ứng nước bằng cách đơn giản là chụp ảnh ngoại cảnh rồi sử dụng các phép ghép ảnh, làm trơn để tạo hiệu ứng nước đơn giản Hoặc dùng các phương pháp Texture tạo bề mặt cho đối tượng, tạo các script từ các ảnh lẻ hoặc phương pháp flash động
- Để thể hiện hiệu ứng in bóng nước: người dùng phép chiếu ảnh và phép biến đổi ảnh
- Để thể hiện hiệu ứng phản chiếu ánh sáng gồm có phản xạ và khúc xạ, người ta sử dụng phép chiếu và quay vectơ + màu sắc (ánh sáng chiếu vào bề mặt chất lỏng thì có phản xạ và khúc xạ, ánh sáng chiếu vào bề mặt chất rắn thì có phản xạ và khuếch tán)
- Để thể hiện hiệu ứng giọt nước rơi người ta phải dựa vào một loạt các thông số như độ bám dính, sức căng bề mặt, mặt cong, quãng đường, thời gian, vận tốc, gia tốc, độ trong suốt của giọt nước… Giọt nước được thể hiện bằng hình học cơ bản rồi sau đó gắn thêm các thuộc tính nhƣ trên sau đó đƣợc đƣa vào một hệ vật để thể hiện nó
- Kỹ thuật thể hiện hiệu ứng nước sôi tương tự như kỹ thuật thể hiện hiệu ứng giọt nước rơi, bởi vì giọt nước chuyển động trong không khí còn nước sôi thì bọt khí chuyển động trong nước Ta chỉ việc thay đổi các thông số cho phù hợp với môi trường thôi
- Kỹ thuật thể hiện hiệu ứng nước chảy mở rộng hơn một chút so với kỹ thuật thể hiện hiệu ứng sóng nước Ta chỉ thêm thông số vận tốc, hướng vector cho những điểm chuyển động (hay những hình cơ bản chuyển động)
Dựa vào mục đích sử dụng người ta đã chia ra hai kỹ thuật chính để thể hiện hiệu ứng nước Kỹ thuật tạo hiệu ứng giả mặt nước và kỹ thuật tạo hiệu ứng mặt nước thật Các kỹ thuật tạo hiệu ứng giả mặt nước như Texture, Sclip, ghép ảnh, biến đổi ảnh… chỉ áp dụng cho những đối tƣợng ít quan trọng trong một hệ mô phỏng để làm giảm dung lƣợng bộ nhớ và đáp ứng nhanh hoặc trong các trò chơi game Trong phạm vi đề tài, luận văn không đi sâu vào tìm hiểu những phương pháp đó mà trọng tâm là tìm hiểu những kỹ thuật tạo ra hiệu ứng thật cho mặt nước
1.2.3 Cơ sở lý thuyết của mô phỏng nước
Cơ sở lý thuyết của các phương pháp mô phỏng nước chính là các tính chất vật lý của nó Phần dưới đây xin giới thiệu một số tính chất vật lý của chất lỏng nói chung và nước nói riêng để tạo điều kiện cơ sở cho nhận thức các phương pháp mô phỏng nước
MỘT SỐ KỸ THUẬT MÔ PHỎNG NƯỚC
KỸ THUẬT PHYSICALLY-BASE
Kỹ thuật Physically-based đƣợc đƣa ra để tìm ra góc tiếp xúc giữa mặt thoáng của chất lưu (lỏng, khí) với các đối tượng rắn, cho phép mô phỏng các trạng thái khác nhau của chất lỏng co giãn nhẹ bao gồm cả giọt nước trên bề mặt Trọng tâm của kĩ thuật này là phương pháp bề mặt ảo (Virtual Surface), tức là thay đổi cấp độ thiết lập trường khoảng cách đặc trưng cho bề mặt chất lỏng nhằm tìm ra góc tiếp xúc thích hợp Sức căng bề mặt đƣợc tính toán trên cơ sở mối liên hệ giữa bề mặt chất rắn và bề mặt chất lỏng, khi đó sẽ suy ra đƣợc tất cả sức căng bề mặt chung bao gồm sức căng lỏng – đặc, lỏng – khí, đặc – khí Chúng ta sử dụng mô hình góc tiếp xúc động để lựa chọn góc tiếp xúc (Contact Angle) tùy theo tính chất của vật liệu rắn, tính chất của nước và sự chuyển động của chất lưu
Thuật toán này xử lý đúng và chính xác những biến dạng khác nhau của giọt nước và nghiên cứu cả các bề mặt rắn cong, phẳng Kết quả mà thuật toán này đƣa ra cho thấy rằng có khả năng mô phỏng vài hiện tƣợng chất lỏng co giãn nhỏ Ví dụ, những giọt nước bị dẹt và xâu thành chuỗi, giọt nước bị kéo căng và chia nhỏ, những giọt nước lơ lửng trên bề mặt cong, và hiệu ứng mao dẫn (Capillary Action)
Sức căng bề mặt là yếu tố quan trọng trong mô phỏng chất lỏng co giãn nhẹ Nó đƣợc sinh ra do sự mất cân bằng của lực kết cấu phân tử trên miền mặt phân giới, nơi mà 2 đối tƣợng gặp nhau (lỏng-khí, lỏng-rắn, khí-rắn) Có
2 cách để phân tích ảnh hưởng của sức căng mặt ngoài đến sự chuyển động của chất lỏng
Sử dụng sức căng bề mặt chịu tác dụng trực tiếp lên bề mặt chất lỏng trong phương trình Navier-Stokes:
Ut: đạo hàm tính vận tốc theo thời gian u = (u,v,w): vectơ vận tốc (Velocity) v: hệ số dính nhớt (Viscosity coefficient)
P: áp suất (Pressure) ρ: mật độ (Density) w: vận tốc góc (Vorticity) k: độ cong trung bình bề mặt (Surface mean curvature)
F: ngoại lực (Lực nổi hoặc lực hấp dẫn) γ: hệ số sức căng mặt ngoài
N: véc tơ pháp tuyến của bề mặt chất lỏng : biểu thị toán tử gradient (độ dốc)
Vectơ cuộn xoáy cục bộ đƣợc biểu diễn bằng công thức:
Đƣợc đặt bởi một lực: F h ( N w )
Sức căng mặt ngoài có thể đƣợc miêu tả trong quan hệ với các áp lực khác Theo Laplace’s Law: Γpsurf = γ.k (3) Γp surf : các áp lực khác ngang qua bề mặt chất lỏng
Cả hai cách biểu diễn sức căng bề mặt trên đều phụ thuộc tuyến tính vào k
Theo Young’s, nếu chỗ giao nhau giữa 3 mặt phân cách trên là đường tiếp xúc và cân bằng khi không có ngoại lực thì sức căng mặt ngoài thỏa mãn: γsa – (γlacosθs + γls) = 0 (4) Với 0 < θs < Π θs : góc tiếp xúc ổn định (the stable contact angle) γls, γsa, γla = γ : hệ số sức căng mặt phân cách của lỏng-rắn, rắn-khí, lỏng-khí
Khi θs nhỏ thì bề mặt chất rắn đƣợc gọi là hydrophilic, và bề mặt của chất lỏng có xu hướng xoay về mặt phẳng trải rộng ra
Khi θs lớn thì bề mặt chất lỏng đƣợc gọi là hydrophobic và chất lỏng trở thành giọt trên bề mặt chất rắn
Khi ngoại lực tác dụng lên chất lỏng thì góc cân bằng liên hệ giữa rắn – lỏng có thể khác θs θs s
Liquid γ la γ ls γ sa Contact front
Ví dụ: góc cân bằng có thể nhỏ hơn θs khi giọt nước nằm trên bàn, giống như sự uốn cong đường tiếp xúc theo chiều hướng tăng lên để giữ áp suất đúng với trọng lực
Cũng giống như các chương trình mô phỏng chất lưu khác, chúng ta chia thủ tục mô phỏng thành một số bước chính Đầu tiên trường vận tốc được cập nhật, và ở bước sau trường vận tốc này được sử dụng để cập nhật sự thay đổi của bề mặt chất lỏng
Trong kỹ thuật này, người ta sử dụng một lưới 3D Vận tốc của chất lưu được biểu diễn bằng mặt của các ô lưới Bề mặt giữa chất lỏng – khí được biểu diễn bằng trường khoảng cách Trường khoảng cách là trung tâm của cách tiếp cận này vì nó là trường được thay đổi để tạo ra bề mặt ảo
Tóm lại, trong phương pháp này, chất lỏng được thể hiện dựa vào bề mặt của nó, và việc tìm bề mặt chất lỏng được giải quyết bằng phương pháp ngoại suy bề mặt ảo và việc theo dõi sự vận động của bề mặt thoáng của chất lỏng đƣợc giải quyết bằng phương pháp Level-set
Ngoài ra, người ta còn có thể áp dụng các phương pháp cơ sở vào thuật toán này vẫn thực hiện được mục đích mô phỏng Đầu tiên sử dụng phương pháp Implicit Euler [1] để giải quyết khuyếch tán mômen nhớt, phương pháp semi-lagrangian [2] để tính toán bình lưu vận tốc và cuối cùng là giải phương trình Possion
2.1.4 Phương pháp ngoại suy bề mặt ảo
Phương pháp bề mặt ảo của chúng ta là sử dụng trường khoảng cách Φ để biểu diễn mặt phân cách lỏng – khí nhằm mục đích mô phỏng có hiệu quả
Diffusion Advection Projection with surface tension
Velocity update Surface update góc tiếp xúc Bề mặt ảo đƣợc mở rộng với chất rắn khi góc tiếp xúc cân bằng phù hợp với lực sức căng bề mặt trên đường tiếp xúc như trong quan điểm của Young (phương trình (4)) Nếu bề mặt thực tế không yêu cầu góc tiếp xúc thì kết quả sẽ cho mặt không cong Phương pháp của chúng ta làm thay đổi bề mặt chất lỏng ban đầu Ω l xung quanh mỗi ô độc lập trên đường tiếp xúc, vì thế độ cong đƣợc tính toán từ việc thay đổi các bề mặt Ωnew một cách thích hợp có kể đến tất cả sức căng của các bề mặt Toàn bộ bề mặt chất lỏng (bề mặt chất lỏng đầy đủ) Ωl là hợp của bề mặt lỏng – khí Ωla và bề mặt lỏng – đặc Ω ls Với bề mặt đầy đủ hoàn toàn có thể xác định được nhờ trường khoảng cách Φ Bằng cách thay đổi Φ chúng ta sẽ thay thế Ωls bằng mặt ảo Ω v Khi đó chúng ta đánh giá độ cong trên bề mặt mới và sử dụng độ cong này như là áp lực sức căng bề mặt (phương trình (3)) Định nghĩa bề mặt ảo:
Hình 2.1: Mô tả góc tiếp xúc bề mặt ảo
L(t) : là đường tiếp xúc cong giữa bề mặt chất rắn Ω s và bề mặt chất lỏng Ω l
Ns(t): là pháp tuyến của bề mặt chất rắn
Nl(t): là pháp tuyến của bề mặt chất lỏng
T: là tham số thể hiện đơn vị đo độ dài cung (L’(t) = 1), và t đƣợc chọn sao cho khi t tăng dần thì L(t) quay ngƣợc chiều kim đồng hồ quanh Ns(t)
Ns(t) và Nl(t) xác định một mặt phẳng mà mặt phẳng này chứa đường tiếp xúc L(t) Góc giữa Ns(t) và Nl(t) xác định góc tiếp xúc giữa Ωs và Ωl Bề mặt ảo của chúng ta bắt đầu từ L(t), mở rộng xuống bên trong chất rắn với một góc cụ thể đƣợc xác định bởi mối quan hệ giữa chất lỏng – chất rắn Cụ thể mặt ảo V(s,t) đƣợc xác định bởi:
V(s, t) = L(t) + s.R(t) (với s > 0) R(t) = −sinθs Ns(t) − cosθs (Ns(t)×L’(t))
Căn cứ vào t0, về phương diện hình học V(s,t 0 ) là tia từ L(t 0 ) ngả về R(t 0 ), và nó hợp với Ns(t) trong mặt phẳng trực giao với L(t) một góc (Π/2 + θs )
Trong ví dụ của chúng ta dưới đây, bề mặt ảo nằm trong mặt phẳng trực giao với L(t)
Nếu góc hiện tại θc bằng góc tiếp xúc θs thì đường thẳng tiếp xúc phải đƣợc ổn định trong mặt phẳng trực giao đó Điều này đã đƣợc chứng minh trong phương pháp bề mặt ảo bởi vì độ cong k n = 0 khi Ns và Nl đồng nhất với nhau
Khi θc θs, sử dụng trung bình độ cong đã được tính bằng phương pháp bề mặt ảo để ước lượng sức căng bề mặt trên đường tiếp xúc
Hình 2.2: Mô tả góc tiếp xúc bề mặt ảo giữa chất lỏng và rắn
KỸ THUẬT PARTICLE-BASE
Kỹ thuật Particle-based (hay còn gọi là phương pháp Lagrangian) mô tả chất lỏng sử dụng các phần tử (Particles) Bằng cách trực tiếp theo dõi từng phần của quá trình các phần tử di chuyển qua những miền trống Phương pháp particle không chú trọng việc bảo toàn khối lƣợng và cung cấp khái niệm mô phỏng khung đơn giản, linh hoạt
Mô phỏng Particle-based sử dụng cách tiếp cận luân phiên – SPH (Smoothed Particle Hydro Dynamics), đƣợc phát triển đầu tiên bởi Lucy, Gingold và Monaghan Với cách tiếp cận này những phần tử trong khối chất lỏng duy trì các thuộc tính khác nhau ví dụ nhƣ mật độ, khối lƣợng, vận tốc.v.v…Và đƣợc theo dõi trong suốt quá trình mô phỏng
Kỹ thuật Particle-based ổn định hơn Kỹ thuật Physically-based nhƣng vẫn yêu cầu bộ nhớ tương đối lớn
Chất lỏng đƣợc biểu diễn bằng cách phát triển các phần tử trong suốt không gian và thời gian Mô phỏng particle thường đi qua các bước: đầu tiên các lực khác nhau đƣợc tính và đƣợc tích lũy cho mỗi particle Sau đó những lực này đƣợc sử dụng để thay đổi vận tốc và cuối cùng chúng đƣợc sử dụng để cập nhật vị trí của particle Ở bước cuối cùng, vận tốc được tính lại bằng cách lấy vị trí đã giãn ra trừ đi vị trí trước đó Lý do phải tính lại vận tốc là độ giãn (the relaxation displacements) tương đương với xung lực được áp dụng với vận tốc lúc bắt đầu bước tiếp theo Những xung lực này được tính ở vị trí gần vị trí cuối cùng (ở chỗ giữa vị trí đã dự đoán và vị trí cuối cùng) Bằng trực giác, sử dụng những lực tồn tại xa hơn ngăn chặn tính không ổn định bằng cách dự đoán các trạng thái khó hơn và phản ánh lại trước khi chúng thực sự xảy ra
Nhƣ vậy, tính không nén đƣợc và không nhóm đƣợc đƣợc thể hiện bằng cách thực hiện thủ tục nới lỏng (làm giảm - relaxation) mật độ kép, hiệu ứng của chất dẻo đàn hồi và không tuyến tính thu đƣợc bằng cách thêm lực co dãn vào khoảng trống giữa các phần tử
Các bước mô phỏng của chúng ta được mô tả chi tiết trong thuật toán 1
Đầu tiên, chúng ta update vận tốc của particle tùy theo trọng lực và vận tốc (dòng 1 đến 5)
Ghi lại vị trí trước đó và di chuyển particle tùy theo vận tốc của chúng
Dòng 12 đến 15: thay đổi spring (lực co dãn) dựa vào độ dài và sử dụng lực spring thay thế particle
Đảm bảo tính bảo toàn khối lƣợng và tính không nhóm đƣợc (dòng 16)
Cuối cùng, sự va chạm giữa các particle và các vật thể tĩnh/động đƣợc giải quyết và vận tốc particle đƣợc tính lại
Áp đặt trọng lực cho particles
Áp đặt trọng lực và tính nhớt cho particles
Áp đặt trọng lực và tính nhớt cho particles
Áp đặt trọng lực và tính nhớt cho particles
Làm giảm- relax (mật độ và lực co dãn- density and spring)
Đặt lại vị trí mới cho mỗi particles
Áp đặt trọng lực và tính nhớt cho particles
Làm giảm- relax (mật độ và lực co dãn- density and spring)
Đặt lại vị trí và thu đƣợc vận tốc mới
Tổng quan quá trình dịch chuyển của các Particles Để thực hiện đƣợc thuật toán trên, ta cần giải quyết 3 vấn đề lớn:
- Làm giảm mật độ kép (dòng 16)
- Biểu diễn đƣợc mặt phân cách (dòng 5,12,15)
- Giải quyết vấn đề va chạm với đối tƣợng (dòng 17)
2.2.3 Mật độ kép 2.2.3.1 Mật độ và áp suất
Trong phạm vi SPH, mục đính chính là tối thiểu hóa hệ số nén, chuyển thành ràng buộc cục bộ để duy trì mật độ không đổi Chúng ta có công thức tính mật độ ở particle i là :
Rij = | rij | ; rij = xj - xi
N(i) : biểu thị tập hợp các particle hàng xóm nằm trong phạm vi của bán kính tương tác h
J: các hàng xóm của particle i
Quan niệm về mật độ này không hoàn toàn đúng với đặc tính vật lý, nó đơn giản chỉ là 1 con số xác định số lƣợng các particle có quan hệ với hàng xóm của nó Người ta đã cố gắng đưa ra cách nhìn nhận khác về mật độ, ví dụ nhƣ tập hợp các particle xung quanh 1 particle khác (mật độ ) có dạng là một không gian giới hạn bởi đa thức (r/h) -2 , hoặc có dạng hình cái chuông với đa thức (1-(r/h) 2 ) 3 , nhưng tốt nhất vẫn là hình đầu nhọn với phương trình bậc 2 (1-r/h) 2 Chúng ta định nghĩa áp suất giả Pi tỷ lệ với hiệu của mật độ hiện tại ρi và mật độ nguyên của ρ0:
Pi = k(ρi - ρ0) (2) k: độ cứng (stiffness) Để làm cho công thức này đơn giản và khả thi, chúng ta kết hợp hằng số tỷ lệ với mật độ trong SPH với các tham số k và ρ0 Ngoài ra, ta coi nhƣ tất cả các particle đều có khối lƣợng giống nhau Theo cách này thì khối lƣợng đƣợc đưa ra ngoài và không có mặt trong phương trình
2.2.3.2 Phục hồi tính không nén đƣợc (Incompressibility Relaxation)
Phục hồi tính không nén đƣợc đƣợc thực thi nhƣ là vòng lặp toàn cục trên mỗi particle i Phép lặp của vòng lặp này bao gồm 2 bước trên mỗi hàng xóm j của particle i Bước đầu tiên, ước lượng mật độ cục bộ ở particle i bằng cách tính tổng trọng lượng của các hàng xóm của chúng (phương trình 1)
Nếu mật độ này cao hơn ρ0, những hàng xóm này sẽ bị đẩy ra xa, nếu thấp hơn chúng sẽ đƣợc kéo vào gần hơn Việc đẩy hoặc kéo các hàng xóm đƣợc thực hiện trong bước 2 trên những hàng xóm của particle i, trong đó mỗi cặp i,j đổi chỗ cho nhau Việc giảm mật độ di chuyển giữa 2 particle tỷ lệ với áp suất giả và trọng lượng theo phương trình tuyến tính sau:
: là véc tơ đơn vị từ particle i đến j Γt 2 : lưu thời gian độc lập của từng bước
Chúng ta áp dụng việc đổi chỗ này bằng cách thay đổi vị trí dự đoán của particle j Việc đổi chỗ ngƣợc lại đƣợc áp dụng cho particle i, làm cho bản chất hành động đƣợc hoạt động liên tục và do đó xung lực tuyến tính đƣợc bào tồn Sự dịch chuyển này có hướng dọc theo , động lượng được bảo tồn
2.2.3.3 Near – Density and Near- Pressure
Nhƣ đã trình bày, tiến trình làm giảm mật độ không ngăn chặn đƣợc việc nhóm cụm các particles Một particles có thể vươn đến miền có mật độ dừng (rest density) bằng cách đẩy mạnh một số hàng xóm của nó Khi đó chất lỏng tách thành 1 tập hợp các nhóm độc lập, biểu hiện tính không cố kết (không dính với nhau) Người ta cố gắng để ngăn chặn sự nhóm cụm bằng cách thêm vào một khoảng cách – một lực đẩy độc lập, nhƣng nó lại là nguyên nhân của hiện hữu những phần thủ công khi mô phỏng chất lỏng có tính nhớt thấp
Người ta giải quyết vấn đề nhóm cụm bằng cách thêm vào một áp suất thứ hai phụ thuộc vào bối cảnh đó (by adding instead a second context- dependent pressure term) Lực mới này không phụ thuộc vào khoảng cách giữa các particle nhƣng phụ thuộc vào mật độ mới – gọi là near density, và mật độ mới này đƣợc tính theo công thức sau:
Nó dùng một nhân với mục tiêu giả hơn mật độ đơn lẻ của chính nó Với lại, khi chúng ta thử với những mục tiêu giả khác nhau hình lập phương đơn này sẽ cho kết quả tốt khi khiểm tra Để tạo ra lực giành riêng cho việc đẩy (lực đẩy) người ta định nghĩa near – pressure nhƣ sau:
Phương trình này tương tự phương trình (2) nhưng nó không còn mật độ thƣa (rest density) Near – pressure đem lại sự dịch chuyển cho mỗi cặp trong bước 2 của quá trình làm giảm mật độ Lúc này phương trình 3 trở thành: Ở đây kernel bậc 2 cho thấy lực đẩy (near – repulsion ) đƣợc áp dụng cho hàng xóm như thế nào Ngoài ra, the near – pressure kernel tương ứng (bằng) đạo hàm của near – density kernel
Thuật toán 2 sau đây, tổng kết lại phương pháp gần đúng tính bảo toàn khối lƣợng và tính nhóm cụm Với mỗi particles, density và near – density được tính (phương trình 1 và 4), sau đó được đánh giá bằng phương trình 2 và phương trình 5 Cuối cùng, vòng lặp thứ 2 trên các hàng xóm của nó áp dụng sự dịch chuyển cho các particles (phương trình 6) Hàng xóm của j được dịch chuyển ngay lập tức, nhƣng chúng ta chỉ cộng lại những sự di chuyển của particle i và áp dụng chúng trong bước cuối của sự nới lỏng (Relaxation) Thứ tự particle i đƣợc giãn là ngẫu nhiên nhƣng nó không đƣợc thay đổi trong suốt quá trình mô phỏng Kết quả của việc giãn mật độ kép là biểu diễn đƣợc chất lỏng cố kết
Thuật toán 2: Giảm mật độ kép
Minh họa: quá trình giảm mật độ kép Áp suất giả khi ρ 0 > ρ i : Áp suất giả khi ρ 0 < ρ i :
Sự hoán đổi vị trí phụ thuộc vào khoảng cách nhân
Bảo toàn động lượng về hướng và góc độ dịch chuyển của mỗi Particles:
ỨNG DỤNG MÔ PHỎNG NƯỚC
MÔ PHỎNG NƯỚC TRONG CÁC HỆ THỰC TẠI ẢO
Nước là một đối tượng quan trọng trong các hệ Thực tại ảo, nhất là những hệ Thực tại ảo có các hoạt động diễn ra trong môi trường có nước, ví dụ: hệ thống mô phỏng tập lái tàu thuỷ (Đại học GTVT HCM), hệ thống mô phỏng tập lái xe lội nước (Công ty CadPro-Việt Nam), hệ thống mô phỏng chất lượng nước hồ Tây (Viện khoa học và Công nghệ Môi trường).v.v…
Hình 3.1: Hệ thống tập lái tầu thuỷ của trường ĐH GTVT HCM
Nếu như những hệ mô phỏng này phải mua từ nước ngoài thì chúng ta phải bỏ ra một lượng tiền rất lớn, trong khi khoa học trong nước lại không có cơhội nghiên cứu
Loại thiết bị mô phỏng
Mua nước ngoài (đơn vị: triệu USD)
Mua trong nước (đơn vị: triệu USD)
Số đơn vị trang bị
Dạy lái tàu hỏa 11 - 22 2,2 - 6,6 7 20 Dạy lái ô tô 0,67 - 1,35 0,25 - 0,58 1 22
Nếu như trong các hệ thống tập lái tàu thủy hay tập lái xe lội nước , mô phỏng nước tập trung vào các hiệu ứng bề mặt, thể hiện được các hiệu ứng sóng nước, nước chảy, ánh sáng, màu sắc…Thì trong các hệ mô phỏng tính chất của nước lại tập trung vào mô phỏng các thuộc tính cụ thể của nước: độ trong, các chất lơ lửng trong nước, độ sánh, các sinh vật trong nước…
Hình 3.2: Thể hiện hiệu ứng mặt nước đã được tạo
Chính vì thế tùy thuộc vào yêu cầu của bài toán mà ta lựa chọn các kỹ thuật mô phỏng cho phù hợp Kỹ thuật Physically-based có ƣu điểm trong mô phỏng nước có kích thước nhỏ, ở góc độ quan sát nhỏ nhất là khi mô phỏng những giọt nước Kỹ thuật này đảm bảo mô phỏng mặt nước thật, rất tốt khi thể hiện những tính chất vật lý của nước như sức căng bề mặt, độ dính bám, hình thể đa dạng của giọt nước khi nó chuyển động Nhưng nhược điểm của nó là khối lƣợng xử lý nhiều, tốn nhiều dung lƣợng bộ nhớ và khó khăn khi muốn thể hiện bề mặt rộng lớn của mặt nước
Hình 3.3: Hiệu ứng chuyển động của vật rơi xuống nước
Ngƣợc lại, Kỹ thuật Particles-based dựa trên những phần tử là các đa giác hay các khối hình Polygon để tạo thành bề mặt nước, tuy không tốt khi dùng để thể hiện nước có kích thước nhỏ vì trông không thật và khó khăn trong việc tạo hiệu ứng bề mặt, nhƣng với một bề mặt rộng lớn thì kỹ thuật này tỏ ra ưu điểm vượt trội Nó thể hiện tốt mặt nước với đầy đủ các hiệu ứng như sóng nước, giao thoa sóng nước, nước chảy, hiệu ứng in bóng nước và phản chiếu ánh sáng.v.v…
Hình 3.4: Thể hiện mặt nước bằng lưới đa giác trong phương pháp Particle-Base
Xây dựng mô hình thế giới ba chiều là khâu quan trọng đầu tiên trong quy trình xây dựng một hệ thống Thực tại ảo.Từ các hệ thống để bàn đến dạng hệ hỗ trợ nhúng hoàn toàn, mức độ chính xác và tinh tế của các hình ảnh lập thể trong không gian ảo ảnh hưởng không nhỏ tới mức độ cảm nhận tính thực của người sử dụng đối với thế giới ảo Trên thế giới có nhiều công cụ phần mềm hỗ trợ xây dựng các ứng dụng đồ hoạ nói chung và xây dựng mô hình nước trong Thực tại ảo nói riêng Do vậy, việc lựa chọn một công cụ phần mềm thích hợp cả về mặt tính năng và giá thành là một vấn đề đáng quan tâm khi đầu tƣ xây dựng hệ thống Thực tại ảo Mỗi phần mềm đều có những ưu điểm và nhược điểm riêng Bài luận văn này cũng đưa ra một số đánh giá khách quan về các phần mềm phổ biến thông qua việc tập hợp các ý kiến của chuyên gia đã sử dụng các công cụ phần mềm này Hiện tại, nói đến những phần mềm hỗ trợ xây dựng mô hình lập thể, ta phải đề cập đến các phần mềm phổ biến nhƣ Maya , 3D Studio Max , Softimage , Renderman, Houdini và LightWave ,
Hình 3.5: Thể hiện dòng nước chảy bằng các phần tử lập thể particles
Dưới đây là biểu đồ thể hiện tương quan về tính phổ biến của các phần mềm nói trên dựa trên cơ sở yêu cầu kinh nghiệm về sử dụng phần mềm mô hình hoá ba chiều của các công ty khi tuyển nhân viên chuyên về xây dựng thế giới đồ hoạ ba chiều Thống kê đƣợc tiến hành bởi 3DRender Ở Việt Nam các kết quả nghiên cứu về thực tại ảo và mô phỏng nước còn hạn chế nhưng với một chiến lược phát triển tốt và những bước đi đúng hướng thì nhất định một ngày nào đó chúng ta sẽ tạo ra được những hệ thống mô phỏng lớn sánh ngang với các hệ mô phỏng của thế giới, không chỉ đủ cung cấp cho nhu cầu của Việt Nam
Maya 3D Studio Max Softimage Renderman Houdini LightWave
Hình 3.6: Biểu đồ so sánh mức độ yêu cầu về kinh nghiệm đối với các phần mềm hỗ trợ xây dựng mô hình lập thể trong thiết kế đồ hoạ 3D chuyên nghiệp
CHƯƠNG TRÌNH THỬ NGHIỆM
Trong luận văn đã cài đặt thử nghiệm thuật toán mô phỏng nước Physically-Based vaf Particle - Base bằng ngôn ngữ lập trình C# trong bộ NET phiên bản Microsoft NET 2003
3.2.1 Kỹ thuật Physically-Based a) Yêu cầu:
Hình 3.7: Mô phỏng mặt hồ bằng kỹ thuật Physically-Based
Xây dựng một chương trình Demo mô phỏng mặt hồ với hiệu ứng in bóng nước, hiệu ứng sóng nước và chương trình có khả năng sẵn sàng tích hợp trong một hệ Thực tại ảo b) Phân tích bài toán, xác định vấn đề
Mô phỏng nước là một bài toán mới và tương đối khó Nhưng tính cấp thiết và tầm quan trọng của nó trong Thực tại ảo thì lại là một vấn đề cấp thiết cần làm ngay Bài toán mô phỏng nước có hai hướng tiếp cận :
Phương pháp giả mô phỏng: là ta dùng các kỹ thuật xử lý ảnh để tạo ra những đối tượng và những hiệu ứng giả đánh lừa mắt nhìn của con người Ví dụ, nhƣ biến đổi ảnh không gian 2D thành hình ảnh của vật nhƣ trong không gian 3D, hay các phương pháp Texture
Phương pháp mô phỏng thật: là dùng các kỹ thuật tạo đối tượng và hiệu ứng dựa trên cơ sở khoa học là các thuật toán biểu diễn tính chất vật lý của đối tƣợng và các hàm biến đổi để thể hiện đối tƣợng một cách chính xác
Với bài toán nêu trên luận văn chọn hướng tiếp cận thứ nhất: giả mô phỏng để thể hiện mặt nước với các hiệu ứng sóng, in bóng Nước có rất nhiều hiệu ứng khác nhau nhƣ đã đƣợc đề cập trong phần 1.2.2 và trong mục này luận văn lựa chọn một số hiệu ứng cơ bản của mặt nước để giải quyết yêu cầu, đó là: tạo mặt nước động có sóng, hiệu ứng phản chiếu ánh sáng, in bóng nước, độ trong và màu sắc mặt nước Chương trình mô phỏng mặt nước phải thể hiện đƣợc những yêu cầu đó và phải có tính thẩm mỹ đủ làm hài lòng người quan sát
Có thể mở rộng tạo ra một số tương tác điều khiển lên đối tượng mặt nước làm cho mặt nước sinh động hơn và có khả năng sẵn sàng tích hợp trong một hệ mô phỏng Thực tại ảo
Qua việc tìm hiểu quy trình mô phỏng hiệu ứng mặt nước yêu cầu đặt ra cao hơn là phải nắm đƣợc quy trình xây dựng của một hệ Thực tại ảo c) Giải quyết vấn đề
Qua phân tích để xác định rõ yêu cầu của bài toán, luận văn đề cập đến giải bài toán bằng cách sử dụng kỹ thuật Physically-Based thể hiện những yêu cầu về hiệu ứng mặt nước như đã đề ra
Sử dụng ngôn ngữ Visual C # để xây dựng chương trình demo
Chia nhỏ bài toán mô phỏng mặt nước thành hai phần nhỏ để giải quyết hai yêu cầu của bài toán Cụ thể nhƣ sau:
- Hiệu ứng in bóng nước: dùng phép chiếu ảnh để lấy ảnh đối ngẫu với ảnh gốc ban đầu (mọi thao tác sẽ diễn ra trên ảnh đối ngẫu này)
- Mặt nước dao động: chia mặt nước (ảnh đối ngẫu) thành dãy các đường kẻ ngang bức ảnh với bề rộng là rất nhỏ và chiều dài là chiều dài của ảnh Sử dụng một vòng lặp để điều khiển việc vẽ lại các đường kẻ từ ảnh gốc, vòng lặp sẽ chịu trách nhiệm tạo ra hiệu ứng sóng Nó tạo ra sự thay đổi từ ảnh nguồn tới ảnh đích với hiệu ứng sóng đƣợc xây dựng bằng việc sao chép các đường kẻ Thay vì sao chép từng đường một từ ảnh nguồn, chúng ta xây dựng
1 hàm mà giá trị sẽ thay đổi dựa trên một hàm sine (tỷ lệ giữa chiều dài của cạnh đối diện với một góc nhọn và chiều dài của cạnh huyền) Đó là sự sao chép từ bên này sang bên kia và sinh ra hiệu ứng sóng nước Trong thực tế, một sự thay đổi đơn giản sẽ chỉ tạo ra một gợn sóng cho bức ảnh mà không tạo ra được cả hiệu ứng cho bề mặt hồ nước Do đó muốn có nhiều sóng thì phải tạo ra được nhiều sự thay đổi vị trí của nhiều dòng kẻ Kích thước của độ dịch chuyển biến đổi dựa theo vị trí của tọa độ y (dựa theo chiều dọc của ảnh) trên đường kẻ Các đường gần với phần trên của bức ảnh sẽ thay đổi ít hơn các đường ở phần dưới của bức ảnh Điều này giúp cho việc phối cảnh trở lên chân thực hơn d) Kết quả
Nhƣ vậy với việc sử dụng kỹ thuật Physically-Based luận văn đã mô phỏng được một mặt hồ với các hiệu ứng như hiệu ứng in bóng nước, hiệu ứng sóng nước… Với bài toán mô phỏng một bề mặt lớn như mặt hồ, kỹ thuật Physically-Based thực sự thích hợp để mô phỏng Tuy nhiên, chúng ta sẽ gặp khó khăn hơn vì kỹ thuật Physically-Based chủ yếu dựa vào mô phỏng toàn bộ bề mặt theo một lưới các phần tử một cách đồng đều Để mô phỏng mặt nước có các điều kiện ngoại lực tác động, điểm chịu ngoại lực tác động sẽ là điểm phát sinh sóng luận văn đề cập đến việc sử dụng kỹ thuật Particle- Based Kỹ thuật này sẽ trực tiếp theo dõi từng phần của quá trình các phần tử di chuyển qua những miền trống
3.2.2 Kỹ thuật Particle-Based a) Yêu cầu:
Xây dựng một chương trình Demo mô phỏng mặt nước với hiệu ứng sóng nước xuất hiện khi chịu ngoại lực b) Phân tích bài toán, xác định vấn đề
Những vấn đề cần giải quyết trong bài toán này cũng khá giống với bài toán 1 Tuy nhiên chúng ta cần xét đến yếu tố khác biệt: bài toán 2 yêu cầu phát sinh hiệu ứng sóng khi có sự kiện ngoại lực tác động c) Giải quyết vấn đề Để giải quyết bài toán này luận văn sử dụng hướng tiếp cận như bài toán
1 là giả mô phỏng Kỹ thuật mô phỏng nước được dùng là kỹ thuật Particle- Based
Sử dụng ngôn ngữ Visual C# để xây dựng chương trình demo
Với việc mô tả hiệu ứng sóng khi chịu ngọai lực tác động, chúng ta cần giải quyết các việc sau:
- Ngoại lực tác dụng đƣợc thể hiện thông qua sự kiện di chuyển trái chuột Một vòng tròn với bán kính radius và độ cao height sẽ đƣợc tạo ra bằng hàm PutDrop(x,y,height)