自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 关于四元数的民科级理解

(首先,本文讨论的都是用来描述刚体旋转的四元数,而不是数学中群论里的四元数,那里面使用的四元数是真的有特别复杂的意义的,也用到了更多性质和理论,也就是说其实图形学里的四元数是有点大材小用的意思)最近在牛客上看游戏研发岗位的面经,发现很多面试都问到了四元数是什么?我虽然没学过计算机图形学,但是是做6D位姿估计的,对四元数旋转矩阵什么的比较熟悉,四元数在游戏引擎里,估计也应该是描述物体旋转位姿的吧,就没更深入看。后来又看到一个问题,四元数比欧拉角的优势?这我就纳闷了,我们三维视觉领域,旋转矩阵、欧拉角、四元

2021-05-06 15:30:19 463

原创 一个UE4崩溃问题以及解决方案

由于本人在4.8号面试了腾讯的游戏客户端,但是在此之前从未使用过UE4.所以4.9号下载了UE 4.26.1,并按照UE4官网的教程创建了一个项目。正在磨拳霍霍准备大展宏图之时,发现UE4崩溃了。具体过程是这样的,打开项目之后,我什么也没干,就在场景里转了几下摄像机,然后UE4直接卡死,之后屏幕黑屏(什么都看不到的黑屏),然后UE4弹出崩溃窗口。我的显卡驱动是前几天才装最新的,UE4也重装了好几次,按理说不该有问题。多次重复之后,试验了各种项目类型和初始设置,始终都是在操作场景时稳定崩溃(干别的没

2021-04-13 21:00:45 20532 2

原创 算法思考

写在前面在学习了这么多的视觉算法控制算法和编程算法之后,对整个算法体系有了一些感想,在这里记录一下。算法是什么很多人学习了很多算法,却根本不知道算法的本质是什么?但是深入说起来,这其实是一个哲学问题。有些书说算法是帮主我们解决问题的方法。但是问题是怎么来的呢?没错,问题也是人提出来的,用人设计的算法去解决人提出来的问题,就意味着一个前提条件,即问题所在的空间内要包含问题的解。接下来是传统算法和编程算法的区别,首先我把视觉统计控制什么之类的算法都归为传统算法,他们与编程算法最本质的区别就是,他们的解

2021-03-27 14:40:21 473

原创 java学习-节点6

第二十二天排序树按照之前的理论,对树执行严格顺序化的插入删除操作,可以使树具有排序约束性。今天来实现一种结构,最简单的排序树。当新节点加入时,按照小大关系插入节点的左方右方,如果该位置有节点,则递推至该节点继续比较。删除节点的时候,严格将其他节点重新连接。不过这里有一个问题,因为二叉树最多只能有两个孩子,如果删除的那个节点的两个子节点都是满节点的话,无法继续连接。那么就要递推到下一个节点,继续执行次操作。说白了,就是以被删除的节点为中心轴,从左或者从右开始向下搜寻,但是搜寻的路径要尽可能靠近中心

2021-03-18 21:54:44 151

原创 java学习-节点5

第十八天线程池之前介绍了线程池如何使用,现在来自己实现一个线程池。首先考虑线程池的主要功能,把阻塞队列中的任务拿来给线程做?这个怎么实现呢?难道线程里的runnable可以替换的吗?打开threadpoolexecutor的源代码,发现其实是单次调用了取出来的runnable的run()来实现的…意思就是队列中的runnable压根就没有挂载到线程上来。然后再考虑初始情况,0线程,新进任务进来,肯定是要新建线程的,然后开始执行run()。新任务不断进来,直到到达核心线程数,接下来应该将任务放入阻塞

2021-03-02 22:00:30 296

原创 java学习 connect(1,2,3,4)

学习java断断续续加起来已经有快三十天的时间了,之前的博客按照时间顺序写的,今天对其进行一次整合。框架刚好之前做学习ppt汇报的时候做了几张图,这里展示一下。基础编程语法这一块基本就很简单了,有编程基础的人随便看看就能搞定。java是一个以面向对象编程为目的而开发的语言,以C++为基础,摒弃了C++中许多繁琐的操作,并按照面向对象的思想在底层进行优化。唯一有点困惑的地方大概就是java的引用概念,这一点其实在了解了java的运行机制,也就是JVM后,也变得很容易理解了。难点1:继承访问

2021-02-26 21:27:42 779

原创 项目经历

分类:项目规模·大型项目·中型项目·小型项目·算法集合团队性·独立·小团体合作(2-3人)·大规模合作代码语言·C·C++·m语言·java·python·其他语言熟悉度·熟悉(系统性学习相关原理,实现功能后可以改进算法)·初学(简单了解原理,针对性浏览教程后可以自己独立实现功能)·陌生(复制粘贴修改后可以用)项目类型·单片机/嵌入式-小程序开发练习·单片机/嵌入式-实际系统应用(软硬件结合)·软件开发基础学习·游戏/软件开发·传统数字图像处理·深度学习

2021-02-26 17:04:22 1339 2

原创 Java学习-节点4

第十四天多线程学习由于博主是转行搞开发的,对多线程并行并不太熟悉,之前从操作系统的书上看了一些,但是没有实际编写过,也不太清楚java里多线程是如何实现的。今天来动手编程探究一下java具体如何实现多线程。sleep在Thread类中有一个sleep函数,用于将当前线程等待,在java API中有这样一句话线程不会丢失任何显示器的所有权。 (翻译问题,The thread does not lose ownership of any monitors原意应该是说线程不会丢失监视器的所有权,应该是

2021-01-28 22:36:20 268

原创 Java学习-节点3

第十一天、十二天、十三天2D游戏开发基础这几天一直在完善自己的基于java的简单2D游戏引擎。由于我也不知道真正的2D游戏引擎都包含哪些模块,只能按照自己的理解和以前的一些经验去编写。首先,结合之前的线程知识,我们的2D引擎至少需要一个线程,用来逐帧绘图。这里可以使用sleep人为控制每秒帧率为多少,当cpu无法满足时,便时刻不停的计算,不使用sleep。不过该实现有些复杂,于当前程序用处不大,所以在线程中使用固定时间sleep。结合之前的知识,要把游戏内所有的物体全部绘制到画面上,需要遍历每一

2021-01-26 16:33:13 250

原创 Java学习-节点2

第六天自己编写一种容器对比ArrayList,要求实现以下功能:add(value)add(value,index)get(index)clear()erase(index)1.首先容器是一种泛型工具,java中泛型跟C++差不多,直接拿来用就可以了。2.思考ArrayList如何实现自动改变大小的功能。之前在C++的书上只说了容器会自动分配内存空间,并随着自身大小调节新分配的内存空间。打开ArrayList源码,发现容器将内容都存储在数组中,不断在内存中分配一个大于现容量的固定数组,并

2021-01-09 21:59:52 262

原创 java学习-节点1

java学习笔记@TOC第一天(java初学)你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。面向对象java是一个以面向对象编程为目的而开发的语言,以C++为基础,摒弃了C++中许多繁琐的操作,并按照面向对象的思想在底层进行优化。java的类大致与C++相同,不同的是java文件以类为主体,编译链接时也可能以类为基础。类的编写:public class 类名{}这里

2021-01-06 22:04:51 396 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除