郑玮泽

来自CGTWiki
跳转至:导航搜索
郑玮泽.png

个人简介

生于1998年5月18日,籍贯新疆省乌鲁木齐市。

2016级    北京邮电大学     信息与通信工程学院      信息工程       本科
2020级    北京邮电大学     信息光子学与光通信院    电子信息       研究生

主要研究方向是三维显示和计算机图形学

Tel:13001211522
Email:407029736@qq.com
四级:524;六级:未过

电脑配置

电脑型号		兼容电脑台式机<br>

处理器			Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz<br>

内存容量		16.0GB<br>

显卡			1、NVIDIA GeForce GTX 1070
			2、Intel(R) UHD Graphics 630

硬盘			1、ST1000DM010-2EP102 (1.0TB)
			2、Samsung SSD 860 PRO 256GB (256GB)

主板			PRIME Z370-A (Rev X.0x)

网卡			Intel(R) Ethernet Connection (2) I219-V

声卡			1、Realtek High Definition Audio
			2、NVIDIA High Definition Audio
			3、NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
			4、英特尔(R) 显示器音频

显示器			S24D590  分辨率:1920x1080 

当前操作系统		Windows 10 64位


早会

  • 9.23 添加地图加载插件后,UE4工程打包失败,正在寻找原因,任尚恩师弟重建工程打包成功了,但有时也会失败,并且不确定原因。
  • 9.13 调试成武园区倾斜摄影在UE4加载不正常的问题。
  • 9.9 阅读chromium源码分析
  • 9.2 使用旧版本的拉取工具配置时无法下载第三方库,需要手动下载,正在找第三方库代码仓
  • 8.25 winSDK出现冲突,卸载后准备重新配置旧版本编译环境
  • 8.24 同步源码可能需要旧版本的winSDK以及拉取工具,尝试用历史版本工具拉取。
  • 8.20 迁出chromium42源码成功,但是在同步时出错。
  • 8.19 签出chromium42源码并生成工程

未解决的问题

任务列表:
addCompanyNameUI(经度,纬度,布告板内容); //添加布告板
addVideoUI(经度,纬度,rtsp地址,视频名称); //添加视频UI
addTableContent(数据位置描述,数值,预警值,传感时间); //添加表格内容
addTableUI(经度,纬度,模型名称); //添加表格UI
(1)从map中获取接口进行请求(请求的时间在跳转到下一个视点前完成)
(2)通过以上接口中解析需要的数据,注意各个名称不要重复。
(3)js获取系统时间和接口时间对比,传给NPAPI。

遇到的问题:

(1)在请求完数据返回后调用函数出现插件崩溃的情况:

addCompanyNameUI:概率崩溃;addTableContent:总是崩溃;
(2)在调用addVideoUI;addTableUI过程中并无问题。
尝试: 单独用js调用时并无问题,数据能够添加进去,用接口返回的数据调用时就崩溃,确定有数据返回并且数据类型格式统一。

2021周报

  • 9.23

(1)打包问题仍存在,现在实现像素流的工程中是没有添加cesium插件的。
(2)发布像素流网站时,我的主机总会自动开启一个网络服务占用80端口,导致无法发布,总是需要手动关闭80端口的服务,再发布。正在学习发布参数,如何发布在其他不常用的端口。
(3)js在向UE4通信时,emitUIInteraction函数发送json格式数据,并且UE4能够对接受到的数据做出判断,从而触发操作或响应。
(4)通过js与UE4完成在web端单击播放过场动画再单击反向播放。


  • 9.17

(1)完成js向UE4通信,可以发送json格式的数据。但还未完全掌握清楚UE4中的事件触发关系,蓝图调用。


(2)完成视频3dui且面向视口显示。


  • 9.13

UE4中加载本地osgb倾斜摄影数据步骤:
(1)利用文件:Osg2cesiumApp.rar将osgb格式的倾斜摄影文件转换为3Dtiles格式文件。
PS:在转换过程中gltf版本选择V2.0,其他默认,在我的机器上转换成武化工园区大概需要一个多小时。
(2)在UE4中添加本地倾斜摄影模型方法参考UE4中添加本地倾斜摄影模型步骤
(3)定陶园区(转换前文件大小:4.36GB,转换后文件大小:3.19GB)加载没有太大问题。


