Cần chuẩn bị gì để trở thành lập trình viên thực tế ảo VR/AR?

Kỹ năng quan trọng cần thiết để trở thành nhà phát triển AR / VR là kiến ​​thức chuyên môn về 3D. Trên thực tế, nó không quá khác biệt so với phát triển game 3D. Vì sao? Bởi vì AR và VR tập trung vào việc tạo ra thế giới hoặc môi trường 3D, tương tác, nhập vai, giống như trong cuộc sống thực.

Cần chuẩn bị gì để trở thành lập trình viên thực tế ảo VR/AR?

1. Kỹ năng bạn cần có.

Kỹ năng để lập trình viên thực tế ảo VR/AR

Kỹ năng quan trọng cần thiết để trở thành nhà phát triển AR / VR là kiến ​​thức chuyên môn về 3D.
Trên thực tế, nó không quá khác biệt so với phát triển game 3D. Vì sao? Bởi vì AR và VR tập trung vào việc tạo ra thế giới hoặc môi trường 3D, tương tác, nhập vai, giống như trong cuộc sống thực.

Vì vậy, tùy thuộc vào mức độ chuyên sâu, bạn có thể phải tìm hiểu những kỹ năng sau:
+ 3D modelling hoặc 3D Scanning
+ 3D game engine
+ Photo và video 360°
+ Bộ công cụ phát triển phần mềm (SDK)
+ Kỹ năng thiết kế trải nghiệm cho người dùng (UX) trong môi trường 3D.

Những ngôn ngữ lập trình phổ biến để phát triển ứng dụng AR/VR: C#, C/C++, Java, JavaScript, Python, Swift.

2. Chuẩn bị về thiết bị:

Có nhiều lựa chọn trong danh mục này. Nhưng chúng ta hãy phân loại nó theo cách phổ biến nhất: phân loại bậc tự do (DOF), đề cập đến độ phức tạp mà một đối tượng có thể di chuyển. Chúng ta có hai lựa chọn: ba và sáu DOF.
Ba DOF có nghĩa là bạn sẽ có thể tương tác với thế giới ảo trong ba chiều (theo tọa độ X, Y, Z) bằng cách di chuyển đầu của bạn bằng màn hình gắn trên đầu (HMD). Tuy nhiên, bạn sẽ không thể di chuyển tiến hoặc lùi.
Với sáu DOF, bạn có thể tiến - lùi, lên - xuống và trái - phải, do đó bạn có ba kiểu chuyển động khác.
Các thiết bị hỗ trợ ba DOF: Google carton, Google Daydream, Samsung Gear VR
Các thiết bị hỗ trợ sáu DOF: HTC Vive, Oculus Rift

Tất nhiên, mỗi thiết bị sẽ sử dụng SDK, ngôn ngữ lập trình khác nhau và có các ràng buộc khác nhau, nhưng bạn sẽ thấy chúng có một số điểm chung:
+ Các nguyên tắc thiết kế trải nghiệm thực tế ảo đều giống nhau
+ Hầu hết chúng đều tương thích với bộ điều khiển chuyển động để tương tác với thế giới ảo
+ Thiết bị 3DOF sử dụng điện thoại thông minh làm màn hình gắn trên đầu
+ Thiết bị 6DOF sử dụng tai nghe được kết nối với máy tính.

Tùy thuộc vào những gì bạn muốn đạt được, bạn có thể muốn thực hiện một số nghiên cứu và chọn một hoặc nhiều thiết bị để bắt đầu.
Tất nhiên, bạn có thể làm được nhiều việc hơn với tai nghe được kết nối với máy tính của mình, nhưng bạn có thể muốn bắt đầu với thứ gì đó đơn giản hơn và từ từ phát triển kỹ năng chuyển đổi từ thiết bị này sang thiết bị khác.
Những lựa chọn này liên quan trực tiếp đến việc học các công cụ phù hợp cho công việc bạn muốn bắt đầu.

