你好前辈,我想问你下,我想开发vr软件,用什么语言开发好呢?

Python09

你好前辈,我想问你下,我想开发vr软件,用什么语言开发好呢?,第1张

VR语言开发,其实就是3D编程引擎的语言。VR如果没有3D引擎支持是无法进行开发的。上面提到的3D引擎和编程所需的SDK主要使用的语言是 C/C++

这是毋庸置疑的。大多数3D引擎使用的都是c或C++开发的,必定效率高吗Oculus 提供的SDK也是使用C++ 行开发的。 Gear VR是在安卓设备上运行,需要使用Android NDK基于 C++ 进行开发。Unreal 引擎同样使用 C++ 进行开发。MiddleVR 提供了基于 C++ 的 SDK。

其次是 C# 。 Unity 把 C# 当作脚本语言使用。在 VRPN 中可以使用 .NET bindings for VRPN 作为开发语言。不出意外的话, HoloLens 也一定使用的是 C# 。

再次就是 Javascript 。它也是 Unity 的一种脚本语言(即使选择的人并不多)。但 WebVR 和 Javascript 程序员的基数(基友数?)一定会让 Javascript 继续在使用人数上占优(我真的不是黑啊)。即使不考虑 WebVR , three.js , Babylonjs 这类已经非常成熟的 HTML5 3D 引擎也足够证明 Javascript 在 3D 上的强大生命力。

VR 平台

从目前的状态看, Oculus 仅支持 Windows 和 Android(通过 Gear VR) 。MiddleVR 仅支持 Windows 平台。其他的几个引擎例如 OSVR/VRPN 都是多平台支持的,Unity 和 Unreal 当然也是多平台支持。Playstation VR 无疑是 PS 独占。HoloLens 则无疑是 Windows 独占。

只有 WebVR ,不挑平台陪你玩。

VR技术分为两个大方向,动画和开发,看你自己喜欢哪种了,目前大部分培训都是unity3d之类,不全面。

如果你是软件开发人员

VR是一个新兴产业,它的很多东西还没有定型。比如VR交互如何设计,图形界面如何设计,如何将2D的界面设计扩展到3D,这都是需要解决的问题。 所以,作为一个VR软件开发者和界面设计师,你需要知道你现在的工作范围已经从一个平面的系统扩展到了一个三维的系统,所以整个UI的设计思路需要完全改 变。而作为软件开发者,同样要适应这样的改变。

VR对于软件开发的要求是深入底层的,所以掌握C/C++语言是很基本的,而且需要有比 较强的数理背景,对算法实现,Matlab都比较熟悉,根据领域的不同,有一些需要对图形图像领域,比方说SLAM和OpenCV比较熟悉,有一些需要对 传感器,IMU等算法比较熟悉,有一些则需要对DSP/Bluetooth/WiFi开发比较熟悉,在移动VR领域则需要对Android开发有了解。

很多朋友可能知道Go语言的优势在哪,却不知道Go语言适合用于哪些地方。

1、 Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面。Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。

2、 其实Go语言主要用作服务器端开发。其定位是用来开发"大型软件"的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。

3、 Go语言成功案例。Nsq:Nsq是由Go语言开发的高性能、高可用消息队列系统,性能非常高,每天能处理数十亿条的消息;

4、 Docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。

5、 Packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者

6、 Skynet:分布式调度框架。

7、 Doozer:分布式同步工具,类似ZooKeeper。

8、 Heka:mazila开源的日志处理系统。

9、 Cbfs:couchbase开源的分布式文件系统。

10、 Tsuru:开源的PAAS平台,和SAE实现的功能一模一样。

11、 Groupcache:memcahe作者写的用于Google下载系统的缓存系统。

12、 God:类似redis的缓存系统,但是支持分布式和扩展性。

13、 Gor:网络流量抓包和重放工具。

以上的就是关于go语言能做什么的内容介绍了。

VR语言开发,其实就是3D编程引擎的语言。VR如果没有3D引擎支持是无法进行开发的。上面提到的3D引擎和编程所需的SDK主要使用的语言是 C/C++

虽然用C++好像是主流,但是用JavaScirpt也是可行的——使用Node.js或者类似的语言来读取传感器的

数据搭建服务,再用Web 3d游戏引擎来渲染。

1.3D世界:在我们所熟知的3D游戏里,点的位置由三个坐标决定的(x,y,z),如下图所示:这三个坐标只能表示我们在这个世界的位置,而不能上下的看这个世界。

2.四元数:欧拉角是一组用于描述刚体姿态的角度,欧拉提出,刚体在三维欧氏空间中的任意朝向可以由绕

三个轴的转动复合生成。通常情况下,三个轴是相互正交的。