(4)成武园区(转换前文件大小:11.3GB,转换后文件大小:21.2GB)出现了很多空洞。


  • 9.11

(1)在UE4中加载了上半年转换为3dtiles格式的定陶园区的倾斜摄影,但是忘记了哪种转换格式的方式,正在测试。

  • 7.12

(1)解析不同格式的接口数据,如监控视频,传感器的单位,位置,状态,数据更新时间,并在web端实时接入。
(2)对解析后的数据进行二次处理,如显示距最后一次更新的时间过去了多久,并添加表格写入。

  • 7.2

(1)在web端用js发送post和get请求成功调用接口。
(2)与对方沟通后对于接口数据完成了筛选和接入。

  • 6.29

(1)更新关于获取数据接口的jsondll,将从接口获得的数据写入布告板时,web端测试不显示。
(2)联调发现是在调用隐藏公司名称函数时,有重名,一并隐藏了,已解决并重新更新了安装程序。

  • 6.23

(1)在web端解决了全屏出现滚动条的问题,并且js无法完全模拟键盘事件,于是在插件中用keyevent完成全屏。
(2)跟张泷师兄沟通,更新安装程序,现有版本的缓存写入安装目录下的plugin文件夹下。

  • 6.21

(1)更新了安装程序和动态链接库,现有版本增加了添加模型的接口,更换了指北针图标和顶部UI。
(2)web端完成了全屏,但仍有小bug,全屏前后会有布局不一致的变化。

  • 6.17

(1)更新了安装程序,将最新一版动态库以及新的浏览器打包进安装程序。
(2)完成了视点的跳转控制以及按钮优化。

  • 6.10

(1)重新打包了安装程序,解决了显示空白的问题。
(2)加入了计时器控制跳转,但仍有溢出bug,还需要继续优化。

  • 6.7

(1)完成了视点跳转,并在跳转时停留。可指定视点经纬度,高度,姿态,范围,跳转时间,停留时间。
(2)在调用获取当前视点信息的函数时插件崩溃,怀疑是代码问题,正在修改。


  • 6.4

(1)完成了JS调用osgdll跳转,但是跳转结果不正确。

  • 5.31

(1)编译了Release版本的插件,更新了安装向导并测试,能够在任意一台新环境机器安装运行。
(2)有可能出现安装成功立即打开网址地球为空白,可能是因为打开太快,关闭浏览器再打开即可。

  • 5.27

(1)完成了第一版插件打包,但还存在环境打包不完整的情况。
(2)完成了页面的弹性布局,并解决了页面冒泡事件导致的滚轮不正常现象。

  • 5.10

根据参考步骤在win10上成功编译了chromium92(64位)版本,正在拉取老版本源码进行编译。

Chrome92


编译过程:
(1)安装VS2019并且安装win10 SDK debug工具。 (2)安装depot_tools工具集。此工具集是Chrome官方发行的工具集包,用来下载依赖库以及配置文件。
(3)设置环境变量

注意:在system环境变量里设置,尽量不要在用户环境变量里设置

path里添加depot_tools目录,并放在第一行,确保优先运行。

vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional

DEPOT_TOOLS_WIN_TOOLCHAIN = 0(也可在用户环境变量里设置)

WindowsSdkDir = C:\Program Files (x86)\Windows Kits\10

只保留一个版本的windows sdk,win10。


(4)拉取Chrome源码到新建的chromium目录,fetch --no-history chromium(使用--no-history减少下载量)
(5)进入src目录,创建构建gn gen out
(6)进行构建autoninja -C out\Default chrome
(7)在chromium\src\out\Default下可以看到chromium.exe,打开即可运行。



  • 4.23

编译Chrome的流程:
(1)准备VMware虚拟机和Ubuntu14.04系统。

   遇到的问题:曾用Ubuntu20.04,但是在执行安装依赖库步骤的的时候出现了版本不支持的错误:Only Ubuntu 12.04 (precise) through 14.04 (trusty) are currently supported。网上仍有人用20.04编译成功,我在换了版本之后错误消失。