3. Phần cứng của thiết bị:

AR / VR và phát triển 3D nói chung thì yêu cầu phần cứng cao cấp.
Tuy nhiên, với việc giá phần cứng tiếp tục giảm, điều này có thể không còn nghiêm trọng như cách đây vài năm.
Nếu chúng ta xem xét các yêu cầu của hai nền tảng VR phổ biến nhất (HTC Vive và Oculus Rift), chúng ta thấy rằng chúng về cơ bản là giống nhau.

Các thông số tiêu chuẩn về phần cứng:
- Bộ xử lý: Intel i3-6100 / AMD Ryzen 3 1200, FX4350 hoặc cao hơn
- Card đồ họa: NVIDIA GTX 1050 Ti / AMD Radeon RX 470 hoặc cao hơn
- Card đồ họa thay thế: NVIDIA GTX 960 4GB / AMD Radeon R9 290 hoặc cao hơn
- Bộ nhớ: 8GB+ RAM
- Hệ điều hành: Windows 10
- USB Ports Rift: 1x USB 3.0 port, plus 2x USB 2.0 ports
- Video Output (Rift): Compatible HDMI 1.3 video output
Tùy theo nhu cầu và dự án, bạn có thể trang bị thêm thiết bị mới hoặc sử dụng thiết bị hiện có với cấu hình tối thiểu, điều quan trọng là mức đầu tư phải phù hợp với túi tiền của bạn.

4. Ngôn ngữ lập trình được sử dụng để phát triển AR/VR:

Ngôn ngữ lập trình được sử dụng để phát triển AR/VR là C# và C++

C # và C / C ++ là những ngôn ngữ lập trình được sử dụng phổ biến nhất để phát triển AR / VR.
Các công cụ trò chơi phổ biến nhất mà bạn sẽ học cách sử dụng là:

- Unity, sử dụng C # làm ngôn ngữ lập trình chính của nó.
+ Dễ học, có nhiều tài nguyên
+ Được sử dụng miễn phí

- Unreal Engine, sử dụng C ++ và một ngôn ngữ có tên là Blueprints Visual Scripting.
+ Mạnh hơn và cung cấp khả năng đồ họa tốt hơn
+ Được sử dụng miễn phí, nhưng sau đó bạn phải trả tiền phí bản quyền.

Rất may, tất cả các thiết bị VR đều đi kèm với SDK cho cả hai công cụ, vì vậy bạn có thể chỉ cần sử dụng một SDK để phát triển các ứng dụng AR / VR và để chúng hoạt động trên các thiết bị.
Cả hai game engine đều đòi hỏi nhiều thời gian và nỗ lực để học hỏi và thành thạo.
Các bạn nên thử cả hai công cụ trò chơi và xem công cụ nào phù hợp nhất.

5. Thực hành:

Thực hành làm mô hình 3d cho kính thực tế ảo

Tự làm mô hình 3D là lựa chọn khó nhất, nhưng nó có lẽ là tốt nhất và tiết kiệm chi phí nhất về lâu dài. Nếu bạn chọn cách này, bạn sẽ phải học cách sử dụng các quy trình sau: Blender, Autodesk Maya, Autodesk 3ds Max.
Một kỹ thuật có thể giúp bạn tạo mô hình của riêng mình là quét 3D.
Chúng có thể không hoàn hảo, nhưng chúng có thể giúp bạn bắt đầu và có rất nhiều lựa chọn với các mức giá khác nhau. Một số trong số đó là: DAVID SLS2, Da Vinci 1.0 AiO, Structure Sense (phải có iPad)
Nếu không, bạn có thể tìm thấy các mô hình 3D có sẵn từ: TurboSquid, Free3D, CGTrader, Sketchfab
Tùy chọn này phù hợp khi bạn mới bắt đầu và chưa có kỹ năng nào, nhưng sớm hay muộn bạn sẽ phải học thêm để thiết kế những gì bạn muốn, vì vậy bạn nên kết hợp cả hai để bắt đầu. Bắt đầu học làm mô hình của riêng bạn.
Đối với video và ảnh 360 °, bạn có thể tạo mô hình bằng camera 360 như RICOH THETA hoặc Samsung Gear 360 (chỉ tương thích với các thiết bị Samsung) hoặc sử dụng các trang web như Flickr hoặc web.other để có hình ảnh và video miễn phí.
Khu vực âm thanh tương đối dễ dàng vì không có yêu cầu đặc biệt; chúng tôi có thể sử dụng các hiệu ứng âm thanh giống như các trò chơi và video truyền thống từ các trang web âm thanh miễn phí như FreeSound
Và phần mềm ghi âm và chỉnh sửa âm thanh như Audacity hoặc Adobe Audition.

