参与深圳VR/AR产业大会有感



  • 0_1449669027109_444.jpg
    0_1449669065533_445.jpg
    参与深圳VR/AR产业大会有感
    昨天刚来到深圳,深圳的天灰蒙蒙的,刚从上海过来的我苦笑道,深圳难道也有雾霾?不过当我的脚第一次踏上深圳这块土地,这些疑问就消失得无影无踪了。原来深圳也比较寒冷啊。虽然冬季15度的天气,对于常年生活在上海的我来说,是暖和许多,但一阵凉风让身穿薄西装的我,依然感到了一阵凉意。
    我已经没有精力来细细品味深圳的高楼大厦了。2015年这个时候,深圳的速度让来自上海的我也不得有一丝松懈。还好,深圳的地铁系统和上海的差不多,我很快就赶到了会展中心站。在那儿我要参与VRAR行业大会,这场大会很可能即将改变我们的生活。
    可能是来得比较早吧,我很快地入场了,选择了一个有利的地形,连行李都没有寄存的我望着大大的横幅、匆忙调试工作人员,期待着几个小时后的热闹场景。
    很快,会场中与会的精英已经坐满了整个会场,还有一些朋友们被迫站着观看会议。我差一点忘记了还有产品展示的环节,幸亏喝主办方带来的水,让我在去卫生间的途中,有幸体验到了两款VR产品。一款给人感觉沉稳大气,VR眼镜是特制的,展示的作品是茫茫的太阳系。另外一款产品则是我喜欢的二次元方向的,虽然做工采用了便宜讨好的卡板,设备也是来自于手机,但是二次元萌妹子的跳舞还是让我这个技术宅有一种想要沉浸其中的快感。
    回到了主会场,业内的前辈、大佬们开始逐个展示他们对VR、AR的独到见解。这是一个非常难得机会,我深深地感到古训“听君一席话,胜读十年书”的真正含义。VR和AR兴起于美国,兴盛于中国。目前在这个新兴的领域既有巨头的布局以及蓄势待发,也有诸多小微企业冲锋陷阵、勇攀高峰。这些兴盛的现象的大背景是:中国已经成为世界上第二大经济体,拥有最大的中产阶级。根据马斯洛需求模型,在满足低层次需求后,大家开始追逐较高层次的精神文化需求。就像一位专家在讨论会上所说的,大家追求的就一个字:“爽”。就这一个字,足以催生数千亿级别的市场,让在座的各位,包括我在内,热血沸腾,浮想联翩。
    但,一阵疯狂之后,我们不免会反思自己。VR、AR产业落地的问题,现在仍然是较难解决的一大问题。在硬件领域,VRAR设备技术要求高,导致成本降不下来,如果是C端的话,势必会将成本负担转嫁到消费者,这是消费者不愿意看到的。此外,设备供应链长,硬件标准不统一,这些都是企业家们颇为头疼的事儿。在软件领域,由于操作系统、SDK、中间件的不完善和碎片化现象,让开发者们望而却步,此外,VRAR开发具有较高的技术门槛,虽然Unity3D、Unreal能够提出一揽子解决方案,但过多地依赖这些游戏引擎厂商也会带来额外的商业风险。
    这些问题复杂且难以解决,让我几近绝望。假设世间有神的话,我恳求神,希望在中国这片大地上创造出专用VR和AR的操作系统,就像十年前Android一样;希望在软硬件方向大家都能够制定出相应的行业规范,让更多上下游的人员加入进来,这样VR和VR才能普及开来。
    想到这里,我手里握着自己的app产品,有点感到无助:我们这款名叫萌梦的app,虽然是自研的渲染引擎,虽然结合了语音识别,虽然结合了人工智能,虽然有了自己小生态的雏形,虽然是我两年以来的心血……但是离行业先进水平、离我热爱的AR,还相去甚远。怎么办呢?难道就不再走下去了吗?我拍了拍自己的脸,给自己鼓劲儿,我们还有希望:现在很多人都聚焦我们这个行业,源源不断的投资正在涌入这个能够迫切对人们生活带来变革的行业,许许多多献出数年宝贵青春的同行们一直在守望在这个行业……
    AR和VR,这个看似离我们非常遥远的未来产业,经过昨天大会的熏陶,让我好似拨开了迷雾,眼前愈发清晰。我相信,我们正处于黎明前短暂的黑暗,前景一定是光明的!



  • 先顶再看。筹够八个字。



  • 期待AR和VR真的进入人们的生活中。



  • 先瞅瞅,再看看,多想想



  • 着实牛逼,着实牛逼!



  • 支持AR与VR的发展。



  • 支持AR与VR的发展,加油!


Log in to reply
 

走马观花