(2)确保系统中安装了git,并且有畅通的网络,能够不受限制的访问网站和克隆下载资源。
(3)安装depot_tools工具集。此工具集是Chrome官方发行的工具集包,用来下载依赖库以及配置文件。

   遇到的问题:安装好后要确认写入了环境变量,可能需要用一些简单的vim操作,只有depot_tools环境变量设置好,之后的构建命令才能被识别。

(4)获取源码。

   遇到的问题:源码可以自行寻找资源,在github上找到了到Chrome59的各个版本Chrome源码。也可用git自行从官网克隆源码,但速度较慢。

(5)安装其他构建依赖项。

   遇到的问题:(1)gclient不被识别,可能是工具集未被添加到环境变量中,或者是添加错误。
(2)gclient runhooks时出现client not configured,客户端未被构建的错误,可能是没有进行代码同步,需要在确保.gclient文件正确的情况下先执行gclient sync。
(3)gclient runhooks时,没有反应,命令执行了却没有任何文件信息或者是错误信息,可能是源码路径的问题,一定要将Chrome的源码解压到src文件夹下,克隆源码会自己生成这个文件夹,但自行下载源码复制过来的时候需要手动添加这一文件夹。

(6)编译源码。

   遇到的问题:在第三方库中由于害怕重复定义,出现了结构体中成员未定义的情况,而定义成员的代码块在执行的时候被忽略了,正在查看文件解决。


  • 4.16

(1)成功将本地osgb格式的倾斜摄影转换为3Dtiles格式,并在UE4中加载,但存在坐标不正确,lod层次混乱的情况。
(2)克隆了Chrome的源码,通过Chrome文档了解到Chrome浏览器中的进程线程框架。
(3)测试了支持ActiveX的插件版本的unity,在32位跟64位浏览器上都能成功运行。

  • 4.9

使用Cesium for Unreal插件将三维地球添加到UE4中,并测试完成了适用于cesium的3Dtiles格式模型加载。遇到了osgb转换成3Dtiles后加载问题,数据量较小时加载为空,数据量大时上传失败。

  • 4.2

(1)学习java视频,对JRE,JDK,JVM的结构关系有所了解,熟悉java语法和idea编辑器。
(2)完成在unity中调用动态链接库中的方法。
(3)尝试将倾斜摄影中节点的信息在osg中读取出来

  • 3.26

(1)结合张泷师兄写好的NPAPI完成页面。
(2)完成了错误提示页面编写,能够检测浏览器是否成功安装插件,并将页面发布到服务器上。demo地址

  • 3.19

(1)用js基本完成插件的拖动,放大缩小,如视频所示


(2)存在的问题:js实现时用键盘控制没有限制,用鼠标控制需要借助原生HTML标签,其次缩放时蓝色方框的位置在第二次缩放时会有些计算问题。


  • 1.25

(1)找到了unity商店中对Kinect4的示例包,导入工程后绑定模型,效果一般,如视频所示,肩胯僵硬,脖子只能左右转动不能歪头。


(2)尝试开源社区的K4a工程,示例绑定效果很好,但换了模型由于模型的坐标问题,反绑之后仍然出现不自然的情况,如颈椎后倾,左右手不自然。



  • 1.23

开源社区中的K4a示例工程


(1)仔细对比成功绑定模型和需要绑定模型之间的区别,发现现有模型绑定时上下颠倒,当我进行转身动作后模型旋转变正,于是考虑到腰部的骨骼坐标有问题,调整方向时发现有限制,未能成功。
(2)发现现有模型方向与unity中对人物模型方向规定不一致,将四肢左右反绑,发现新的问题,由于hip_center节点坐标系方向有旋转,模型腰部扭曲。
(3)在benlder中将hip_center节点删除,防止模型在该节点塌陷扭曲,大致正常如视频所示,但不能做出扭胯的动作,腰部因没有骨骼,比较生硬,效果如视频所示
(4)对于Kinect连接电脑出现异常的解决方法,旧电脑查看设备管理中显卡出现警告“Windows无法验证此设备所需的驱动程序的数字签名”,在电脑启动的高级设置中,禁用驱动程序强制签名即可。同样在新电脑中也禁用了驱动程序强制签名,BodyTracking SDK调用正常,但画面闪烁问题依旧存在,unity工程运行仍会崩溃。PS:尽管禁用驱动程序强制签名,仍会存在调用不到SDK的情况,需要将SDK中的所需文件手动添加进工程。