6. Từ phát triển web đến thực tế ảo:

WebVR

WebVR là một tiêu chuẩn mở với API JavaScript cho phép trải nghiệm VR trong trình duyệt web.
Nó hoạt động với hầu hết các thiết bị VR, nhưng bạn không cần bất kỳ plugin bổ sung nào vì bất kỳ trình duyệt tương thích nào (ngay cả trong điện thoại Android / iOS) đều có thể chạy các ứng dụng này.
Bạn có thể thử các trình duyệt mới nhất hỗ trợ WebVR tại WebVR Rocks và tìm thêm thông tin trên trang web Mozilla VR.
Mặc dù kiến ​​thức về mô hình 3D và thuật ngữ vẫn được áp dụng, nhưng nếu bạn biết JavaScript, bắt đầu với WebVR thay vì VR, Unity hoặc Unreal SDK sẽ là một lựa chọn tốt.

Về vấn đề này, có hai khuôn khổ đáng được đề cập:
+ A-Frame: là một khuôn khổ để xây dựng trải nghiệm thực tế ảo sử dụng HTML và cách tiếp cận hệ thống thành phần thực thể.
Được phát triển bởi nhóm Mozilla VR, nó cung cấp một trong những cách mạnh mẽ nhất để phát triển nội dung WebVR.
+ React VR: Khung công tác mới của Facebook dựa trên React và React Native. Nó cho phép bạn xây dựng các trang web VR và trải nghiệm 360 độ tương tác bằng cách sử dụng cách tiếp cận tổng hợp khai báo tương tự như React.
Vì cả hai đều dựa trên Three.js, thư viện Javascript phổ biến nhất để làm việc với đồ họa 3D trong trình duyệt web, việc biết thư viện sẽ mang lại cho bạn một nền tảng vững chắc.
Unity có tùy chọn viết script bằng ngôn ngữ giống JavaScript, UnityScript, nhưng nó không giống với JavaScript mà bạn sử dụng để phát triển cho web và C # (ngôn ngữ được đề xuất của Unity).

Như vậy để trở thành nhà phát triển AR / VR là gì?

+ Xác định nền tảng của bạn, xác định thiết bị nào để nhắm mục tiêu, nền tảng nào (di động, máy tính để bàn, web) để sử dụng và công cụ tìm kiếm / SDK / khuôn khổ nào để sử dụng.
+ Tìm hiểu về thuật ngữ, mô hình 3D, ngôn ngữ của công cụ / SDK / khuôn khổ, UI / UX cho AR / VR.
+ Hãy làm một số dự án nhỏ. Mặc dù phần lớn các ứng dụng AR / VR là trò chơi, nhưng có nhiều lĩnh vực có thể áp dụng nó, chẳng hạn như giáo dục, trực quan hóa dữ liệu, trải nghiệm 360 ° trong nhà. Điều quan trọng ở đây là thực hành và kinh nghiệm.
+ Tham gia vào cộng đồng VR. Tham gia diễn đàn, trò chuyện để trò chuyện với các nhà phát triển khác, đặt câu hỏi và đóng góp cho cộng đồng.

Post a Comment