Kỹ thuật Physically-Based

Một phần của tài liệu Mô phỏng nước trong công nghệ thực tại ảo (Trang 54)

a) Yêu cầu:

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.

Một phần của tài liệu Mô phỏng nước trong công nghệ thực tại ảo (Trang 54)