最近的回复

  • Z

    我按照楼主说的,除了windeployqt以外,还需要Qt\labs\folderlistmodel,QtQuick\Layouts,QtQuick\VirtualKeyboard,QtQuick.2,platforminputcontexts这么几个目录,另外Qt5Qml.dll, Qt5Quick.dll也要加进来,还是不行,楼主可以发个完整的文件夹给我吗,release模式的,debug模式没问题

    read more
  • 1.jpg

    简介

    USD全称是“Universal Scene Description”,它主要着力的是电影、游戏复杂制作的流程的规范化。这回我们主要来研究USD在Maya中有关渲染部分究竟是如何实现的。

    USD通过附属的子项目Hydra来实现在其工具“UsdView”以及Maya中渲染方面的实现。Hydra是一款经过多年锤炼的渲染引擎(据说自从2012年就开始研发),Hydra与Maya中有关渲染的结合得益于Maya支持第三方渲染框架通过它提出的“Viewport (1.0、2.0)”方式支持。

    初探

    我们打开USD项目,会发现它有很多子项目。其中包含了imaging和usd子项目。这里我们主要关注的是imaging项目。由单词意思可知,其主要关注的是产出图片的,也就是有关渲染的。
    ca7ce8ff-7e7d-4ec3-9246-fbee48109c7b-image.png

    有关Hydra是三个子项目。包含了hdSt、hdStream以及hdx。我们主要关注的是hdSt。因为这个项目是和OpenGL渲染密切相关的。由于OpenGL是做渲染的大家通用知识,因而它是我们关注的主要子项目。

    调试

    调试.jpg
    我们调试这部分代码,截了此图。我们在图中至少发现几个问题:

    Maya底层是用OpenSceneGraph(OSG)管理场景的。我们可以看到Maya 2018的文件夹里有很多OSG开头的动态链接库,这么说具体视口渲染的部分都是建立在OSG上的。Maya的Viewport 2.0也是建立在OSG上的。在可见的将来它们不会替换掉OSG。

    USD的Hydra和Maya结合的类叫做UsdMayaGLBatchRenderer。由名字可知,它仅工作在OpenGL下,换句话说,如果Maya使用的是DirectX11进行渲染的,那么它将会失效。
    d7063ec4-242e-40bd-bf05-5103c38fedf1-image.png

    libhd项目只是一个前端库,后端通过libhdx以及libhdSt来实现。尤其是libhdSt,它主要是和OpenGL打交道的。它十分复杂。主要基于的是OpenGL 3.3+,也就是包含了各种着色器以及高级栅格化技术,并且整合了网格细分库:OpenSubdiv。

    后续

    由于我们的研究方向是思考一个方式来让让Hydra支持过程化纹理,因此我们还需要继续对此进行研究。

    read more
  • 最近我开始在Maya工作啦。Maya是一款优秀的三维软件,可以处理布景、建模、纹理、装备、渲染等操作。而且它可以支持C++和Python的开发。文档也是非常多的(参考这里)。

    我们最近的工作呢,是想要利用Maya的资源,尤其是图片资源,来制作新的界面。由于Maya是基于Qt开发的,因此要获取图片资源,除了Maya文件夹里D:\Develop\Autodesk\Maya2018\icons文件之外,还需要从资源文件中获取到。而资源文件一般是编译成C++代码放在程序的某个位置了,所以我们一般是看不到的。我们就开始想,既然Maya能够成功地读取并且显示,我们通过Maya的插件开发,不也能够获取并且显示到需要的图标吗?由于Qt的经验,我开始研究通过写Maya插件来获取到Maya资源文件的方法。

    新打开Maya软件,点击右下角的脚本图标,我们开始输入脚本:
    ad141613-63a5-4a93-9b79-3d6ca44da782-image.png

    2、我们通过Qt for Python来从Maya中获取到图标信息。由于Maya是构建在Qt 5.6.1上的,当时还不叫Qt for Python,而是PySide2。当然用法也是差不多的。更重要的是Qt 5.6.1已经支持QML了,可以支持QML的基本绘图方法。所以我们打算结合Qt for Python和QML来实现相关的功能。其实这样一组合就和Maya没有什么关系了。剩下的都是Qt的技术。
    我们的脚本是这样的:

    from PySide2.QtQuick import QQuickView from PySide2.QtCore import QDir, QFileInfo, QUrl def getMayaResourceFileList( nameFilter ): dir = QDir( ":/" ) return dir.entryList( nameFilter ) view = QQuickView( ) view.setResizeMode( QQuickView.SizeViewToRootObject ) mainUrl = QUrl.fromLocalFile( "C:/Users/huawei/Documents/ImageGridView.qml" ) view.setSource( mainUrl ) view.show( ) rootItem = view.rootObject( ) if rootItem != None: rootItem.setProperty( "prefix", "qrc:/" ) rootItem.setProperty( "model", getMayaResourceFileList( '*.png' ) )

    其中C:/Users/huawei/Documents/ImageGridView.qml是我本地的路径,可以改为任意的路径甚至是http路径呢。

    我们还得完成ImageGridView.qml文件内容,其实也非常简单,大概是这样的: import QtQuick 2.6 GridView { id: root width: 320 height: 480 cellWidth: 80 cellHeight: 80 delegate: Image { width: 80 height: 80 source: root.prefix + modelData Text { anchors { left: parent.left right: parent.right bottom: parent.bottom } text: modelData wrapMode: Text.Wrap } } model: 40 property string prefix }

    22ae8472-0bb3-4342-ae72-e1cb54bd87a7-image.png

    4、这些文件准备就位了!我们打开一下Maya软件,看看结果~
    f430332d-c824-47d3-8d1c-b17b3c53bc97-image.png
    它是一个可滑动的界面,每行显示4列,然后下面是文字的内容,展示了图标的名称。我们可以借此工具拿到我们感兴趣的图标的路径,然后应用到我们制作的界面上。其实,如果你觉得图片好,也可以通过QImage以及QPixmap给转存出去自己用。

    如果你觉得文章很棒,记得点赞哦。

    read more

关注我们

微博
QQ群











召唤伊斯特瓦尔