汲鲁育

来自CGTWiki
跳转至:导航搜索
汲鲁育.png

简历

2017级 西安电子科技大学 通信工程专业 本科
2021级 北京邮电大学 电子科学与技术专业 硕士
Email:463924083@qq.com Tel:18813149598
微信:wx15829581929

已完成的工作

学习研究生的核心能力。
阅读并学习wiki中的内容,熟悉了解实验室情况以及各项要求。
C++ primer前两部分的阅读学习,观看侯捷老师的视频。
OpenGL基础视频的观看。

存在的问题

动手编程能力仍需提高。
计算机图形学基础知识薄弱。
尚未弄清自己真正想要的东西及清晰的人生规划与方向。

九月份开学前计划

至少看完C++ primer前两大部分的内容,加强动手编程能力。
学习b站侯捷老师和清华翁凯老师的相关C++视频。
尽量看完OpenGL基础视频。
学习unity视频
研究unityRenderStreaming
始终向该目标迈进:“对于一个硕士生来说最重要的是在读研期间搞清楚自己要的是什么,应当学习什么为以后做好充分的专业准备。”

学习内容

2021.8

 2021.8.19(周四)

1、复习C++第九章顺序容器相关内容
顺序容器所独有的操作:
(0)赋值/拷贝:c(c1);c(beg,end);c{ }
(1)添加元素的操作:push_back、push_front、insert、emplace(可直接输入类的数据成员)
(2)访问元素的操作:front、back、c[n]、c.at(n)
(3)删除元素:pop_back、pop_front、erase、clear
(4)特殊的forward_list操作
(5)改变容器大小:resize(改变元素的数目)
(6)容器大小管理操作:capacity、reserve
(7)额外的string操作:构造、子字符串、修改、搜索、比较、数值转换。
容器适配器:stack、queue、priority_queue。容器适配器是在容器的基础上,建立的一种机制(可理解为一种新的类类型)。适配器具有自己独特的操作函数,不能使用其底层容器类型的操作。
2、结合笔记和自学网站复习OpenGL摄像机章节的内容
重点是第一人称摄像机和第三人称摄像机的构建
理解世界坐标、局部坐标、观察坐标、裁剪坐标;理解模型(Model)、观察(View)、投影(Projection)矩阵。

OpenGL矩阵变换

3、挑重点看翁凯的C++视频


 2021.8.20(周五)

1、复习c++泛型算法的相关内容
迭代器算法不依赖于容器,但算法依赖于元素类型的操作,例如find和accumulate函数的第三个参数的类型决定了函数中使用哪种类型的运算符及返回值的类型。例如:

string sum=accumulate(v.begin,v.end,string(“ ”));//正确
string sum=accumulate(v.begin,v.end,“ ”);//错误,const char*没有定义“+”

我们也可以提供自己定义的操作符来代替默认运算符:

可以向标准库的算法传递(增加)谓词来替代该算法原有的默认运算符,谓词是一个可调用的表达式,主要包括:lambda表达式和函数。
Lambda可以看做是一个可调用的代码单元或者未命名的内联函数,它可以定于在函数内部。
谓词分为一元谓词和二元谓词,也就是说谓词的形参只能是一个或者两个。
当算法只能使用一元谓词时:Lambda可采取隐式捕获的方法(通过捕获列表来获取多余的参数,从而保证形参数量不超过两个);如果要采用函数(具有多个输入的函数),则需要使用bind库函数来减少输入,使其满足一元谓词的要求

泛型算法不会执行容器的操作,只会执行迭代器的操作,所以算法永远不会直接改变底层容器的大小。

(但也可与实现向容器添加元素,例如插入器,插入器是一类特殊的迭代器,它们会在底层的容器上执行插入操作,
也就是说这种情况下仍然是通过特殊的迭代器实现的插入,与算法无关,算法永远不会做这种操作。)

重点理解插入器和back_inserter函数:
在改变元素的泛型算法中,对于那些序列长度不满足算法要求的容器或者是一个空容器ivec,可以通过back_inserter(ievc)来生成一个插入迭代器。
这个迭代器可以作为泛型算法的输入值参与到原本因容器大小原因而不能实现的算法中。
back_inserter(ievc)常作为一个保存结果的容器使用,因为它的size是根据具体算法实现确定的。

 链表具有特殊的算法形式,不同于普通的泛型算法形式。

2、复习OpenGL地形章节的内容
•地形的绘制方法:
F1:美术绘制,然后导出三维模型,再加载到游戏或者软件中进行绘制。
F2:由软件自身根据数据生成或者地形编辑。
•绘制过程相当于在网格(由三角形构成)上绘制,每个点(数据点)的高度可以不同。
•地形网络生成步骤:
先生成一个类:terrain:初步包含两个函数:setup初始化函数;render绘制函数。
然后再主函数里调用这两个函数。glPolygonMode()函数,表示用网格的形式显示。
•通过读取不同的高度,对不同的高度添加颜色,计算法线,给地形增加纹理,添加雾或者多纹理等操作使地形更加逼真。

地形.png

3、挑重点看翁凯的C++视频


 2021.8.23(周一)

1、通过千锋教育unity视频学习unity基础:界面、坐标系、场景基本操作
注意unity中使用左手坐标系

Unity项目结构

