1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mô phỏng hiệu ứng của particle trong xây dựng môi trường thực tại ảo

90 425 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

MỤC LỤC MỤC LỤC LỜI GIỚI THIỆU CHƯƠNG I : TỔNG QUAN VỀ THỰC TẠI ẢO,MÔ HÌNH XỬ LÝ MORFIT VÀ PARTICLE TRONG THỰC TẠI ẢO 1.1 Tổng quan thực ảo 1.1.1 Sơ lược lịch sử phát triển 1.1.2 Các lĩnh vực ứng dụng Thực ảo 1.2 Tổng quan particle thực ảo 33 1.2.1 Particle thực ảo gì? .33 1.2.2 Hiệu ứng particle thực ảo 34 1.2.3 Cơ sở mô hiệu ứng particle 34 1.2.4 Các vấn đề gặp phải trình tìm hiểu nghiên cứu 37 1.2.5 Hướng giả .37 CHƯƠNG II : KỸ THUẬT MÔ PHỎNG .37 2.1 Đặt vấn đề 38 2.2 Kỹ thuật mô 39 2.2.1 Tạo particle 39 2.2.2 Khởi động particle 45 2.2.3 Cập nhật particle: 48 CHƯƠNG III: CHƯƠNG TRÌNH MÔ PHỎNG .53 3.1 Bài toán 53 3.2 Mục đích yêu cầu toán 53 3.3 Phương pháp giải toán 54 3.4 Phân tích chương trình giả toán .54 3.5 Một số kết toán 55 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 59 TÀI LIỆU THAM KHẢO Error! Bookmark not defined PHỤ LỤC .60 Nội dung số tệp đầu *.h 62 Nội dung số tệp chương trình *.CPP 79 -1 - LỜI GIỚI THIỆU Ngày với phát triển khoa học - công nghệ sống người ngày thay đổi Những ứng dụng vào sống ngày phong phú, đa dạng thiết thực Từ lĩnh vực khoa học bản, kinh tế, kỹ thuật lĩnh vực giải trí, du lịch, không lĩnh vực ứng dụng thiết thực hiệu công nghệ thông tin Sự phát triển không ngừng sức mạnh máy tính làm cho số lĩnh vực khó phát triển trước có khả phát triển đạt thành tựu đáng kể Chúng ta kể đến lĩnh vực như: hệ chuyên gia, hệ xử lý thời gian thực…và lĩnh vực khác cần phải nói Thực ảo (Virtual reality) ứng dụng công nghệ Trong thực ảo Particle lại thành phần vô quan trọng Chính mà đồ án tốt nghiệp này, hướng dẫn thầy giáo Th.S Nguyễn Văn Huân môn Các hệ thống thông tin – Khoa công nghệ thông tin - Đại hoc Thái Nguyên, em hướng dẫn tìm hiểu đề tài: Mô hiệu ứng Particle xây dựng môi trường thực ảo Báo cáo gồm phần chính:  Tổng quan thực ảo particle thực ảo  Kỹ thuật mô  Xây dựng chương trình  Kết luận hướng phát triển -2 - CHƯƠNG I TỔNG QUAN VỀ THỰC TẠI ẢO VÀ PARTICLE TRONG THỰC TẠI ẢO 1.1 Tổng quan thực ảo Theo cách truyền thống, việc tương tác với máy tính thực thông qua thiết bị bàn phím, chuột hay Joystick/Trackball/Keyboard/Styplus để cung cấp thông tin đầu vào sử dụng khối hiển thị trực quan (Video Display Unit-VDU) để nhận thông tin đầu từ hệ thống Với đời hệ thống Thực ảo (Virtual Reality-VR), phương thức giao tiếp phát triển cho phép người sử dụng tương tác cách tích cực với máy tính Thực ảo công nghệ sử dụng kỹ thuật mô hình hoá không gian ba chiều với hỗ trợ thiết bị đa phương tiện xây dựng giới mô máy tính – môi trường ảo (Virtual Environment) Trong giới ảo này, người sử dụng không xem người quan sát bên ngoài, mà thực trở thành phần hệ thống Một cách lý tưởng, người sử dụng tự chuyển động không gian ba chiều, tương tác với vật thể ảo, quan sát khảo cứu giới ảo góc độ khác mặt không gian Ngược lại, môi trường ảo lại có phản ứng tương ứng với hành động người sử dụng, tác động vào giác quan thị giác, thính giác, xúc giác người sử dụng thời gian thực tuân theo quy tắc vật lý tự nhiên, làm có cảm giác tồn giới thực Mục tiêu phần tổng quan đưa số nét tổng quát công nghệ Thực ảo, bao gồm: số nét lịch sử hình thành, lĩnh vực ứng dụng, phân loại hệ thống, phương pháp & công cụ phần mềm phổ biến tạo mô hình VR 1.1.1 Sơ lược lịch sử phát triển Mặc dù Thực ảo mô tả công nghệ mang tính cách mạng, ý tưởng việc nhúng người sử dụng vào môi trường nhân -3 - tạo đời từ sớm Thực ảo xem tiếp nối ý tưởng lâu hệ thống mô bay (Flight Simulation), rạp chiếu phim ảnh rộng (như Cinerama hay IMAX), rạp chiếu phim v.v… Sử dụng hệ thống vậy, người quan sát có cảm giác hình ảnh sống động trước mắt Sự đời máy điện toán mini báo khoa học Ivan Sutherland có tên “Màn hình tối tân” (Ultimate Display) vào năm 1965 xem hai bước đột phá lớn vào thập kỷ 60 cho công nghệ Thực ảo Trong báo mình, Sutherland tiên đoán phát triển Thiết bị Hiển thị đội đầu (Head Mounted Display-HMD) đầu tiên, mà sau ông tạo thiết bị vậy, có tên “Thanh kiếm Damocles” (The Sword of Damocles) Sutherland nhận tiềm máy điện toán việc tạo lập hình ảnh cho hệ thống mô bay, hình ảnh trước xây dựng Video Camera Những ý tưởng hai nhà khoa học Mỹ NASA Fisher McGreevy kết hợp lại dự án có tên “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, gọi hình môi trường trực quan (Visual Environment Display - VIVED), thiết kế dựa mẫu hình mặt nạ lặn với hình quang học mà hình ảnh cung cấp hai thiết bị truyền hình cầm tay Sony Watchman Sự phát triển thiết bị thành công dự đoán, NASA sản xuất thiết bị HMD có giá chấp nhận thị trường, ngành công nghiệp Thực ảo đời 1.1.2 Các lĩnh vực ứng dụng Thực ảo Mặc dù khái niệm Thực ảo xuất từ lâu, nhiều lý mặt công nghệ (cơ sở phần cứng phát triển, nghiên cứu, chi phí), phải nhiều thời gian nỗ lực để Thực ảo có thành tựu ngày Hiện lĩnh vực công nghệ nhiều tiềm xét khía cạnh ứng dụng Một số lĩnh vực ứng dụng có khuynh hướng phát triển mạnh mẽ thời gian gần -4 - 1.1.2.1 Kiến trúc thiết kế thiết bị công nghệ Một lĩnh vực ứng dụng tiêu biểu Thực ảo thiết kế kiến trúc Khả mô hình hoá giới thực công nghệ Thực ảo dường đáp ứng cách tự nhiên mục tiêu ngành thiết kế kiến trúc: đưa mô hình trực quan hình ảnh công trình mong muốn tương lai Hình - Ứng dụng Thực ảo thiết kế kiến trúc Việc xây dựng mô hình không gian kiến trúc hình ảnh lập thể với đầy đủ mô tả trực quan hình khối kiến trúc nhà, cách bố trí nội thất bên trong, chí hoa văn cửa sổ hay màu sơn tường, với khả cho phép khách hàng tự tham quan, khảo sát nhà họ tương lai theo nhiều góc độ vị trí, từ phòng sang phòng khác thực đem lại hiệu trực quan mang tính cách mạng lĩnh vực mang nhiều đặc điểm nghệ thuật 1.1.2.2 Giải trí Thị trường giải trí ứng dụng tiêu biểu khác môi trường Thực ảo Trên thực tế, lĩnh vực ứng dụng lớn xét theo khía cạnh lợi ích tài Rất nhiều công ty sản xuất trò chơi có sử dụng nguyên lý Thực ảo Số lượng người bị hút theo trò -5 - chơi vậy, đặc biệt giới trẻ, tăng theo cấp số nhân đánh dấu tiềm thương mại to lớn công nghệ Thực ảo lĩnh vực Hơn thế, ngành công nghiệp trò chơi điện tử có ảnh hưởng to lớn tới lĩnh vực Thực ảo Nó tạo động lực cần thiết để thúc đẩu phát triển nhiều phần cứng Thực ảo, chẳng hạn card tăng tốc đồ hoạ (Graphic Accelerator Cards) Nếu trở lại khoảng 10 năm trước, thật khó tìm thấy card tăng tốc đồ hoạ có đủ lực tính toán cần thiết cho phép tạo ứng dụng Thực ảo thời gian thực Tại thời điểm đó, card trị giá hàng ngàn đôla đủ khả 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 Găng tay liệu (DataGloves) Thiết bị hiển thị đội đầu (Head Mounted Displays-HMD) chịu ảnh hưởng phần công nghiệp giải trí Tóm lại, ứng dụng Thực ảo giải trí đóng vai trò vừa mục tiều vừa động lực cho công nghiệp Thực ảo Hình - Ứng dụng Thực ảo lĩnh vực giải trí 1.1.2.3 Giáo dục Đào tạo Phát triển công nghệ kỹ thuật cao, Thực ảo tích hợp đặc tính làm cho thân có tiềm vượt trội so với công nghệ đa phương tiện truyền thống khác: cho người sử dụng cảm nhận diện môi trường máy tính tạo khả tương tác, tự trị (Autonomy) người dùng môi trường ảo, phản -6 - hồi tức thời, trực quan từ phía môi trường ảo tới giác quan người sử dụng Hơn nữa, công nghệ Thực ảo cho phép mô môi trường nguy hiểm hay tốn buồng lái máy bay, phòng thí nghiệm hoá chất.v.v… Hình – Mô hình huấn luyện bay sử dụng công nghệ Thực ảo Tất đặc tính khiến công nghệ Thực ảo trở nên phù hợp cho ứng dụng có tính chất giáo dục hay đào tạo Trong đó, mô hình trình diễn lập đóng vai trò quan trọng Các vật thể giới ảo biểu diễn xác nhiều so với đối tượng phẳng (hình ảnh hai chiều) bổ sung thêm chiều sâu Kết trình diễn minh hoạ hay thí nghiệm mô xác quan sát từ nhiều góc độ khác mặt không gian, điều mà giới phẳng hai chiều không làm Tính chất trực quan giảng nâng cao bước làm tăng hứng thú học tập khả ghi nhớ khái niệm quan trọng giảng Xét mặt này, khả tương tác với môi trường ảo khía cạnh đáng lưu ý Nếu thiếu khả tương tác (hai chiều) môi trường ảo người tham dự, Thực ảo không khác giao diện lập thể ấn tượng sống Trong phòng thí nghiệm hay huấn luyện ảo, thực thao tác đối tượng môi trường ảo, nhận phản hồi kịp thời có nghĩa từ vật thể môi trường yếu tố tiên khiến cho học viên có cảm nhận trải -7 - nghiệm tình thực Từ đó, học viên nắm bắt nhanh chóng có ý thức với tính học Và viễn tưởng ta nói ngày học học sinh kỹ sống đào tạo môi trường ảo 1.1.2.4 Y học Y học lĩnh vực ứng dụng tiềm công nghệ Thực ảo Cho đến nay, lĩnh vực bật y học áp dụng thành công công nghệ Thực ảo giả lập giải phẫu (Surgical Simulation) Hình - Phẫu thuật ảo – Phương pháp đào tạo phẫu thuật dùng công nghệ Thực ảo Trên sở kỹ thuật đồ hoạ máy tính Thực ảo, hệ thống đào tạo y học bao gồm hai phận bản: Khối tương tác ba chiều mô hình sinh thể ảo cho phép người sử dụng thực thao tác giải phẫu thông qua dụng cụ giải phẫu ảo; Khối giao diện người dùng hai chiều cung cấp thông tin phản hồi trực quan từ mô hình trình giải phẫu thông tin hướng dẫn phiên đào tạo Phương pháp đào tạo có tính tương tác cao mang nhiều ưu điểm so với phương pháp truyền thống thực hành mô hình plastic hay bệnh nhân thực Thứ nhất, khác với phương pháp dùng mô hình plastic, sinh thể giải phẫu ảo có khả cung cấp thông tin phản hồi sinh học cách -8 - tự nhiên sinh thể sống thực, chẳng hạn thay đổi nhịp tim, huyết áp… Điều tạo cho học viên có cảm giác trải qua ca mổ tình thực Thứ hai, khác với thực hành bệnh nhân thật, sai lầm học viên trình thực tập trả giá thương tổn thực thể người bệnh Điều làm giảm áp lực lên học viên thực phẫu thuật ảo Từ đó, giúp họ tự tin chủ động học tập Phương pháp cho phép bác sĩ không ngừng nâng cao trình độ tay nghề, kỹ phối hợp làm việc cách liên tục đặt giả định tình bệnh, cập nhật liệu bệnh lý để thực phương pháp mới, kỹ thuật điều trị Bác sĩ tự lập kế hoạch mổ thử bệnh nhân ảo trước mổ bệnh nhân thật làm tăng mức độ an toàn hiệu điều trị, giảm thiểu sai lầm rủi ro đáng tiếc xảy Xu hướng ứng dụng thực ảo tương lai Chúng ta thấy phần kết to lớn việc ứng dụng thực ảo thấy phần việc ứng dụng thực ảo tương lai Thực ảo tiếp tục ứng dụng mạnh mẽ số lĩnh vực mở đường cho ứng dụng tin học vào lĩnh vực khác Thực ảo thâm nhập vào nhiều lĩnh vực có mặt tin học sống Ý nghĩa việc ứng dụng thực ảo Những kết ý nghĩa to lớn việc ứng dụng thực ảo giai đoạn tương lai nhắc tới Nhưng có câu hỏi đặt đằng sau điều tuyệt vời mà thực ảo mạng lại, có làm phải quan tâm? Vấn đề thực ảo gì? Để trả lời câu hỏi đó, tìm hiểu chi tiết phần Tất ứng dụng thực ảo liên quan đến việc xây dựng mô hình mô giới máy vi tính cung cấp khả quan sát tương tác mô hình với người sử dụng thông qua thiết bị đầu vào đầu Như vậy, nói vấn đề thực ảo phải xây dựng mô hình mô giới thực máy tính theo không gian 3D, cung cấp -9 - dịch vụ tương tác môi trường mô với người sử dụng thông qua thiết bị vào 1.2 Mô hình xử lý Morfit 1.2.1 Giới thiệu Morfit mô hình cho phép ta xây dựng phần mềm mô đối tượng ba chiều bao gồm hình dạng lẫn hành động, tương tác đối tượng với nhau, tương tác người dùng với đối tượng Có thể chia mô hình thành hai phần tương đối độc lập với nhau: Định dạng: Morfit cung cấp chuẩn cho phép ta dựa vào để xây dựng giới số hành động mang tính quy luật giới Điều khiển: Phần engine (.dll) morfit cung cấp phương thức cho phép ta hiển thị điều khiển hoạt động giới ngôn ngữ lâp trình cụ thể ví dụ VB, C++ C# vv Morfit đảm bảo thực lượng lớn thao tác bao gồm lượng lớn trạng thái hình ảnh xử lý giây, hình ảnh hiệu ứng hình ảnh có chất lượng cao Bạn cố định tốc độ hoạt động giới với máy sử dụng không sử dụng tăng tốc đồ hoạ 3D Mô hình thực ảo Morfit dựa sở thuật toán kỹ sảo tinh vi, phức tạp, bao gồm quyền sở hữu công nghệ PIRR (Photo realistic eractive Real-Time Rendering) Kết mang lại nhiều cải thiện tốc độ chất lượng hình ảnh hẳn engine sở khác Engine thực ảo morfit giải pháp xây dựng, phát triển phần mềm mô 3D đơn giản hiệu nhanh chóng Sử dụng morfit bạn xử lý hình ảnh 3D tới cấp độ bít Nó không bắt buộc phải sử dụng tất hàm, chức mà morfit cung cấp, bạn sử dụng hàm API sở, mã DirectX3D vào chương trình bạn môi trường xây dựng thoải mái tiện dụng -10 - return FALSE; } m_PrevLocation = m_Location; m_Location += m_Velocity * TimeDelta; if (m_pParticleSystem->m_IsColliding) { CVector Normal; if (Morfit_engine_get_number_of_collisions(m_PrevLocation, m_Location, Normal) != 0) { if (m_pParticleSystem->m_IsBouncing) { CVector Reflection; Morfit_math_get_reflected_direction(Normal, m_Velocity, Reflection); m_Velocity = Magnitude(m_Velocity) * m_Elasticity * Reflection; m_Location = m_PrevLocation; } else { m_IsActive = FALSE; m_Polygon.Disable(); return FALSE; } } } m_Velocity += m_pParticleSystem->m_Gravity * TimeDelta; if (m_pParticleSystem->m_IsAttracting) { CVector Direction = m_pParticleSystem->m_Attraction - m_Location; m_Velocity += Normalize(Direction) * m_AttractionSpeed * TimeDelta; -76 - } m_Color += m_ColorDelta * TimeDelta; m_Size += m_SizeDelta * TimeDelta; m_Polygon.SetLocation(m_Location); m_Polygon.SetSize(m_Size); m_Polygon.SetColor(m_Color); return TRUE; } // ======================================================= 2.2 Tệp PARTICLESYSTEM.CPP #include "particlesystem.h" // ======================================================= char* CParticleSystem::pTexture[MAX_TEXTURES] = { DATA_DIR"\\flare.bmp", DATA_DIR"\\bubble.bmp", DATA_DIR"\\smoke.bmp", DATA_DIR"\\spark.bmp" }; // ======================================================= CParticleSystem::CParticleSystem() { for (int i = 0; i < MAX_TEXTURES; i++) m_hTexture[i] = NULL; m_EmissionResidue = 0; } // ====================================================== CParticleSystem::~CParticleSystem()// khoi tao lai cac Particle { for (int i = 0; i < MAX_TEXTURES; i++) { if (m_hTexture[i] != NULL) -77 - { Morfit_bitmap_unload(m_hTexture[i]); m_hTexture[i] = NULL; } } } // ======================================================= BOOL CParticleSystem::Create()// Tao cac Particle, gan moi Particle bang mot anh duoc load { int i; for (i = 0; i < MAX_TEXTURES; i++) { if ((m_hTexture[i] = Morfit_bitmap_load(pTexture[i], -1)) == NULL) return FALSE; } for (i = 0; i < MAX_PARTICLES; i++) { if (!m_Particle[i].Create()) return FALSE; m_Particle[i].m_pParticleSystem = this; } return TRUE; } // ====================================================== void CParticleSystem::Update(double TimeDelta) { if (m_IsFreezed) return; if (m_IsMoving) // kiem tra neu Particle chuyen dong thi -78 - { static double ThetaHoriz = 0.0; static double ThetaVert = 180.0; ThetaHoriz += PARTICLESYSTEM_THETA_HORIZ_SPEED * TimeDelta; ThetaVert += PARTICLESYSTEM_THETA_VERT_SPEED * TimeDelta; m_Location.x = 30.0 * cos(DEG_2_RAD(ThetaHoriz)); m_Location.y = 30.0 * sin(DEG_2_RAD(ThetaHoriz)); m_Location.z = 100.0 + 30.0f * sin(DEG_2_RAD(ThetaVert)); } m_Alive = 0; int i; for (i = 0; i < MAX_PARTICLES; i++) { if (m_Particle[i].m_IsActive) if (m_Particle[i].Update(TimeDelta)) m_Alive++; } double Needed = m_Emission * TimeDelta + m_EmissionResidue; DWORD Created = (DWORD)Needed; if (!m_IsSuppressed) { m_EmissionResidue = Needed - Created; } else { m_EmissionResidue = Needed; Created = 0; } if (Created > 0) { for (i = 0; i < MAX_PARTICLES; i++) -79 - { if (Created == 0) break; if (!m_Particle[i].m_IsActive) { m_Particle[i].Start(TimeDelta); Created ; } } } m_PrevLocation = m_Location; } // ======================================================= void CParticleSystem::LoadPreset(DWORD Preset) { RANGE(Preset, 0, MAX_PRESETS - 1); switch (Preset) { case 0: m_ColorStart = CColor(1.0, 0.8, 0.5, 0.5); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(1.0, 1.0, 0.0, 10.0); m_SizeStart = 2.0; m_SizeVar = 0.0; m_SizeEnd = 7.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 50.0; m_SpeedVar = 0.0; m_Elasticity = 0.0; -80 - m_ElasticityVar = 0.0; m_Lifetime = 3.0; m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, 0.0); m_Attraction = CVector(0.0, 0.0, 80.0); m_Theta = 360.0; m_Phi = 360.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 0; m_Emission = 300; // number of Particle emission break; case 1: m_ColorStart = CColor(1.0, 1.0, 0.2, 1.0); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(1.0, 0.0, 1.0, 0.0); m_SizeStart = 0.5; m_SizeVar = 0.0; m_SizeEnd = 10.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 0.0; m_SpeedVar = 0.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; -81 - m_Lifetime = 4.0; m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 100.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, -4.0); m_Attraction = CVector(0.0, 0.0, 80.0); m_Theta = 360.0; m_Phi = 0.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = TRUE; m_TextureID = 0; m_Emission = 80; break; case 2: m_ColorStart = CColor(0.0, 0.0, 0.0, 0.0); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(0.0, 1.0, 0.0, 10.0); m_SizeStart = 4.0; m_SizeVar = 0.0; m_SizeEnd = 1.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 60.0; m_SpeedVar = 0.0; m_Elasticity = 0.3; m_ElasticityVar = 0.2; m_Lifetime = 10.0; -82 - m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 20.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, -10.0); m_Attraction = m_Location; m_Theta = 360.0; m_Phi = 30.0; m_IsAttracting = FALSE; m_IsColliding = TRUE; m_IsBouncing = TRUE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 0; m_Emission = 500; break; case 3: m_ColorStart = CColor(0.0, 1.0, 0.0, 1.0); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(1.0, 1.0, 1.0, 1.0); m_SizeStart = 8.0; m_SizeVar = 0.0; m_SizeEnd = 3.0; m_AttractionSpeed = 35.0; m_AttractionSpeedVar = 0.0; m_Speed = 50.0; m_SpeedVar = 0.0; m_Elasticity = 0.5; m_ElasticityVar = 0.2; m_Lifetime = 4.0; m_LifetimeVar = 0.0; -83 - m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, 0.0); m_Attraction = CVector(0.0, 0.0, 80.0); m_Theta = 360.0; m_Phi = 360.0; m_IsAttracting = TRUE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 0; m_Emission = 50; break; case 4: m_ColorStart = CColor(1.0, 1.0, 1.0, 1.0); m_ColorVar = CColor(.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(0.0, 0.0, 1.0, 0.0); m_SizeStart = 2.0; m_SizeVar = 0.0; m_SizeEnd = 20.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 6.0; m_SpeedVar = 2.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; m_Lifetime = 8.0; m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 80.0); -84 - m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, 10.0); m_Attraction = m_Location; m_Theta = 360.0; m_Phi = 180.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = TRUE; m_TextureID = 2; m_Emission = 60; break; case 5: m_ColorStart = CColor(1.0, 0.0, 0.0, 0.25); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(1.0, 1.0, 1.0, 1.0); m_SizeStart = 0.5; m_SizeVar = 0.0; m_SizeEnd = 6.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 70.0; m_SpeedVar = 50.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; m_Lifetime = 6.0; m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; -85 - m_Gravity = CVector(0.0, 0.0, 0.0); m_Attraction = CVector(0.0, 0.0, 80.0); m_Theta = 360.0; m_Phi = 360.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 3; m_Emission = 50; break; case 6: m_ColorStart = CColor(0.4, 0.4, 0.35, 0.78); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(0.75, 1.0, 1.0, 0.31); m_SizeStart = 1.0; m_SizeVar = 0.0; m_SizeEnd = 5.53; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 30.0; m_SpeedVar = 5.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; m_Lifetime = 3.21; m_LifetimeVar = 0.5; m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, 2.0); -86 - m_Attraction = m_Location; m_Theta = 360.0; m_Phi = 90.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = TRUE; m_TextureID = 1; m_Emission = 59; break; case 7: m_ColorStart = CColor(0.3, 0.1, 0.4, 1.0); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(0.9, 1.0, 0.0, 0.0); m_SizeStart = 2.0; m_SizeVar = 2.0; m_SizeEnd = 4.0; m_AttractionSpeed = 30.0; m_AttractionSpeedVar = 5.0; m_Speed = -30.0; m_SpeedVar = -5.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; m_Lifetime = 4.0; m_LifetimeVar = 2.0; m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, -10.0 , 9.8); -87 - m_Attraction = CVector(-150.0, 0.0, 20.0); m_Theta = 360.0; m_Phi = 20.0; m_IsAttracting = FALSE; m_IsColliding = FALSE; m_IsBouncing = FALSE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 0; m_Emission = 60; break; case 8: m_ColorStart = CColor(0.5, 0.3, 0.8, 1.0); m_ColorVar = CColor(0.5, 0.7, 0.2, 0.0); m_ColorEnd = CColor(1.0, 1.0, 1.0, 0.0); m_SizeStart = 10.0; m_SizeVar = 4.0; m_SizeEnd = 4.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 30.0; m_SpeedVar = 20.0; m_Elasticity = 0.0; m_ElasticityVar = 0.0; m_Lifetime = 10.0; m_LifetimeVar = 2.0; m_Location = CVector(0.0, 0.0, 80.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, 0.0); -88 - m_Attraction = CVector(0.0, 0.0, 80.0); m_Theta = 360.0; m_Phi = 360.0; m_IsAttracting = FALSE; m_IsColliding = TRUE; m_IsBouncing = TRUE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 3; m_Emission = 50; break; case 9: m_ColorStart = CColor(1.0, 1.0, 1.0, 1.0); m_ColorVar = CColor(0.0, 0.0, 0.0, 0.0); m_ColorEnd = CColor(1.0, 1.0, 1.0, 1.0); m_SizeStart = 2.0; m_SizeVar = 0.0; m_SizeEnd = 4.0; m_AttractionSpeed = 0.0; m_AttractionSpeedVar = 0.0; m_Speed = 55.0; m_SpeedVar = 0.0; m_Elasticity = 0.5; m_ElasticityVar = 0.0; m_Lifetime = 15.0; m_LifetimeVar = 0.0; m_Location = CVector(0.0, 0.0, 60.0); m_PrevLocation = m_Location; m_Gravity = CVector(0.0, 0.0, -10.0); -89 - m_Attraction = m_Location; m_Theta = 360.0; m_Phi = 30.0; m_IsAttracting = FALSE; m_IsColliding = TRUE; m_IsBouncing = TRUE; m_IsSuppressed = FALSE; m_IsFreezed = FALSE; m_IsMoving = FALSE; m_TextureID = 1; m_Emission = 50; break; } } // ======================================================= -90 - [...]... thành một hiệu ứng thể hiện cho tính nhớt của nước trong môi trường thực tại ảo, hoặc chúng ta có thể kết hợp các hiệu ứng của nước, của gió và ánh sáng để tạo nên một cơn bão … 1.3.3 Cơ sở mô phỏng hiệu ứng các particle Cơ sở kỹ thuật của mô phỏng hiệu ứng particle chính là dựa vào các tính chất vật lý của các particle Dưới đây em xin trình bày một số tính chất vật lý cơ bản của các particle Particle... thưc tại ảo Hiện nay các hiệu ứng của particle được sử dụng rất phổ biến trong các ứng dụng mô phỏng thế giới thực của thực tại ảo Ví dụ như : Chúng ta muốn mô tả một bầu trời có nhiều sao hay mô phỏng một vật thể phát quang hoặc mô phỏng một chùm bong bóng được tung ra liên tiếp…vv Để giải quyết những yêu cầu đó một cách hoàn hảo nhất thì chỉ có thể là Hiệu ứng particle 1.3.1 Particle trong thực tại. .. tốc…cho các particle (phần tử) và cho chúng chuyển động tự nhiên hoặc tuân theo một quy luật nào đó để tạo thành các hiệu ứng 3D trong môi trường thực tại ảo Các hiệu ứng particle được tạo ra có thể nhằm mục đính thể hiện một tính chất nào đó của một chất liệu cụ thể hoặc cũng có thể để thể hiện một hiện tượng tự nhiên nào đó trong môi trường thực tại ảo Ví dụ chúng ta có thể sử dụng các particle (phần... tiên mà nó gặp 1.3 Tổng quan về particle trong thực tại ảo Trong VR thì các hiệu ứng 3D đóng một vai trò rất quan trọng trong việc xây dựng các mô hình thế giới thực, trong đó các hiệu ứng của các particle (các phần tử) đóng một vai trò không thể thiếu, không thể thiếu vì hai lý do: thứ nhất như chúng ta đã biết mọi chất liệu trong thế giới thực đều được cấu tạo từ các particle (các phần tử) Làm việc... các particle; thứ hai chỉ có bằng cách tiếp cận particle mới có thể đáp ứng để làm việc với các kỹ thuật hết sức phức tạp khi mô tả những chất liệu trong thế gới thực Chỉ với hai lý do trên thôi đã cho thấy được vai trò vô cùng quan trọng không thể thiếu của các particle trong thực tại ảo Chính vì vậy mà chúng ta cần phải đi tìm hiểu và nghiên cứu về các particle và các hiệu ứng của nó trong môi trường. .. chúng ta hiểu phần tử (particle) ở đây là ở mức mô phỏng mà mắt người có thể nhìn thấy và điều khiển chúng Ví dụ như chúng ta muốn mô phỏng một khối nước bằng các particle, thì particle ở đây không phải là một phần tử nước theo nghĩa vật lý mà chính là các giọt nước 1.3.2 Hiệu ứng particle trong thực tại ảo Hiệu ứng particle ở đây chúng ta hiểu nó là việc sử dụng rất nhiều các particle (phần tử) có... chất liệu hay vật chất của thế giới thực Nhưng trong báo cáo này tác giả trình bày một cách tiếp cận hoàn toàn mới về particle Particle trong báo cáo này không những đóng vai trò cấu tạo nên các chất liệu, mà còn đóng vai trò tạo nên các hiệu ứng hạt 3D trong môi trường thực tại ảo Dưới đây tác giả xin trình bày một số tính chất cơ bản của các particle: -34 - 1.3.3.1 Chịu áp đặt của trọng lực Đây là... phụ thuộc vào từng particle và từng hiệu ứng cụ thể Ví dụ như khi chúng ta mô phỏng một đám mây bay thì đương nhiên tốc độ của các particle phải nhỏ, còn khi chúng ta mô phỏng một loạt đạn được bắn ra thì tốc độ của các particle là phải rất cao 1.3.3.6 Hướng chuyển động của các particle Hướng chuyển động của các particle chính là hướng chuyển động của các particle trong không gian; lên trên, xuống dưới... 1.3.1 Particle trong thực tại ảo là gì? Particle trong thực tại ảo chính là các phần tử hay còn gọi là các hạt, là thành phần cấu tạo lên các chất liệu trong thế giới Chúng ta có thể tạo ra các hạt đơn hoặc hàng triệu hạt để thể hiện cho một chất liệu nào đó trong thực tại ảo Các hạt này mang cùng một tính chất, chính là tính chất của chất liêu mà nó -33 - mô phỏng Phần tử (particle) ở đây chúng ta không... xuống dưới hay sang trái, sang phải Hướng chuyển động của các particle ngoài việc thể hiện sự chuyển động tự nhiên của các particle thì nó còn mang theo ý tưởng của tác giả 1.3.3.7 Kích thước của các particle Kích thước của các particle đóng vai trò quan trọng thể hiện sự biên đổi của các particle theo thời gian trong từng hiệu ứng cụ thể Ví dụ như một particle ở rất xa thì chúng phải có kích thước nhỏ

Ngày đăng: 03/08/2016, 16:26

Xem thêm: Mô phỏng hiệu ứng của particle trong xây dựng môi trường thực tại ảo

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w