
GameEngine
文章平均质量分 78
上山老人
一头奔放不羁的程序猿
展开
-
games101透视投影矩阵推导
参考[1][2],先说一下问题原因:代码里面传过来的近平面和远平面都是正数,但是在课程视频里面说的n, f都是负数,看范围也可以看出来是是要写成[f, n]。看了一下参考[1][2]中一些同学说的方法,把正负取反,以及乘以一个变换矩阵,都觉得怪怪的,所以手动推导一遍投影矩阵,直接应用这个公式看看。坐标系:右手坐标系向量记法:列向量V=(xyz1)V = \begin{pmatrix} x \\ y \\ z \\ 1 \\ \end{pmatrix}V=⎝原创 2022-08-14 23:17:31 · 843 阅读 · 0 评论 -
判断点是否在三角形内
文章目录方法一:Same Side代码实现方法二:重心坐标法重心坐标通过重心坐标判断求重心坐标代码实现参考参考[1]的话比我看得其他几篇文章更加的清晰,所以可以直接看它就可以了。方法一:Same Side代码实现参考[1],用的是Eigen库static bool SameSide(const Vector3f& p1, const Vector3f& p2, const Vector3f& a, const Vector3f& b){ Vector3f原创 2022-05-17 09:08:46 · 801 阅读 · 0 评论 -
PhysX两轮载具简单实现
文章目录PxVehicleNoDrive1.修改轮子个数2.修改报错3.控制台提示参数不对PVD效果想实现一个摩托车的物理载具,所以先在Snippet里面改了一下PxVehicleNoDrive看到UE4中是用PxVehicleNoDrive实现的,就想在SnippetVehicleNoDrive快速改一下看下效果,结果改了几行代码就基本看到效果了1.修改轮子个数VehicleDesc initVehicleDesc(){ // 省略... // two wheels c原创 2021-06-14 00:45:08 · 596 阅读 · 0 评论 -
updateMassAndInertia
文章目录更新不更新总结在写代码的时候会经常看到updateMassAndInertia这个函数,能大概知道意思是更新质量和惯性。但是,是个什么样的效果呢?更新可以做个实验(1)先创建一个box(2)然后再attach一个box的shape,然后里面就调用updateMassAndInertia接口(3)再然后detach掉,调用updateMassAndInertia整个过程看下效果可以看到这个PhysxActor的重心会根据添加的shape而发生变化不更新还是上面的实验:(1)cr原创 2021-03-03 15:12:39 · 172 阅读 · 1 评论 -
imgui富文本的实现
文章目录两种实现用##aabbccdd这种颜色标识第二种做法是用Xterm colorANSI and xterm color maps参考关于imgui的richtext,issue有一篇文章一直讨论这个的,但是好像也没有特别好的办法两种实现自己参考了两个实现[1],做了下,大体思想是在imgui 渲染的地方根据字符串中特别标识的字段重新获取颜色出来。两种方法差不多,只是特别标识用的方法不太一样用##aabbccdd这种颜色标识实现代码bool ParseColor(const char* s原创 2020-12-01 11:54:33 · 1648 阅读 · 0 评论 -
多边形占用格子算法
文章目录基本原理线段相交代码实现参考最近,需要做这个功能,然后找到一个非常好的论文[1],把代码实现了一下,基本算是解决问题了。论文自己搜一下吧,我也放了一份在[优快云下载]里面。基本原理1.先找出多边形的边界,同时设置这些已经找出来的格子的状态,ODD和EVEN这两个就够了,后面用来填充中间的格子,以及如果多边形中间有镂空也是考这个状态的。2.然后按列扫描格子,把两个格子中间的填充,根据状态可以算出来是否镂空。3.最终每一列就得到一个范围表,如果没有镂空那么那一列就是从最上到最小原创 2020-10-17 23:57:36 · 1308 阅读 · 0 评论 -
两个线段相交测试
文章目录实现效果参考实现把参考[1]中的代码用c++翻译了一下,几乎都不用改,放在github上了[5]效果1.segment intersect2.segment not intersect参考[1]How to check if two line segments intersect[2]判断两条线段是否相交—(向量叉乘)[3]How do you detect where two line segments intersect? [closed][4][5]KIn原创 2020-10-17 23:55:14 · 189 阅读 · 0 评论 -
UE4源代码无法下断点调试
文章目录没有符号文件下载符号文件用UE4编辑器创建了一个C++工程,vs打开编译启动之后,在引擎代码里面无法下断点没有符号文件下断点显示没有符号文件,在 vs的模块里面也是显示:无法打开或加载符号文件在引擎的Binaries目录下面也确实没有找到符号文件,只有很多的dll下载符号文件打开Epic Games,虚幻引擎->库下载符号文件启动后面的倒三角形->选项,有如下界面把输入调试用符号勾上,重新下载,下载完之后再去UE_4.24\Engine\Binaries\Win原创 2020-07-23 07:39:51 · 3074 阅读 · 9 评论 -
四元数公式推导
文章目录公式推导三维空间旋转公式1.向量分解2.水平方向v∥\pmb{v}_{\Vert}vvv∥的旋转3.垂直方向v⊥\pmb{v}_{\bot}vvv⊥的旋转4.向量v\pmb vvvv的旋转公式四元数的3D旋转公式1.水平方向v∥v_\Vertv∥的旋转2.垂直方向v⊥v_\botv⊥的旋转3.四元数vvv的旋转公式小结两种公式等价证明参考在看PhysX源码的时候,看到四元数公式,想知道怎么推导过来的,因为网上一大片帖子都是直接写上这个公式。最主要是纠结公式中角度的一半是如何来的公式参考原创 2020-06-29 22:55:35 · 1760 阅读 · 0 评论 -
physx vehicle启动慢的问题
文章目录经历1.各种修改数据,阻尼,弹簧啥的2.跟源代码,查看数据3.和代码库里面sample例子对比一下代码解决总结参考把PhysX vehicle接到我们miniclient中,发现按w键,车子要好半天才启动起来~经历1.各种修改数据,阻尼,弹簧啥的参考[1]结果:无果2.跟源代码,查看数据跟踪的一些数据表明,确定引擎是有动力的=小结:(1) 从轮子的旋转上看就发现miniclient中车子一开始轮子旋转几乎是0,看四元素的x分量。因为车子是z方向,轮子也是,所以是绕x轴旋转# co原创 2020-06-14 21:17:54 · 617 阅读 · 0 评论 -
cocos creator添加socket.io.md
文章目录步骤使用问题参考步骤下载socket.io注意:是需要下载客户端,一开始直接把socket.io的GitHub下载下来了,发现并不是这么用的参考[3][4][5]有提到,下载socket.io.js,添加到script中下载连接:参考[6]最终拿到一个socket.io.js的文件修改文件内容参考[1],就是包一个东西,在前面下载的socket.io.js的文件内容...原创 2020-03-11 10:05:33 · 991 阅读 · 0 评论 -
PhysX之解决三角形顶点相近卡住的问题
文章目录原因解决参考今天遇到一个问题,角色卡在一个模型边上,在PVD看模型也比较正常,一直调试跟踪,最终找到了问题所在。原因1.问题出在最后一个sweepCapsuleTriangles函数里面,代码如下: #ifdef __SPU__ Vec3V dummy1, dummy2; FloatV result = distanceSegmentTriangleSquared(...原创 2019-11-13 23:27:37 · 351 阅读 · 0 评论 -
PhysX开启double-sided解决卡住的问题
文章目录问题描述创建double-sided的mesh问题解决总结问题描述有个楼梯的斜面的normal反了,结果会导致模型卡在这个楼梯走不出来,类似于一个封闭的盒子。因为模型现在改不了的缘故,所以就准备技术上先解决一下:启用double-sided的功能。PVD正面看到楼梯,看不到斜面PVD反面看到的斜面组合起来看到一个内部封闭的空间,胶囊体掉进来就卡主了创建double-s...原创 2019-11-13 23:26:45 · 465 阅读 · 0 评论 -
Apex NvParameterized
文章目录疑问结构Lookup TreeDefinition Tree小结创建和使用创建-构建树使用-查找树总结疑问在看Apex的时候会给破碎模型设置参数,形式如下: NvParameterized::setParamBool(*actorDesc, "dynamic", false); NvParameterized::setParamBool(*actorDesc, "formExten...原创 2019-10-02 15:13:02 · 216 阅读 · 1 评论 -
变换矩阵在左右坐标系的转换
文章目录疑惑坐标系的不同坐标系转换原理结论参考疑惑Max导出的fbx模型文件加载到客户端,对变换矩阵做了如下的转换,把Z-up右手坐标系的变换矩阵换到Y-up左手坐标系的变换矩阵。咋一看相当懵逼~FORCEINLINE void _DxMatrixToApexMatrix(physx::PxMat44& matrix, const XMFLOAT4X4& xmMatrix)...原创 2019-08-27 22:06:36 · 1862 阅读 · 0 评论 -
矩阵变换的一次释疑
文章目录矩阵变换模型缩放的错误想法旋转顺序问题解决参考最近遇到一个问题,模型上面的一个骨骼因为模型缩放之后它的变换矩阵各种不对。搞得有点迷糊,所以这里记录一下矩阵变换已知下面这样的变换MBoneLocal∗MLocal−>World=MBoneWorldM_{BoneLocal} * M_{Local->World} = M_{BoneWorld}MBoneLo...原创 2019-08-24 11:18:41 · 760 阅读 · 0 评论 -
Physx编译checked,报错__pfnDliNotifyHook2 redefinition
文章目录基本信息报错解决基本信息Physx-3.3.4vs2012checked报错error C2373: '__pfnDliNotifyHook2' : redefinition; different type modifiers两个第一的地方,一个申明的地方1.WindowsCookingDelayLoadHook.cppconst PfnDliHook __pf...原创 2019-06-02 18:53:49 · 474 阅读 · 1 评论