一共用两台笔记本电脑进行了测试,以下称为新电脑和旧电脑。
(1)新电脑:将工程移植到此电脑时,unity工程运行就会导致unity崩溃,怀疑是因为画面闪烁,在下载的sdk中测试摄像机,仍存在这个问题,于是重装了系统和软件,尝试多个版本SDK,但问题仍未解决,闪烁画面如视频所示。
(2)旧电脑:SDK安装测试正常,但在unity工程中运行时,会出现无法开启“人体跟踪”功能异常,找到类似情况贴子Azure Kinect DK + Unity 首次测试及修复异常,尝试了他的解决方案,未能解决,仍旧无法正常调用BodyTracking这个SDK。
(3)尝试:还曾尝试了其他的几种方法,但大部分都是基于旧电脑上做的,新电脑在unity中调用时,即使工程不崩溃(一般都会在几秒钟之内崩溃),也会有画面问题导致人体骨骼捕捉不稳定。例如有帖子提到安装CUDA和cuDNN,都已安装并设置环境变量,考虑到是否是工程问题,找到了GitHub上的K4A多个版本尝试,未能成功。因为无法正常调用SDK,尝试将SDK加入环境变量,或者将SDK手动添加进工程里,未能解决,仍旧报错无法开启“人体跟踪”功能异常。

(4)思考:目前来看,在旧电脑上测试成功的可能性要大一些,通过对其他环境跟步骤的排查基本可以确定就是这个人体跟踪SDK没有起作用的原因。新电脑的闪烁仍旧不明白为什么,不知道是否跟硬件相关。以下是两个电脑的关键配置
新电脑:CPU:AMD Ryzen 7 4800H with Radeon Graphics 显卡:NVIDIA GeForce RTX 2060 with Max-Q Design
旧电脑:CPU:英特尔 Core i5-6300HQ 显卡:NVIDIA GeForce GTX 950M

  • 1.5.将工程从学校电脑移植到笔记本上,出现了unity中摄像头画面闪烁unity崩溃的问题,在SDK中尝试骨骼识别,正常,排除摄像头硬件问题,正在查找画面闪烁原因。

项目总结

VR手柄射线控制移动

和胡松磊用插件实现扳机抓取移动,触摸板滑动伸缩


VR手柄控制移动关键代码

public class move : MonoBehaviour
{
    public SteamVR_Behaviour_Pose pose;
    public SteamVR_Action_Boolean teleport_right= SteamVR_Input.GetBooleanAction("InteractUI");//手柄按键交互定义,用于设置绑定
    public SteamVR_Action_Boolean teleport_left = SteamVR_Input.GetBooleanAction("InteractUI");
    public SteamVR_Action_Boolean teleport_forward = SteamVR_Input.GetBooleanAction("InteractUI");
    public SteamVR_Action_Boolean teleport_back = SteamVR_Input.GetBooleanAction("InteractUI");

    public float m_speed = 5f;//移动速度
    private UnityEvent mOnClick = null;

    void Update()
    {
        if (teleport_right.GetState(pose.inputSource))//检测手柄按键
        {
            if (mOnClick != null) mOnClick.Invoke();
            transform.Translate(Vector3.right * m_speed * Time.deltaTime);//向右移动
        }
        if (teleport_left.GetState(pose.inputSource))
        {
            if (mOnClick != null) mOnClick.Invoke();
            transform.Translate(Vector3.right * -m_speed * Time.deltaTime);//向左移动
        }
        if (teleport_forward.GetState(pose.inputSource))
        {
            if (mOnClick != null) mOnClick.Invoke();
            transform.Translate(Vector3.forward * m_speed * Time.deltaTime);//向前移动
        }
        if (teleport_back.GetState(pose.inputSource))
        {
            if (mOnClick != null) mOnClick.Invoke();
            transform.Translate(Vector3.forward* -m_speed * Time.deltaTime);//向后移动
        }
    }

}

