Vùng sinh của Particles Systems cũng mô tả hƣớng chuyển động ban đầu của các Particles mới. Ví dụ nhƣ trong trƣờng hợp vùng sinh là hình cầu, Particles bay từ điểm gốc ra phía ngoài vùng hình cầu đó nhƣ vụ nổ pháo hoa. Hay trong trƣờng hợp vùng sinh là hình tròn, các Particles xuất phát theo phƣơng thẳng đứng vuông góc với mặt phẳng Oxy giống nhƣ một đài phun nƣớc.
Ta sử dụng công thức (2.2) để xác định giới hạn vùng màn hình mà các Particles xuất hiện. Khi các hạt ra khỏi vùng giới hạn này, có thể nó đã hết thời gian sống (bị chết) hoặc nó bị che khuất.
NumParf = (TBParsaf + Rand () * VarParsaf) * ScreenArea (2. 2) Trong đó
TBParsaf là giá trị trung bình trên màn hình.
VarParsaf là khoảng biến thiên của nó.
Tốc độ di chuyển: Mỗi Particles sẽ đƣợc khởi gán một giá trị ban đầu về vận
tốc. Giá trị này có thể giống nhau cho tất cả các Particles hoặc có thể khác nhau với những giá trị ngẫu nhiên bằng cách sử dụng công thức (2.3).
InitialToc_do= TBToc_do + Rand () * VarToc_do (2. 3)
Trong đó:
TBToc_do: là tốc độ trung bình.
Vartoc_do: là khoảng biến đổi của tốc độ.
Màu sắc và độ mờ của Particles: Nếu có nhiều loại Particles Systems trong
một mô phỏng, ta phải xem xét đến các thuộc tính từng loại. Có những loại Particles khác biệt nhau chỉ ở thuộc tính màu sắc. Ngƣời lập trình cần xác định loại màu để gán giá trị ban đầu cho phù hợp với các Particles. Đôi khi ngƣời ta cũng sử dụng công thức (2.4) để tạo ra các màu ngẫu nhiên tăng thêm sự đa dạng cho đối tƣợng. Ví dụ nhƣ mô phỏng bắn pháo hoa cần sự đa dạng đan sen của các loại màu sắc.
InitialColour = TBColour + Rand () * VarColour (2. 4)
Trong đó:
TBColour: là màu sắc trung bình.
VarColour: là khoảng biến đổi của màu sắc.
Tuổi thọ của Particles: tuổi thọ của mỗi Particles là không giống nhau, nó
có yếu tố ngẫu nhiên. Để tạo một thời gian sống cho Particles ta sử dụng yếu tố ngẫu nhiên với công thức dƣới đây:
InitialTim_life= TBTime_life + Rand () * VarTime_life (2. 5) Trong đó:
TBTime_life: là tuổi thọ trung bình.
VarTime_life: là khoảng biến đổi của tuổi thọ.
Trên đây chỉ là những thuộc tính thƣờng dùng và hữu ích nhất trong hầu hết các Particles Systems. Một Particles Systems có thể có nhiều thuộc tính khác nữa và khoảng biến thiên của chúng cũng không hề bị giới hạn. Tùy thuộc vào tứng ứng dụng mà chúng ta sẽ sử dụng những tham số phù hợp.
2. 2. 3. Tính toán, cập nhật các thuộc tính cho Particles
Sau khi các Particles đƣợc khởi tạo các giá trị ban đầu nhƣ: vị trí, vận tốc, hƣớng chuyển động, kích thƣớc, màu sắc, tuổi thọ … nó liên tục đƣợc tính toán lại các giá trị để phù hợp với mục đích và đối tƣợng mô phỏng. Đặc biệt quan tâm tới thuộc tính tuổi thọ của Particles. Ở mỗi lần lặp, ngƣời ta kiểm tra xem tuổi thọ của Particles lớn hơn 0 thì tiếp tục tính toán các thuộc tính khác rồi đƣa nó vào quá trình rendering, nếu tuổi thọ của nó bằng 0 thì nó sẽ bị xóa khỏi hệ thống.
Công việc tính toán lại các thuộc tính cho Particles vô cùng khó khăn và phức tạp bởi những tính chất vật lý và hóa học của đối tƣợng. Nó đòi hỏi tính chính xác và sự chân thực.
2.2.4. Particles Rendering
Khi các tham số về vị trí, màu sắc, hình dạng của tất cả các Particles đều đã đƣợc tính toán cho mỗi frame thì thuật toán render sẽ đƣợc sử dụng để tạo nên một bức tranh. Việc render Particles cũng gặp phải một số vấn đề khó khăn bởi các Particles:
Có thể bị mờ.
Có thể bị che khuất bởi các Particles khác đứng trƣớc nó.
Có thể đổ bóng lên các Particles khác đứng sau nó.
Hình 2. 8: Bức tranh mô phỏng sự rendering Particles
Để khắc phục nhƣợc điểm này, ngƣời ta đơn giản hóa nó nhƣ sau: 1. Giả sử mỗi Particles đƣợc coi là một nguồn sáng điểm riêng biệt.
2. Mỗi Particles sẽ cộng thêm một lƣợng ánh sáng cho các pixel mà nó che khuất. Nhƣ vậy một Particles ở đằng sau không bị che bởi Particles trƣớc nó mà chỉ làm sáng thêm các pixel mà nó che phủ.
3. Nếu hạt đang chuyển động thì có thể coi nó nhƣ là một đƣờng thẳng ngắn. 4. Render riêng biệt từng loại Particles của đối tƣợng và tổng hợp các thành phần
đó nên màn hình.
2. 3. Ƣu nhƣợc điểm của kĩ thuật Particles
2.3.1. Ưu điểm
Khi biểu diễn các đối tƣợng nhƣ: khói, lửa, nƣớc, cây cỏ … thì kĩ thuật Particles có một số ƣu điểm quan trọng so với các kĩ thuật hƣớng bề mặt cổ điển:
Thứ nhất, một hạt (trong trƣờng hợp này có thể coi một hạt nhƣ là một điểm trong không gian 3 chiều) là một thành phần nguyên tố đơn giản hơn cả đa giác – đơn giản nhất của một kĩ thuật đại diện bề mặt. Do đó, trong cùng một lƣợng thời gian tính toán có thể xử lý nhiều các phép tính cơ bản và tạo ra một hình ảnh phức tạp hơn. Việc tạo hiệu ứng nhòe cho chuyển động của các hạt cũng trở nên đơn giản hơn trong khi điều này đã bị bỏ qua trong kĩ thuật tổng hợp hình ảnh.
Một lợi thế thứ hai đó là định nghĩa mô hình định theo thủ tục và đƣợc kiểm soát bởi các tham số ngẫu nhiên. Vì vậy, để có đƣợc một mô hình có nhiều chi tiết thì không nhất thiết phải bỏ ra nhiều thời gian thiết kế nhƣ các hệ thống hƣớng bề mặt khác. Mặt khác, vì nó là thủ tục nên một hệ thống hạt có thể điều chỉnh ở mức độ chi tiết để phù hợp với các thông số đã đƣợc quan sát. Khi càng phóng to một Particles Systems thì càng cho ta cái nhìn chi tiết hơn.
Thứ ba, đối tƣợng trong mô hình hệ thống hạt là đối tƣợng sống, có nghĩa là chúng có thể thay đổi hình thức trong một khoảng thời gian và rất khó có thể mô hình hóa sự chuyển động phức tạp này bằng các kĩ thuật mô hình dựa vào bề mặt đối tƣợng.
2.3.2. Nhược điểm
Một nhƣợc điểm lớn của các Particles Systems là một lƣợng lớn các Particles phải đƣợc biến đổi để tạo nên một bức tranh mô phỏng. Mỗi Particles đòi hỏi một không gian trong bộ nhớ của máy tính. Trong một đối tƣợng mô phỏng yêu cầu hàng ngàn phân tử Particles, chẳng hạn nhƣ nƣớc, một lƣợng lớn không gian bộ nhớ phải đƣợc phân bổ cho toàn bộ khung cảnh. Mỗi lần một Particles đƣợc tạo ra, nó đƣợc phân bổ một không gian trong bộ nhớ. Khi Particles chết đi nó phải đƣợc xóa khỏi hệ thống, không gian bộ nhớ đƣợc cấp phát cho nó phải đƣợc giải phóng. Nếu bộ nhớ không đƣợc quản lý đúng cách, hiệu suất rendering sẽ trở nên hạn chế.
2. 4. Kết luận
Particles Systems là một tập hợp các cá thể nhỏ bé trong không gian 3D. Các Particles không tĩnh mà luôn biến đổi trong không gian theo thời gian. Chúng trải qua một chu kì sống gồm 3 giai đoạn: sinh ra; thay đổi theo thời gian rồi chết đi. Bằng cách bổ sung các thuộc tính cho Particle ta có thể tạo ra các mô phỏng phức tạp với nhiều hiệu ứng khác nhau. Khi mô phỏng các hiện tƣợng bằng kĩ thuật Particle ngƣời ta luôn chú ý tới tính chất ngẫu nhiên. Chính điều này đã làm cho các hiệu ứng trở nên chân thực hơn.
Hình 2. 9: Reeves sử dụng particles Systems để tạo ra rừng cây trong bộ phim ngắn: The Adventures of André and Wally B.
Để tạo ra một hiệu ứng mô phỏng, đòi hỏi ngƣời lập trình phải xây dựng đƣợc các thuộc tính chính xác của đối tƣợng. Nghiên cứu các tính chất vật lý tác dụng lên đối tƣợng nhƣ: trọng lực, lực ma sát, phƣơng trình chuyển động …
Ngoài việc sử dụng Particles Systems để mô phỏng các đối tƣợng mờ nhƣ: tuyết, hơi nƣớc, khói … ngƣời ta còn sử dụng nó để mô phỏng cỏ, cây.
Chƣơng 3
KĨ THUẬT PARTICLES CHO MÔ PHỎNG SỰ ĐIỆN PHÂN VÀ CHƢƠNG TRÌNH THỬ NGHIỆM
3. 1. Bài toán điện phân
Để củng cố cho phần lý thuyết đã nghiên cứu ở chƣơng 2, tác giả sẽ áp dụng nó để thực hiện việc mô phỏng sự điện phân.
3.1.1. Bài toán
Bài toán điện phân nhƣ sau: Lấy một bình đựng chất điện phân là dung dịch bạc nitrat (AgNO3). Cắm vào đó hai điện cực dẫn điện bằng kim loại. Một điện cực làm bằng bạc (Ag), một kim loại làm bằng sắt (Fe). Nối hai điện cực với một nguồn điện (acquy) qua một điện trở bảo vệ và một ampe kế sao cho điện cực làm bằng bạc nối với cực dƣơng của nguồn điện (gọi là anot), điện cực làm bằng sắt nối với cực âm của nguồn điện (gọi là catot).
Hình 3. 1. Hình ảnh điện phân dung dịch AgNO3
1. Input:
Dung dịch bạc nitrat (AgNO3)
Hai điện cực: cực dƣơng (anot) bằng kim loại bạc; cực âm (catot) bằng kim loại sắt
2. Output:
Sự di chuyển các ion NO3- về anot, ion Ag+về catot
Cực dƣơng bị ăn mòn.
Cực âm có một lớp bạc bám vào
Tính chất vật lý và hóa học của sự điện phân dung dịch AgNO3
Khi hòa tan dung dịch bạc nitrat, trong dung dịch sẽ tồn tại các ion Ag+ và ion NO3- chuyển động tự do trong bình điện phân. Khi cắm 2 thanh kim loại vào dung dịch đồng thời nối 2 thanh kim loại này với dòng điện một chiều với điều kiện thanh kim loại bằng bạc nối với cực dƣơng của dòng điện, thanh kim loại bằng sắt với cực âm. Khi đó xảy ra hiện tƣợng điện phân dung dịch AgNO3.
Các cation Ag+ di chuyển về catot và nhận electron từ nguồn điện đi tới.
Age Ag
Nguyên tử bạc này bám vào thanh sắt bên catot.
Ở anot, electron bị kéo về cực dƣơng của nguồn điện, tạo điều kiện hình thành ion Ag+ trên bề mặt thanh kim loại bạc và do đó nó tiếp xúc với dung dịch.
Ag Ag e
Khi anion (NO3)- chạy về phía anot nó kéo ion Ag+ vào dung dịch tạo thành muối AgNO3 nhƣng rất nhanh nó lại phân li thành các ion Ag+ và ion (NO3)-. Nhƣ vậy bạc ở anot dần dần tan vào dung dịch và di chuyển về catot, nhận electron từ nguồn điện để tạo thành nguyên tử Ag bám vào kim loại bên catot. Còn tại anot xảy ra quá trình oxi hóa nguyên tử bạc. Khi anot bị oxi hóa hết thì đây cũng là giai đoạn cuối của quá trình điện phân bởi vì khi hết điện cực anot thì sẽ có sự cách điện và quá trình điện phân sẽ dừng. Quá trình điện phân kết thúc, ta thấy thanh kim loại bên anot bị tan còn bên catot thì đƣợc phủ một lớp kim loại bạc. Đây là hiện tƣợng điện phân dƣơng cực tan. Sau khi điện phân xong, trong dung dịch còn lại các ion Ag+, NO3- và kim loại bên catot có nguyên tử Ag bám vào. Ngƣời ta còn ứng dụng sự điện phân này để phủ một lớp bạc lên các kim loại khác.
3.1.2. Ý tưởng cho mô phỏng
Công việc mô phỏng này gồm 2 việc chính:
Xây dựng mô hình mô phỏng: sử dụng phần mềm 3DS Max 2014 để tạo các đối tƣợng: bình điện phân, các điện cực, nguồn điện và hình dạng các Particles điện tích.
Điều khiển hoạt động của mô hình bằng kĩ thuật Particles: Dựa trên các bƣớc làm việc với kĩ thuật Particles, kết hợp với việc sử dụng ngôn ngữ lập trình C++ để điều khiển hoạt động động của quá trình điện phân.
3. 2. Xây dựng mô hình dụng cụ điện phân
Mô hình các dụng cụ điện phận nhƣ: Bình điện phân, các điện cực, nguồn điện, ampe kế … sẽ đƣợc xây dựng trên phần mềm 3DS Max 2014:
Tạo bình đựng dung dịch AgNO3: dung dịch AgNO3 trong suốt, không màu
Hình 3. 2: Bình đựng dung dịch AgNO3
Hình dạng các Particles điện tích: Đƣợc vẽ dƣới dạng hình cầu. Có 3 loại Particles là Particle nguyên tử Ag, particle anion NO3- và particles cation Ag+. Trong mỗi hình cầu ta có đƣa tên từng loại Particles để tiện theo dõi trong quá trình điện phân xảy ra.
Hai điện cực: Một thanh là kim loại bạc có màu trắng bạc đóng vai trò là điện cực anot, thanh kim loại kia làm bằng sắt có màu đen đóng vai trò là điện cực catot.
Hình 3. 4: Hình ảnh 2 điện cực
Tạo các thiêt bị nguồn điện bao gồm: ampe kế, dây dẫn điện, điện trở.
Hình 3. 5: Hình ảnh nguồn điện một chiều
Nhƣ vậy ta đã xây dựng xong mô hình bình điện phân để phục vụ cho việc mô phỏng sự điện phân dựa trên kĩ thuật Particles trong thực tại ảo. Mô hình bình điện phân có thể xây dựng dƣới dạng các hình khối khác. Tuy nhiên mô hình bình điện phân mô tả nhƣ hình 3.6 là cơ bản và phổ biến nhất.
Mô hình hoàn chỉnh các dụng cụ điện phân
Hình 3. 6: Mô hình hoàn chỉnh các dụng cụ điện phân 3. 3. Kĩ thuật Particles cho mô phỏng sự điện phân 3. 3. Kĩ thuật Particles cho mô phỏng sự điện phân
Sau khi đã tạo đƣợc mô hình từ 3DS Max, chúng ta tiến hành áp dụng kỹ thuật Particles và mô phỏng quá trình điện phân. Từ output của bài toán, ta thấy rằng ta cần làm rõ 3 đặc điểm chính.
Sự di chuyển của các Particles về các điện cực.
Các Particles nguyên tử Ag đi ra khỏi điện cực anot và kim loại bên anot bị ăn mòn dần..
Có một lƣợng Particles nguyên tử Ag bám vào bên catot.
Do đó, ta cần xây dựng 3 loại Particles: Particles nguyên tử Ag; Particles Ag+ và Particles (NO3)-.
3. 3. 1. Khởi tạo các thuộc tính của Particles trong sự điện phân
Vị trí: Hãy coi hình hộp 3.7 là bình đựng dung dịch chất điện phân. Khi hòa tan dung dịch chất điện phân thì sẽ có các ion âm và ion dƣơng chuyển động tự do và hỗn loạn trong bình đựng (theo thuyết điện li). Bởi vậy, ta sẽ khởi tạo các vị trí ngẫu nhiên cho từng loại Particles nhƣng trong giới hạn tọa độ của bình điện phân. Mỗi loại Particles sẽ có các tọa (x, y, z) trong không gian ba chiều.
Hình 3. 7: Vùng sinh của Particles điện tích
Với bài toán của mình tôi sẽ không sử dụng phƣơng pháp sinh ngẫu nhiên số lƣợng các Particles nhƣ ở công thức (2. 1) bởi lẽ, tôi cần phân biệt 3 loại Particles khác nhau, mỗi Particles lại có những thuộc tính khác nhau. Do đó, tôi sẽ đƣa vào chƣơng trình một giá trị hằng số là số lƣợng các Particles có trong dung dịch (bao gồm cả Particles Ag, Particles Ag+ và Particles (NO3-)). Trong đó, tôi đã có sự phân biệt từng loại Particles.
Kích thƣớc: Ta xây dựng các Particles đều có dạng hình cầu, kích thƣớc cố định và giống nhau. Bởi trong thực tế, các ion và vô cùng bé nhỏ có thể chỉ là các chấm nhỏ nên mắt thƣờng ta khó quan sát đƣợc. Khi tiến hành làm thí nghiệm thực tế ta có thể coi những ion này nhƣ những hạt nƣớc li ti chuyển động. Bởi vậy nên tác giả lấy hình cầu làm đại diện cho hình dạng của ion. Để làm đƣợc điều này tác giả sử dụng phần mềm 3Dsmax để tạo ra hình dạng và kích thƣớc Particles điện tích.
Màu sắc: Dung dịch AgNO3 là dung dịch trong suốt, không màu. Các Particles Ag+ và Particles (NO3)- cũng không màu. Các Particles Ag có màu trắng bạc.
Tốc độ và hƣớng di chuyển: Khi chƣa có dòng điện một chiều đi qua dung dịch điện phân, các Particles chuyển động hỗn loạn không theo quy tắc nào. Các Particles di chuyển với vận tốc đƣợc khởi tạo ban đầu nhƣ nhau bởi một hằng số nào đó. Khi có dòng điện một chiều đi qua, dƣới tác dụng của lực điện trƣờng các Particles đều di chuyển theo phƣơng ngang Particles Ag đi từ anot ra dung dịch, Particles Ag+ đi từ dung dịch vào catot, Particles (NO3)- đi từ dung dịch vào anot.
Thời gian sống: Mục đích của việc mô phỏng là cho học sinh thấy đƣợc sự di chuyển của các điện tích về các cực, thấy đƣợc sự ăn mòn bên anot. Do đó tôi