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
1.1.1.Thực tại ảo là gì?
Truyền thống, người dùng tương tác với máy tính qua bàn phím, chuột và các thiết bị khác, đồng thời sử dụng màn hình để nhận thông tin đầu ra Tuy nhiên, với sự phát triển của công nghệ Thực tại ảo (VR), các phương thức giao tiếp mới đã ra đời, cho phép người dùng tương tác một cách chủ động và hiệu quả hơn với hệ thống máy tính.
Thực tại ảo là công nghệ mô phỏng không gian ba chiều, cho phép người sử dụng trở thành một phần của môi trường ảo thông qua các thiết bị đa phương tiện hiện đại Trong thế giới này, người dùng có thể tự do di chuyển, tương tác với các vật thể ảo và khảo sát từ nhiều góc độ khác nhau Môi trường ảo phản ứng với hành động của người sử dụng, kích thích các giác quan như thị giác, thính giác và xúc giác, tạo cảm giác chân thực như đang sống 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 (VR) được coi là một công nghệ mới mang tính cách mạng, nhưng ý tưởng về việc đưa người dùng vào một môi trường nhân tạo không phải là điều mới mẻ Thực tại ảo có thể được xem như sự phát triển của những khái niệm đã tồn tại từ lâu, chẳng hạn như hệ thống mô phỏng bay và rạp chiếu phim màn ảnh rộng như Cinerama hay IMAX Những hệ thống này cho phép người dùng trải nghiệm hình ảnh trên màn hình rộng, tạo cảm giác họ đang hiện diện trong không gian đó.
Sự ra đời của máy điện toán mini và bài báo khoa học "Màn hình tối tân" của Ivan Sutherland vào năm 1965 đánh dấu hai bước đột phá quan trọng trong công nghệ Thực tại ảo Trong bài báo, Sutherland đã dự đoán sự phát triển của Thiết bị Hiển thị đội đầu (HMD) đầu tiên, mà ông đã chế tạo với tên gọi "Thanh kiếm của Damocles" Ông cũng nhận thấy tiềm năng của máy điện toán trong việc tạo ra hình ảnh cho hệ thống mô phỏng bay, thay thế cho các hình ảnh trước đó được xây dựng bằng video camera.
Vào năm 1984, hai nhà khoa học Mỹ tại NASA, Fisher và McGreevy, đã kết hợp các ý tưởng để phát triển dự án "trạm làm việc ảo" (visual workstation) Kết quả của dự án này là sự ra đời của thiết bị Hiển thị đội đầu thương mại đầu tiên, được gọi là màn hình môi trường trực quan.
Môi trường hiển thị hình ảnh VIVED được thiết kế dựa trên mẫu hình mặt nạ lặn, sử dụng các màn hình quang học với hình ảnh từ 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 đã vượt ngoài mong đợi, khi NASA thành công trong việc sản xuất một thiết bị HMD với giá cả hợp lý trên thị trường, đánh dấu sự ra đời của ngành công nghiệp thực tại ảo.
1.1.3 Một số lĩnh vực thực tế ứng dụng thực tại ảo
Khái niệm Thực tại ảo đã tồn tại từ lâu, nhưng sự phát triển của nó gặp nhiều khó khăn do công nghệ và chi phí nghiên cứu Hiện nay, Thực tại ảo vẫn là một lĩnh vực công nghệ mới mẻ với nhiều tiềm năng ứng dụng Bài báo này sẽ điểm qua những lĩnh vực ứng dụng chính đang có xu hướng phát triển mạnh mẽ trong thời gian gần đây.
- Kiến trúc và thiết bị công nghiệp
Thực tại ảo đã trở thành một công cụ quan trọng trong thiết kế kiến trúc, cho phép mô hình hóa thế giới thực một cách hiệu quả Công nghệ này đáp ứng nhu cầu của ngành kiến trúc bằng cách cung cấp những hình ảnh trực quan rõ nét về các công trình tương lai, giúp các nhà thiết kế dễ dàng truyền đạt ý tưởng và hình dung sản phẩm cuối cùng.
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 mô hình không gian kiến trúc bằng hình ảnh lập thể mang lại trải nghiệm trực quan độc đáo, cho phép khách hàng khảo sát chi tiết các hình khối kiến trúc, cách bố trí nội thất, hoa văn và màu sắc của từng vật Khách hàng có thể tham quan khuôn viên tương lai từ nhiều góc độ và vị trí khác nhau, tạo ra hiệu quả trực quan cách mạng trong lĩnh vực nghệ thuật kiến trúc.
Trong ngành sản xuất thiết bị, thiết kế đóng vai trò quan trọng, ảnh hưởng đến tính thẩm mỹ, kỹ thuật và sức sống thương mại của sản phẩm như động cơ, ô tô, tàu biển và tàu vũ trụ Công nghệ Thực tại ảo giúp người thiết kế mô hình hóa ý tưởng một cách trực quan, đánh giá hiệu năng thiết bị qua các thử nghiệm mô phỏng trên thiết bị ảo Điều này cho phép thực hiện các điều chỉnh cần thiết trước khi sản xuất thực tế, góp phần giảm chi phí phát sinh và nâng cao thành công của thiết bị công nghệ.
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í đang nổi lên như một ứng dụng tiêu biểu của công nghệ Thực tại ảo, với tiềm năng tài chính lớn nhất Nhiều công ty đang phát triển trò chơi tích hợp các nguyên lý Thực tại ảo, thu hút đông đảo người chơi, đặc biệt là giới trẻ Sự gia tăng này cho thấy 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 giải trí.
Hình 1.3: Ứng dụng thực tại ảo trong lĩnh vực giải trí
Ngành công nghiệp trò chơi điện tử đã có ảnh hưởng lớn đến lĩnh vực Thực tại ảo, thúc đẩy sự phát triển của nhiều phần cứng như card tăng tốc đồ hoạ Khoảng 10 năm trước, việc tìm kiếm một card đủ mạnh để tạo ra ứng dụng Thực tại ảo thời gian thực là rất khó khăn, với giá trị lên đến hàng ngàn đô-la nhưng chỉ có khả năng xử lý 100.000 đa giác/giây ở độ phân giải trung bình Ngoài ra, các thiết bị như Găng tay dữ liệu và Thiết bị hiển thị đội đầu cũng bị ảnh hưởng bởi ngành giải trí Tóm lại, các ứng dụng Thực tại ảo trong lĩnh vực giải trí đã và đang đóng vai trò quan trọng trong việc định hình ngành công nghiệp Thực tại ảo.
Giáo dục và đào tạo
Thực tại ảo, phát triển từ công nghệ và kỹ thuật cao, mang lại 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 Nó cho phép người sử dụng cảm nhận sự hiện diện trong môi trường máy tính thông qua khả năng tương tác và tự trị, cùng với phản hồi tức thì từ môi trường ảo tới các giác quan Đặc biệt, công nghệ này còn cho phép mô phỏng những môi trường nguy hiểm hoặc tốn kém, như buồng lái máy bay hay phòng thí nghiệm hóa chất.
Hình 1.4: Mô hình huấn luyện bay sử dụng công nghệ Thực tại ảo
Công nghệ Thực tại ảo (VR) rất phù hợp cho các ứng dụng giáo dục và đào tạo nhờ vào những đặc tính nổi bật của nó Các mô hình trình diễn lập thể trong VR cho phép biểu diễn các vật thể trong thế giới ảo một cách chính xác hơn so với hình ảnh hai chiều, nhờ có chiều sâu bổ sung Điều này giúp các trình diễn minh họa và thí nghiệm được mô phỏng chính xác hơn, cho phép người dùng quan sát từ nhiều góc độ khác nhau, điều mà thế giới phẳng không thể thực hiện.
Tính chất trực quan của bài giảng được nâng cao giúp tăng hứng thú học tập và khả năng ghi nhớ các khái niệm quan trọng Khả năng tương tác hai chiều với môi trường ảo là yếu tố then chốt, nếu thiếu, thực tại ảo chỉ là một giao diện ấn tượng nhưng vô hồn Trong các phòng thí nghiệm hay huấn luyện ảo, việc thực hiện thao tác trên các đối tượng và nhận phản hồi kịp thời từ môi trường giúp học viên cảm nhận như đang trải nghiệm trong tình huống thực tế Điều này giúp học viên nhanh chóng nắm bắt và ý thức hơn về các tình huống được học.
MÔ PHỎNG NƯỚC TRONG THỰC TẠI ẢO
1.2.1 Vai trò của mô phỏng nước
Nước là thành phần thiết yếu trong cuộc sống hàng ngày và sản xuất của con người Tuy nhiên, việc mô phỏng nước không hề đơn giản, đòi hỏi tính toán và đo đạc các thông số trong nhiều điều kiện khác nhau, tốn nhiều thời gian và công sức Để biểu diễn dữ liệu thành hình ảnh trên máy tính, cần phải phát triển các thuật toán và phương pháp xử lý dữ liệu Tiếp theo, cần thiết kế hệ thống công cụ hỗ trợ lập trình hiệu ứng nước, sau đó mới đến khâu thiết kế bản vẽ nước trên màn hình Cuối cùng, quy trình kết xuất hoàn thiện hình ảnh nước.
(Rendering) tạo ra sản phẩm thực sự
Mô phỏng nước đóng vai trò quan trọng trong lĩnh vực mô phỏng nhờ vào hiệu ứng nước tạo ra cảm giác chân thực và lôi cuốn cho hệ thống, mặc dù không phải là hình ảnh thật Hiệu ứng này mang lại sự hài hòa và nhẹ nhàng cho chuyển động của các đối tượng Việc thể hiện thành công hiệu ứng nước trong Thực tại ảo sẽ giúp chúng ta khám phá sâu hơn vào thế giới ảo, từ đó tạo ra những giá trị thực 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 là một trong những thách thức lớn nhất trong công nghệ thực tại ảo, đòi hỏi sự phức tạp và chính xác cao Mô phỏng này có thể diễn ra theo thời gian thực hoặc không, với các mô hình đơn giản không yêu cầu tính chính xác cao Ví dụ, để mô phỏng mặt nước động không theo thời gian thực, có thể sử dụng các mặt phẳng với vật liệu nước trượt lên nhau, trong khi mô phỏng vòi nước chảy theo thời gian thực có thể thực hiện bằng Particle System trong 3DsMax Tuy nhiên, việc tái hiện đúng các tính chất vật lý và hiệu ứng nước theo thời gian thực vẫn là một thách thức lớn, với kết quả nghiên cứu hiện tại vẫn còn hạn chế.
Nước là một chất lỏng đặc biệt với nhiều trạng thái và tính chất phức tạp, khác biệt so với các loại vật chất khác Để mô phỏng thành công nước và các chất lỏng nói chung, cần dựa vào các tính chất vật lý của chúng và xác định rõ hình thái của chất lỏng cầ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 tác động của các lực ngoại lực khác nhau, các dạng nước sẽ trải qua sự biến đổi về hình dạng và chuyển động Có thể xem xét một số trường hợp cụ thể để hiểu rõ hơn về hiện tượng này.
- 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
Khi có gió mạnh, mặt nước sẽ xuất hiện nhiều hiệu ứng khác nhau tùy thuộc vào loại nước và tác động cụ thể Dưới đây là một số hiệu ứng nước cơ bản mà chúng 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 :
Để thể hiện sóng nước, có thể sử dụng các điểm ảnh mô phỏng sóng chuyển động theo chiều thẳng đứng với các thông số như tần số, biên độ và góc radian Những thông số này tạo ra sóng, từ đó hình thành nên mặt sóng đa dạ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ó thể tạo ra mặt sóng bằng cách cho các khối hình cơ bản chuyển động, sau đó sử dụng kỹ thuật ghép ảnh, cắt xén và biến đổi ảnh để làm cho các hình cơ bản kết hợp một cách mềm mại và ăn khớp hơn Phương pháp này có ưu điểm là dung lượng nhỏ và tốn ít bộ nhớ.
Các trò chơi 3D trực tuyến đòi hỏi dung lượng và tốc độ đường truyền cao để đáp ứng nhanh chóng thao tác của người chơi Để tạo hiệu ứng nước, các nhà phát triển thường sử dụng phương pháp chụp ảnh ngoại cảnh kết hợp với các kỹ thuật ghép ảnh và làm trơn Ngoài ra, họ còn áp dụng các phương pháp Texture để tạo bề mặt cho đối tượng và xây dựng các script từ những hình ảnh riêng lẻ hoặc sử dụng 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, bao gồm phản xạ và khúc xạ, người ta sử dụng phép chiếu và quay vectơ cùng với màu sắc Khi ánh sáng chiếu vào bề mặt chất lỏng, sẽ xảy ra hiện tượng phản xạ và khúc xạ, trong khi ánh sáng chiếu vào bề mặt chất rắn sẽ dẫn đến phản xạ và khuếch tán.
Để thể hiện hiệu ứng giọt nước rơi, cần xem xét nhiều thông số quan trọng 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 và độ trong suốt của giọt nước Giọt nước được mô phỏng bằng hình học cơ bản, sau đó được bổ sung các thuộc tính trên và đưa vào một hệ vật để thể hiện một cách sinh động.
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, vì cả hai đều liên quan đến chuyển động trong môi trường Trong khi giọt nước di chuyển trong không khí, thì bọt khí lại chuyển động trong nước Chỉ cần điều chỉnh các thông số cho phù hợp với từng môi trường là có thể tạo ra hiệu ứng mong muốn.
Kỹ thuật thể hiện hiệu ứng nước chảy được mở rộng hơn so với kỹ thuật thể hiện hiệu ứng sóng nước bằng cách thêm thông số vận tốc và hướng vector cho các điểm chuyển động hoặc các hình cơ bản chuyển động.
Có hai kỹ thuật chính để thể hiện hiệu ứng nước dựa vào mục đích sử dụng: 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 giả mặt nước như Texture, Sclip, ghép ảnh và biến đổi ảnh thường được áp dụng cho những đối tượng không quan trọng trong mô phỏng nhằm giảm dung lượng bộ nhớ và tăng tốc độ phản hồi, đặc biệt trong các trò chơi Tuy nhiên, bài viết này sẽ tập trung vào việc khám phá các 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 dựa vào các tính chất vật lý của chất lỏng, đặc biệt là nước Bài viết này sẽ giới thiệu một số tính chất vật lý của nước và các chất lỏng khác, nhằm cung cấp nền tảng cho việc hiểu biết về 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 áp dụng để xác định góc tiếp xúc giữa chất lỏng (lỏng, khí) và 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ẹ như giọt nước trên bề mặt Phương pháp bề mặt ảo (Virtual Surface) là trọng tâm của kỹ thuật này, giúp điều chỉnh 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 dựa trên mối liên hệ giữa bề mặt chất rắn và bề mặt chất lỏng, từ đó suy ra sức căng bề mặt chung, bao gồm sức căng lỏng – đặc, lỏng – khí, và đặc – khí Mô hình góc tiếp xúc động được sử dụng để lựa chọn góc tiếp xúc (Contact Angle) dựa vào 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ỏng.
Thuật toán này có khả năng xử lý chính xác các biến dạng của giọt nước và nghiên cứu các bề mặt rắn, bao gồm cả cong và phẳng Kết quả cho thấy thuật toán có thể mô phỏng nhiều hiện tượng của chất lỏng như giọt nước bị dẹt và xâu thành chuỗi, giọt nước kéo căng và chia nhỏ, cũng như giọt nước lơ lửng trên bề mặt cong và hiệu ứng mao dẫn.
Sức căng bề mặt đóng vai trò quan trọng trong việc mô phỏng chất lỏng co giãn nhẹ Hiện tượng này xảy ra do sự mất cân bằng lực kết cấu phân tử tại bề mặt phân giới, nơi hai đối tượng như lỏng-khí, lỏng-rắn hoặc khí-rắn gặp nhau.
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 mô tả qua mối quan hệ với các áp lực khác, theo Định luật Laplace: Γpsurf = γ.k, trong đó Γp surf là các áp lực khác tác động 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, tại điểm giao nhau của ba mặt phân cách, nếu đường tiếp xúc đạt trạng thái cân bằng không có ngoại lực tác động, thì sức căng bề mặt ngoài được biểu diễn bằng phương trình: γsa – (γlacosθs + γls) = 0.
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
Góc cân bằng của giọt nước trên bàn có thể nhỏ hơn θs, do sự uốn cong của đường tiếp xúc tăng lên nhằm duy trì áp suất phù hợp với trọng lực.
Giống như các chương trình mô phỏng chất lỏng khác, quy trình mô phỏng được chia thành các bước chính Bước đầu tiên là cập nhật trường vận tốc, sau đó trường vận tốc này sẽ được sử dụng để điều chỉnh sự thay đổi của bề mặt chất lỏng.
Kỹ thuật này sử dụng lưới 3D để mô phỏng vận tốc của chất lưu, với bề mặt của các ô lưới biểu diễn cho sự chuyển động Bề mặt giữa chất lỏng và khí được thể hiện qua trường khoảng cách, đóng vai trò quan trọng trong việc tạo ra bề mặt ảo bằng cách điều chỉnh trường này.
Phương pháp này thể hiện chất lỏng thông qua bề mặt của nó, trong đó việc xác định bề mặt chất lỏng được thực hiện bằng cách ngoại suy bề mặt ảo Đồng thời, sự vận động của bề mặt thoáng của chất lỏng được theo dõi thông qua phương pháp Level-set.
Có thể áp dụng các phương pháp cơ sở vào thuật toán để thực hiện mô phỏng hiệu quả Đầu tiên, phương pháp Implicit Euler được sử dụng để giải quyết khuyếch tán mômen nhớt Tiếp theo, phương pháp semi-lagrangian được áp dụng để tính toán bình lưu vận tốc, và cuối cùng là giải phương trình Poisson.
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 tôi sử dụng trường khoảng cách Φ để mô phỏng hiệu quả mặt phân cách lỏng – khí.
Diffusion Advection Projection with surface tension
Cập nhật vận tốc và bề mặt liên quan đến 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 đạt trạng thái cân bằng, phù hợp với lực căng bề mặt trên đường tiếp xúc theo quan điểm của Young Nếu bề mặt thực tế không yêu cầu góc tiếp xúc, kết quả sẽ cho ra mặt không cong Phương pháp của chúng tôi thay đổi bề mặt chất lỏng ban đầu xung quanh mỗi ô độc lập trên đường tiếp xúc, do đó độ cong được tính toán từ sự thay đổi của các bề mặt mới, có tính đế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 là hợp của bề mặt lỏng-khí và bề mặt lỏng-rắn Bề mặt đầy đủ có thể được xác định nhờ trường khoảng cách Bằng cách thay đổi trường này, chúng tôi thay thế bề mặt lỏng-rắn bằng bề mặt ảo Sau đó, chúng tôi đánh giá độ cong trên bề mặt mới và sử dụng độ cong này như áp lực sức căng bề mặt.
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 phẳng chứa đường tiếp xúc L(t), trong khi góc giữa chúng xác định góc tiếp xúc giữa hai pha Ωs và Ωl Mặt ảo của chúng ta bắt đầu từ L(t) và mở rộng vào 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 và chất rắn Cụ thể, mặt ảo V(s,t) được xác định theo công thức liên quan.
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)
Khi góc hiện tại θc bằng góc tiếp xúc θs, đường thẳng tiếp xúc cần được ổn định trong mặt phẳng trực giao Điều này đã được xác nhận qua phương pháp bề mặt ảo, trong đó độ 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 phương pháp Lagrangian, mô tả chất lỏng thông qua các phần tử (Particles) và theo dõi trực tiếp sự di chuyển của chúng trong không gian Phương pháp này không tập trung vào việc bảo toàn khối lượng, mà cung cấp một khái niệm mô phỏng đơn giản và linh hoạt.
Mô phỏng dựa trên hạt (Particle-based) sử dụng phương pháp SPH (Smoothed Particle Hydro Dynamics) được phát triển bởi Lucy, Gingold và Monaghan Phương pháp này cho phép các phần tử trong chất lỏng duy trì các thuộc tính như mật độ, khối lượng và vận tốc, đồng thời được theo dõi liên tục 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 mô phỏng thông qua việc phát triển các phần tử trong không gian và thời gian Quá trình mô phỏng hạt bắt đầu bằng việc tính toán và tích lũy các lực tác động lên từng hạt Những lực này sau đó được sử dụng để điều chỉnh vận tốc và cập nhật vị trí của hạt Ở bước cuối cùng, vận tốc được tính lại dựa trên sự thay đổi vị trí, với lý do rằng độ giãn tương đương với xung lực được áp dụng vào vận tốc ở bước tiếp theo Các xung lực này được tính toán tại vị trí gần với vị trí cuối cùng, nhằm ngăn chặn sự không ổn định bằng cách dự đoán các trạng thái khó khăn trước khi chúng xảy ra.
Tính không nén và không nhóm được thể hiện qua thủ tục nới lỏng mật độ kép, cho thấy hiệu ứng của chất dẻo đàn hồi và tính không tuyến tính Điều này đạt đượ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.1 Mật độ và áp suất
Trong SPH, mục tiêu chính là giảm thiểu hệ số nén và chuyển đổi thành ràng buộc cục bộ nhằm duy trì mật độ không đổi Công thức tính mật độ tại hạt i được xác định như sau:
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
Mật độ không hoàn toàn phản ánh đặc tính vật lý mà chỉ là con số xác định số lượng các hạt xung quanh một hạt khác Các nhà khoa học đã đề xuất nhiều cách nhìn nhận khác nhau về mật độ, như việc mô tả nó qua không gian giới hạn bởi đa thức (r/h) -2 hoặc hình dạng chuông với đa thức (1-(r/h) 2 ) 3 Tuy nhiên, mô hình 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 giữa mật độ hiện tại ρi và mật độ nguyên ρ0.
Pi = k(ρi - ρ0) với k là độ cứng Để đơn giản hóa công thức này, chúng ta kết hợp hằng số tỷ lệ với mật độ trong SPH cùng với các tham số k và ρ0 Hơn nữa, giả định rằng tất cả các hạt đều có khối lượng giống nhau, giúp loại bỏ khối lượng ra khỏi 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 thực hiện qua vòng lặp toàn cục cho mỗi particle i, bao gồm hai bước trên mỗi hàng xóm j Bước đầu tiên là ước lượng mật độ cục bộ tại particle i bằng cách tính tổng trọng lượng của các hàng xóm (phương trình 1) Nếu mật độ này cao hơn ρ0, các hàng xóm sẽ bị đẩy ra xa; ngược lại, nếu thấp hơn, chúng sẽ được kéo lại gần Trong bước thứ hai, việc đẩy hoặc kéo các hàng xóm diễn ra giữa mỗi cặp i,j, với sự giảm mật độ di chuyển giữa hai particle tỷ lệ với áp suất giả và trọng lượng theo phương trình tuyến tính.
: 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 thực hiện việc đổi chỗ bằng cách thay đổi vị trí dự đoán của hạt j, trong khi hạt i cũng được đổi chỗ ngược lại Điều này giúp duy trì tính liên tục của hành động và bảo toàn xung lực tuyến tính Sự dịch chuyển này diễn ra theo hướng dọc, đảm bảo rằng động lượng được bảo tồn.
2.2.3.3 Near – Density and Near- Pressure
Tiến trình làm giảm mật độ không ngăn chặn được sự nhóm cụm của các particles, khi một particle có thể vươn đến miền mật độ dừng bằng cách tác động lên các hàng xóm xung quanh Điều này dẫn đến việc chất lỏng tách thành các nhóm độc lập, thể hiện tính không cố kết Để ngăn chặn sự nhóm cụm, người ta thêm một lực đẩy độc lập vào khoảng cách, nhưng điều này lại gây ra những vấn đề trong mô phỏng chất lỏng có tính nhớt thấp.
Để giải quyết vấn đề nhóm cụm, người ta thêm vào một áp suất thứ hai phụ thuộc vào bối cảnh Lực mới này không phụ thuộc vào khoảng cách giữa các hạt mà phụ thuộc vào mật độ mới, được gọi là near density, và mật độ này được tính theo một công thức cụ thể.
Nó sử dụng một nhân để đạt được mục tiêu giả, nhằm tăng cường mật độ đơn lẻ của chính nó Khi thử nghiệm với các mục tiêu giả khác nhau, hình lập phương đơn này cho kết quả tốt trong các bài kiểm tra Để tạo ra lực đẩy, người ta định nghĩa gần áp suất (near-pressure) như sau:
Phương trình này tương tự như phương trình (2) nhưng không còn mật độ thưa (rest density) Near-pressure tạo ra sự dịch chuyển cho mỗi cặp trong bước 2 của quá trình giảm mật độ Do đó, phương trình 3 trở thành: Ở đây, kernel bậc 2 minh họa cách lực đẩy (near-repulsion) được áp dụng cho các hàng xóm Hơn nữa, kernel near-pressure tương ứng với đạo hàm của kernel near-density.
Thuật toán 2 tóm tắt phương pháp gần đúng để tính toán bảo toàn khối lượng và tính nhóm cụm Đầu tiên, mật độ và mật độ gần được tính cho mỗi particle theo phương trình 1 và 4, sau đó được đánh giá bằng phương trình 2 và 5 Tiếp theo, trong vòng lặp thứ 2, sự dịch chuyển được áp dụng cho các particle lân cận (phương trình 6) Hàng xóm của particle j được dịch chuyển ngay lập tức, nhưng chỉ những sự di chuyển của particle i mới được cộng lại và áp dụng trong bước cuối của quá trình nới lỏng Thứ tự giãn của particle i là ngẫu nhiên nhưng không thay đổi trong suốt mô phỏng Kết quả từ việc giãn mật độ kép thể hiện sự cố kết của chất lỏng.
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:
Chúng ta đã khám phá cách giảm sự nhóm cụm, và phương pháp này còn mang lại một lợi ích quan trọng khác là hiệu ứng sức căng mặt ngoài Sức căng bề mặt là một hiện tượng tự nhiên, được hình thành từ lực hút giữa các phân tử.
ỨNG DỤNG MÔ PHỎNG NƯỚC
MÔ PHỎNG NƯỚC TRONG CÁC HỆ THỰC TẠI ẢO
Nước đóng vai trò quan trọng trong các hệ Thực tại ảo, đặc biệt là trong các mô phỏng diễn ra trong môi trường nước Ví dụ, hệ thống mô phỏng tập lái tàu thuỷ tại Đại học GTVT HCM, mô phỏng lái xe lội nước của Công ty CadPro-Việt Nam, và mô phỏng chất lượng nước hồ Tây tại Viện khoa học và Công nghệ Môi trường đều minh chứng cho tầm quan trọng này.
Hình 3.1: Hệ thống tập lái tầu thuỷ của trường ĐH GTVT HCM
Việc mua các hệ mô phỏng từ nước ngoài đòi hỏi một khoản chi phí lớn, trong khi đó, các nhà khoa học trong nước lại thiếu cơ hội để tiến hành 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
Trong các hệ thống mô phỏng lái tàu thủy và xe lội nước, việc mô phỏng nước chủ yếu tập trung vào các hiệu ứng bề mặt như sóng nước, dòng chảy, ánh sáng và màu sắc Ngược lại, trong các mô phỏng tính chất của nước, sự chú ý được đặt vào các thuộc tính cụ thể như độ trong, các chất lơ lửng, độ sánh và sự hiện diện của sinh vật trong nước.
Hình 3.2: Thể hiện hiệu ứng mặt nước đã được tạo
Tùy thuộc vào yêu cầu của bài toán, việc lựa chọn kỹ thuật mô phỏng phù hợp là rất quan trọng Kỹ thuật mô phỏng dựa trên vật lý (Physically-based) có ưu điểm nổi bật trong việc mô phỏng nước với kích thước nhỏ, đặc biệt là khi quan sát các giọt nước Kỹ thuật này giúp tái hiện mặt nước một cách chân thực, thể hiện rõ các tính chất vật lý như sức căng bề mặt và độ dính bám, cũng như hình dạng đa dạng của giọt nước trong quá trình chuyển động Tuy nhiên, nhược điểm của nó là yêu cầu khối lượng xử lý lớn, tiêu tốn nhiều dung lượng bộ nhớ và gặp khó khăn trong việc mô phỏng bề mặt nước rộng lớn.
Hình 3.3: Hiệu ứng chuyển động của vật rơi xuống nước
Kỹ thuật Particles-based sử dụng các đa giác và khối hình Polygon để tạo bề mặt nước, mặc dù không hiệu quả cho các hình ảnh nước nhỏ do thiếu tính chân thực và khó khăn trong việc tạo hiệu ứng bề mặt Tuy nhiên, với bề mặt rộng lớn, kỹ thuật này thể hiện ưu điểm vượt trội, mang lại các hiệu ứng sống động như sóng nước, giao thoa sóng, nước chảy, hiệu ứng in bóng và phản chiếu ánh sáng.
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à bước quan trọng trong quy trình phát triển hệ thống Thực tại ảo, với độ chính xác của hình ảnh ảnh hưởng lớn đến trải nghiệm của người dùng Có nhiều công cụ phần mềm hỗ trợ tạo ứng dụng đồ họa và mô hình nước trong Thực tại ảo, vì vậy việc lựa chọn phần mềm phù hợp về tính năng và giá cả là rất quan trọng Mỗi phần mềm đều có những ưu điểm và nhược điểm riêng, và bài luận này sẽ cung cấp đánh giá khách quan về các phần mềm phổ biến như Maya, 3D Studio Max, Softimage, Renderman, Houdini và LightWave thông qua ý kiến của các chuyên gia đã sử dụng.
Hình 3.5: Thể hiện dòng nước chảy bằng các phần tử lập thể particles
Biểu đồ dưới đây thể hiện sự phổ biến của các phần mềm mô hình hóa ba chiều dựa trên yêu cầu kinh nghiệm của các công ty khi tuyển dụng nhân viên trong lĩnh vực xây dựng thế giới đồ họa ba chiều Thống kê này được thực hiện bởi 3DRender Mặc dù nghiên cứu về thực tại ảo và mô phỏng nước tại Việt Nam còn hạn chế, nhưng với chiến lược phát triển hợp lý và những bước đi đúng đắn, chúng ta có thể hy vọng sẽ phát triển những hệ thống mô phỏng lớn, tương đương với các hệ thống trên thế giới, đáp ứng nhu cầu trong nước và quốc tế.
Maya 3D Studio Max Softimage Renderman Houdini LightWave
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ế đồ họa 3D chuyên nghiệp cho thấy sự khác biệt rõ rệt giữa các phần mềm Điều này giúp người dùng dễ dàng lựa chọn công cụ phù hợp với trình độ và nhu cầu của họ trong lĩnh vực thiết kế 3D.
CHƯƠNG TRÌNH THỬ NGHIỆM
Trong luận văn này, thuật toán mô phỏng nước Physically-Based và Particle-Based đã được triển khai thử nghiệm bằng ngôn ngữ lập trình C# trong môi trường 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 các hiệu ứng in bóng nước và sóng nước, đồng thời đảm bảo khả năng tích hợp vào hệ thống Thực tại ảo Bài toán cần phân tích và xác định rõ ràng các vấn đề liên quan để phát triển hiệu quả chương trình này.
Mô phỏng nước là một thách thức mới và phức tạp, nhưng lại rất quan trọng trong lĩnh vực Thực tại ảo Việc giải quyết bài toán này là cần thiết và cấp bách, với hai hướng tiếp cận chính để phát triển giải pháp hiệu quả.
Phương pháp giả mô phỏng sử dụng kỹ thuật xử lý ảnh để tạo ra các đối tượng và hiệu ứng đánh lừa thị giác con người Chẳng hạn, nó có thể biến đổi hình ảnh 2D thành hình ảnh 3D hoặc áp dụng các phương pháp Texture để tạo chiều sâu và sự chân thực cho hình ảnh.
Phương pháp mô phỏng thật sử dụng các kỹ thuật tạo ra đối tượng và hiệu ứng dựa trên các thuật toán khoa học, nhằm biểu diễn chính xác tính chất vật lý của đối tượng và các hàm biến đổi liên quan.
Luận văn chọn hướng tiếp cận giả mô phỏng để thể hiện mặt nước với các hiệu ứng sóng, in bóng và các yếu tố khác Các hiệu ứng cơ bản được lựa chọn bao gồm 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 cần đáp ứng những yêu cầu này và đảm bảo tính thẩm mỹ để làm hài lòng người quan sát.
Có thể mở rộng để tạo ra các tương tác điều khiển với bề mặt nước, giúp làm cho mặt nước trở nên sinh động hơn Điều này cũng cho thấy khả năng tích hợp dễ dàng vào một hệ thống mô phỏng thực tại ảo.
Để hiểu rõ quy trình mô phỏng hiệu ứng mặt nước, cần nắm vững quy trình xây dựng của một hệ Thực tại ảo Điều này không chỉ giúp giải quyết các vấn đề liên quan mà còn nâng cao chất lượng mô phỏng.
Bài viết phân tích yêu cầu của bài toán và đề xuất giải pháp thông qua kỹ thuật Physically-Based nhằm thể hiện hiệu ứng mặt nước theo các yêu cầu đã đặt 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 sử dụng phép chiếu ảnh để tạo ra hình ảnh đối ngẫu với ảnh gốc ban đầu, và tất cả các thao tác sẽ được thực hiện trên hình ảnh đối ngẫu này.
Mặt nước dao động tạo ra hiệu ứng sóng bằng cách chia ảnh thành các đường kẻ ngang với bề rộng nhỏ và chiều dài bằng chiều dài ảnh Sử dụng vòng lặp để vẽ lại các đường kẻ từ ảnh gốc, vòng lặp này sẽ tạo ra sự thay đổi từ ảnh nguồn đến ảnh đích thông qua việc sao chép các đường kẻ Thay vì sao chép từng đường một, chúng ta xây dựng hiệu ứng sóng một cách đồng bộ và mượt mà.
Hàm giá trị thay đổi theo hàm sine, thể hiện tỷ lệ giữa chiều dài cạnh đối diện với góc nhọn và chiều dài cạnh huyền, tạo ra hiệu ứng sóng nước Một sự thay đổi đơn giản chỉ tạo ra gợn sóng cho bức ảnh mà không tạo ra hiệu ứng cho bề mặt hồ Để tạo ra nhiều sóng, cần thực hiện nhiều thay đổi vị trí của các dòng kẻ Kích thước độ dịch chuyển thay đổi theo tọa độ y, với các đường gần phần trên bức ảnh thay đổi ít hơn so với các đường ở phần dưới, giúp phối cảnh trở nên chân thực hơn.
Kỹ thuật Physically-Based đã cho phép mô phỏng mặt hồ với các hiệu ứng như in bóng nước và sóng nước, rất phù hợp cho việc mô phỏng bề mặt lớn Tuy nhiên, việc áp dụng kỹ thuật này gặp khó khăn do nó dựa vào lưới các phần tử đồng đều Để xử lý các điều kiện ngoại lực tác động lên mặt nước, kỹ thuật Particle-Based được sử dụng, cho phép theo dõi trực tiếp sự di chuyển của từng phần tử trong quá trình tạo ra só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 đề
Bài toán này có những vấn đề tương tự như bài toán 1, nhưng cần lưu ý đế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 Để giải quyết vấn đề này, luận văn áp dụng phương pháp tiếp cận tương tự như trong bài toán trước.
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 được thể hiện qua việc di chuyển chuột, tạo ra một vòng tròn với bán kính và độ cao xác định Hàm PutDrop(x,y,height) sẽ tạo ra vòng tròn với các thông số radius và height đã được chỉ định.