引用

CSDN博客:
1.Azure Kinect开发入门
2.Azure Kinect DK 首次配置流程
3.Azure Kinect DK + Unity 首次测试及修复异常
4.Azure Kinect DK 基本开发流程

2020周报

12.9

12.6

  • 1完成kinect骨骼绑定。



11.25

  • 1.模型示例程序。

11.16

  • 1.完成了在unity中控制云台转动的功能。
  • 2.与代理人沟通专利细节。

11.1

  • 1.接通了球机的走线并配置好了网络
  • 2.将rtsp流媒体视频嵌入unity

9.28

  • 1.编译了C#通过WIN32 API实现嵌入程序窗体,但结果是将第三方带有窗口的EXE文件嵌入winform当中,不太清楚c#如何操作已完成插件的窗口。

9.17

  • 1.完成了专利WebGL下的多场景融合与通信方法。
  • 2.完成了web端三维地球与二维地图联动

8.30

8.23

  • 1.完成了rtsp视频流融合到cesium场景中
rtsp视频流融合到地形中


  • 2.存在的问题;

(1)cesium在融合视频时,要求视频源的video的大小不得超过240*160像素
(2)点击播放按钮时有bug,但是考虑到是监控视频,设置为自动播放可以避免
(3)使用的rtsp视频流是网络上可测试的地址,尝试使用VLC推流本地视频播放,VLC上可以拉流,但是网页上播放还是连接失败,正在找原因
8.16

  • 1.尝试在H5上加载rtsp,并初步撰写软件著作权

文件:Web三维信息平台.docx
8.2

  • 1.尝试调用百度地图,高德地图,openlayer地图的接口编写以及坐标位置校准。

7.25

  • 1.完成openlayer网页端标注接口的编写
  • 2.看C++视频

6.28

  • 1.帮助师姐完成了墓群标注,并添加了飞入的按钮,以及界面的标注问题。
  • 1.2d模式下的报错bug,是添加了OsmBuildings后出现的,注释掉这句话都正常,正在找更加准确地问题位置和解决方法。寻求解决办法的时候发现cesium官网OsmBuildings的示例也会出现同样的bug
  • 2.对“东汉地图”按钮的开关还未实现。


6.21

  • 1.完成了部分墓群的标注
  • 2.添加了模型并进行了地图标注
  • 1.没有完成视频纹理贴在实体上实现动态运动的效果,只实现了czml对一类实体的实现,对不同类别的多个实体还在尝试。

6.12

  • 1.学习了cesium中实体的内容类别以及对实体的操作,比如model,primitive的属性操作,正在学习CZML动态规划。
  • 2.与师兄一起更新了一版unityWebGL,增加了自动漫游的功能。
  • 3.解决了下方video在不同浏览器会有自动播放的情况。

2020年终总结

工作总结:

  • 1.搭建了web端三维信息平台,不断完善功能,进行RTSP视频流播放,融合。(6/7/9月)
  • 2.搭建数字文物web端的demo。(7月)
  • 3.Web端32位NPAPI的插件实现,调研如何将本地应用程序嵌入网页。(9/10月)
  • 4.学习unity并进行对海康威视在unity中的二次开发。完成unity中对球机的控制。(11月)
  • 5.撰写了一篇软件著作权和两篇专利。(11月)
  • 6.学习unity中进行人体模型驱动,并初步实现。(12月)
  • 7.学习使用VR手柄,并出差石家庄协助师兄完成交互。(12月)

占用资源:

  • 1.学位名额,感谢老师能够信任我,让我有了能够继续深造学习的机会。
  • 2.实验室工位,研一工位时分复用,但其实我个人占用的时间还是更久些。
  • 3.设备,使用了小组提供的一台台式机器。

自我评价:

  • 1.功劳与苦劳约等于占用资源。
  • 2.劳逸结合,按部就班。但意识到自己基础不扎实,还有待巩固,工作效率低,还有待提高。
  • 3.革命尚未成功,明年继续努力。