2、网上查找unityRenderStreaming的相关资料。
3、了解unityRenderStreaming的原理和基本实现过程。
•UnityRenderStreaming是一种通过浏览器提供 Unity 高清渲染能力的解决方案,是Unity云渲染开源框架。
其原理与云计算相似,简而言之,就是将3D程序放在远程的服务器中渲染,用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,
指令从用户终端中发出,服务器根据指令执行对应的渲染任务,而渲染结果画面则被传送回用户终端中加以显示。
•优点:不再对客户端的配置具有高要求;协同办公;使网页上的渲染效果更加出色等

renderstreaming系统结构


renderstreaming实现原理




 2021.8.24(周二)

1、学习unity基础视频,包括:父子物体关系、组件、预设体、资源包导入和导出、地形等方面的知识。
•当对一个子物体进行位移、旋转、缩放时,不会对父物体有影响。
当对一个父物体进行位移、旋转、缩放时,会对所有的子物体有影响。
这是因为,子物体的位置、旋转和缩放都是相对于父物体的。
•组件就是具有一定功能的集合,当希望游戏对象有某种功能时只需要对其加入相应组件即可。当一些功能组件无法实现时,就只能自己写脚本。
•预设体,就是将某个游戏对象以文件的形式存储起来。

unity terrain


2、根据网上教程,跑了一下unityRenderStreaming的示例工程
连接时出现了错误,总显示连接断开:

Renderstreaming示例错误


最终在浏览器端可以打开,但只能显示按钮,不能显示图像:

8.24运行结果


 教程:Renderstreaming示例教程



 2021.8.25(周三)

1、学习unity基础视频,主要包括:Rigidbody刚体组件,collider碰撞组件、物理材质及角色控制等知识。
•注意:两个物体发生碰撞,实际上是两个物体的碰撞体发生的碰撞。
•碰撞的条件:两个物体都要有碰撞体collider,至少一个有刚体rigidbody。
•如果物体表明没有设置物理材质,那么该物体的摩擦力默认为无穷大。
•模型的官方推荐格式是.fbx。预设体的格式是.prefab。
•组件animation(动画),是控制物体运动的组件,例如行走动画、站立动画等。
2、调试UnityRenderStreaming示例文件,仍然无法显示图像。


 2021.8.26(周四)

1、看视频学习C#基础知识。
2、安装node.js,继续调试UnityRenderStreaming示例文件。

unity端报错:WS连接断开


webserver端




 2021.8.27(周五)

1、观看千锋教育视频,学习C#基础,重点关注与C++不同的地方。
2、学习计算机图形学,主要包括:颜色模型、图像基本知识、Phong光照模型等。

2021.9

 2021.9.3(周五)

学习计算机图形学视频,包括视点变换与视点方向方面的内容。

 2021.9.7(周二)

学习《C++程序设计》第八章——类和对象的特性,并做编程练习。

 2021.9.8(周三)

1、解决了之前unityRenderStreaming浏览器端无法显示图像的问题。

unity云渲染

2、学习UE4基础视频,包括界面、视口导航、导入资源、项目迁移、BSP画刷等内容。
3、了解UE4像素流的基本原理,并在本地运行。

 2021.9.9(周四)

1、实现了像素流在手机移动端和电脑浏览器端的本地传送。
2、下载cesium插件,了解其使用方法。
3、学习UE4基础视频,包括地形工具的使用;构建植被、光照、雾、天空球等;角色控制权;打包等内容。

 2021.9.10(周五)

1、学习通过cesium插件向UE4中加载倾斜数据的方法。
2、学习《C++程序设计》第九章——怎样使用类和对象。

 2021.9.13(周一)

1、将.osgb格式的倾斜摄影数据转化为3dtile格式,然后通过cesium插件导入到UE4中,但由于电脑配置的原因(16G+RTX3060),渲染过程中会提示内存不足,导致崩溃。

倾斜摄影数据


显存不足


2、学习UE4蓝图通信相关视频。

 2021.9.14(周二)

1、学习C++多态性与虚函数部分的相关内容。
2、学习在UE4嵌入视频的方法。

 2021.9.15(周三)

1、实现在UE4中通过界面UI(Web Brower插件)来加载监控视频


项目要求是直接在场景中显示监控视频,尝试以纹理的形式添加。网上此教程较少:通过Radiant UI插件,编译时出现问题,可能是插件版本的问题;BLUI插件的尝试目前还在学习中。
Radiant UI 入门教程
BLUI插件
2、学习C++基础。

 2021.9.16(周四)

学习并尝试在场景中直接加入监控视频


步骤:
•启动web browser插件;
•创建控件蓝图,在“实用性功能”中拖入“web browser”并放大,在“Initial URL”中输入将要插入的网址,并勾选“Supports Transparency”;
•创建一个蓝图类,添加“widget”组件(如果找不到,可将引擎语言切换为英文),并将“控件类”设置为上一步创建的控件蓝图;
•最后在场景中拖入actor并调整大小即可。
教程视频

 2021.9.17(周五)

1、在倾斜摄影地形基础上加入cesium插件里的世界地形资源。
2、学习计算机图形学视频——光线跟踪第一节。

 2021.9.22(周三)

1、学习C++基础知识。
2、查找UE4与网页进行通信的实现步骤。

 2021.9.23(周四)

1、学习UE4官方文档。
2、学习C++基础。