- 博客(71)
- 资源 (6)
- 收藏
- 关注
原创 【计算机物理模拟】-力矩、转动惯量和角速度之间的关系
这个关系表明,当物体的转动惯量增大时,为了产生相同的角加速度,需要更大的力矩;当物体的角速度增大时,为了产生相同的力矩,需要更大的转动惯量。牛顿第二定律表明,物体的加速度与作用在物体上的合力成正比,加速度的方向与合力的方向相同。而对于旋转运动的物体,其加速度可以表示为半径。另一方面,角动量定理表明,物体的角动量守恒,当物体受到的合力矩为零时,其角动量保持不变。因此,物体的转动加速度与作用在物体上的合力矩成正比。力矩和角速度之间的关系可以通过牛顿第二定律和角动量定理来描述。表示作用在物体上的合力矩。
2023-02-24 17:17:48 10408
原创 SkyLight 添加LightingChannelMask功能
Skylight Shader参数 IndirectLightRendering.h–>FSkyDiffuseLightingParametersPS函数 ReflectionEnvironmentPixelShader.usf–>ReflectionEnvironmentSkyLighting相关shader。
2022-09-29 11:32:18 301
原创 GenerateProjectFile.bat生成失败解决
UE4 GenerateProjectFile.bat生成失败解决提示找不到.NetFrameWork版本SDK提示重定向.NetFrame引用集提示找不到.NetFrameWork版本SDK这是因为没装对应的.Net版本,打开VS的Install安装工具勾上对应.Net版本的SDK和目标包提示重定向.NetFrame引用集这意味着.Net的SDK和目标版本都有,需要删除E:\Engine\UnrealEngine\Engine\Source\Programs\UnrealBuildTool 路径
2021-10-18 20:00:27 689
原创 UE4自定义DetailPropertyEditor
UE4自定义DetailPropertyEditorFDetailPropertyRowSPropertyValueWidgetFPropertyEditor和FPropertyNodeMakePropertyEditor踏破铁鞋无觅处,得来全不费工夫FDetailPropertyRow属性窗口的的每个Item都是由FDetailPropertyRow造的。SPropertyValueWidget不用的Value对应不同的Slate控件由SPropertyValueWidget生成。FProper
2020-10-07 22:14:04 1016
原创 UE4 粒子系统导出记录
ParticleSystem Export关于粒子系统的类关于粒子系统的类UE4一个粒子特效资源被视为一个粒子系统UParticleSystem : public UFXSystemAssetUParticleSystem 下面管理着TArray<UParticleEmitter*> Emitters; class UParticleEmitter : public UObjectUParticleEmitter 下面管理着 // Array of modules that
2020-09-23 10:22:59 886
原创 Windows—OpenGL core profile版本初始化
Windows—OpenGL core profile版本初始化请求OpenGL接口初始化GLEW设置DC像素格式,创建OpenGL上下文绑定OpenGL渲染上下文请求OpenGL接口因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,在Windows上会是类似这样:
2020-06-10 15:32:06 757
原创 UE4 C++读取网络图片
#include "RunTime/UMG/Public/Blueprint/AsyncTaskDownloadImage.h"// 开始下载图片.FString mURL = TEXT("http://img5.duitang.com/uploads/item/201407/28/20140728210503_fCTEa.jpeg");UAsyncTaskDownloadImage* mDownloadTask = NewObject<UAsyncTaskDownloadImage>()
2020-05-31 22:44:18 1224
原创 算法导论
算法导论说明:文章里面所有下标都从0开始,这里跟算法导论不同,算法导论从1开始插入排序1.从序列AnA_nAn中取出一元素AjA_jAj,j∈_j\inj∈[1,n],让AjA_jAj与[A0,Aj−1][A_0,A_{j-1}][A0,Aj−1]区间的所有元素做比较2.把满足条件的AxA_xAx(Ax∈A_x\inAx∈[A0,Aj−1][A_0,A_{j-1}][A0...
2019-11-21 15:24:44 256
原创 Windows网络编程包含WinSock2.h报错问题
有两种解决办法:把WinSock2.h写到windows.h之上,如下(不推荐):#include<WinSock2.h>#include<windows.h>在使用到的地方定义WIN32精简宏(推荐):#define WIN32_LEAN_AND_MEAN#include<windows.h>#include<WinSock2....
2019-02-16 09:45:30 2431 1
原创 UE4 独立应用程序创建(Program类型的工程项目)
UE4Editor中默认能创建的C++工程项目就是Game类型的。但是目标不仅仅是游戏那么短浅,我们别为了开发游戏而搞引擎,引擎功能很强大,拿来开发一个APP或者其他仿真应用完全是可以的嘛。废话少说开整。借用宝地记一下UBT的命令,读者请自行忽略…UnrealBuildTool.exe BaseCode Development Win64 -project=&amp;amp;amp;amp;amp;amp;amp;amp;quot;G:/UnrealEngine4/...
2019-01-02 21:52:06 4321
原创 OSG法线收集
CollectNormalsVisitor.hpp#include <osg/NodeVisitor>namespace ose { /** * Compute a representation of normals from children geometries. * * Normals are bound to vertices. * The ...
2018-12-14 10:07:11 633 2
原创 模型切分思路
CPU 端切分思路1 将当前场景所有三角形都收集起来. 相当于一个巨大的mesh;2. 确定好计算平面, 计算所有的三角形和平面的关系. 三角形在平面上的, 放到upperList,三角形在平面下的, 放到lowerList. 对于和平面相交的, 把三角形切开, 分开保存.3. 合并起来. 就得到了上下分开的三角形们了...
2018-11-22 10:13:37 594
原创 OSG拾取点和线当然面也能拾取
if (ea.getButton() == osgGA::GUIEventAdapter::RIGHT_MOUSE_BUTTON) { osg::ref_ptr&lt;osgUtil::PolytopeIntersector&gt; picker = new osgUtil::PolytopeIntersector(osgUtil::Intersector::WINDOW, ea.getX...
2018-11-10 18:31:09 2551
原创 OpenGL投影矩阵
目录1.综述2.透视投影3.正交投影综述电脑屏幕是2D表面,必须将OpenGL渲染的3D场景作为2D图像投影到计算机屏幕上,所以就需要用到投影变换MpM_pMp。首先,MpM_pMp将所有顶点数据从眼睛坐标转换为裁剪坐标。然后,这些裁剪坐标的各分量(x,y,z)通过除以w分量被变换到规范化坐标(NDC)。所以MpM_pMp其实做了两步操作:将相机空间坐标变换到投影空间将...
2018-11-09 15:41:05 2042
原创 图形学第一人称摄像机算法
本算法是从CryEngine里面扒下来的,CryEngine里面使用的矩阵为列矩阵。而我扒下来是要用到OSG,OSG是行矩阵,所以所有算法涉及到取矩阵元素的行列位置做了颠倒。比如在CryEngine中取矩阵x行y列元素为M(x,y),对应到OSG中应该是M(y,x)。不知道什么是行列矩阵的请参考我的博客图形学中的行矩阵和列矩阵。在行矩阵中第一人称摄像机操作算法所谓摄像机就是在3D图形学中观察...
2018-10-16 16:39:41 1835
原创 图形学中的行矩阵和列矩阵
本算法是从CryEngine里面扒下来的,CryEngine里面使用的矩阵为列矩阵。什么是列矩阵?比如M(x,y)表示取出矩阵的x行y列元素,那么对于一个4x4的齐次矩阵K来说,如果它的位置分向量为T(下标索引从0开始计,一个矩阵有旋转分量和位置分量),则T为T=Vec3(K(0,3),K(1,3),K(2,3)),并且在矩阵作用于向量的变换时应如下Matrix44 mat=...;//44...
2018-10-16 16:06:23 6325 2
原创 CryEngine5.5用代码读出模型的各个数据(顶点、UV、法线等)
IRenderNode** pTestRenderNode = nullptr;uint32 count = gEnv-&amp;amp;amp;amp;amp;gt;p3DEngine-&amp;amp;amp;amp;amp;gt;GetObjectsByType(EERType::eERType_Brush, pTestRenderNode);if (count != 0){ IStatObj* pObj = pTestRenderNode[0]-&am
2018-10-10 14:45:43 1145
转载 根据模型的顶点坐标和纹理坐标计算顶点的法线、切线和副法线
如何根据模型的顶点位置坐标和纹理坐标计算顶点的法线、切线和副法线?我们把顶点数据记作P(x,y,z,u,v),(x,y,z)是位置坐标,(u,v)纹理坐标三角形的3个顶点就可以表示成P0(x0,y0,z0,u0,v0)P1(x1,y1,z1,u1,v2)P2(x2,y2,z2,u2,v1)因为u,v的变化对x的影响是线性的,则有x = C1 u + C2 v + C3不妨整理一下,...
2018-10-10 12:32:01 3569
原创 如何修改CryEngine5.5着色器
到CE工程或者是Root/engine目录下(工程没有配置过资源路径默认是Root/engine下)添加Shaders文件夹,我的就是用默认的拷贝资源拷贝Illum.ext到%Root%/engine目录下打开shader.pak压缩包,并将Illum.ext拷贝到刚才新建的目录下。(Illum.ext在shader.pak压缩包里面,需要用解压缩程序打开拷贝)注:自...
2018-10-02 23:49:56 982
原创 CryEnging5.5源码+编辑器完全编译(2018-9-30)
CryEngine完全编译目录从github获取CryEngine最新源码下载第三方依赖库Cmake构建VS工程编译时间:2018年9月30日从github获取CryEngine最新源码CryEngine的github地址:https://github.com/CRYTEK/CR...
2018-09-30 17:45:31 8870 9
原创 NoesisGUI编译报错【error C2802:静态成员"operator new" 没有形参】解决办法
包含头文件Noesis_pch.h之后,编译报错截图解决办法在#include&lt;Noesis_pch.h&gt;之前加上一个宏判断,如下:
2018-09-27 16:45:42 716
原创 NoesisGUI中*.xaml.bin.h和*.ttf.bin.h的生成方式
在使用NoesisGUI的过程中需要把XAML文件和tiff字体格式文件等一些文件生成二进制定义头文件,就是【文件】---->【字节流】(就是把文件弄成CPP可以识别的东西具体如下对应)但是如何生成这个东西呢,动脑子想想NoesisGUI肯定为我们提供了这样的工具,下面就来说说步骤吧添加现有项为文件选择自定义生成命令行的内容为://XAML转换为二进制头G:\N...
2018-09-27 14:01:27 801
原创 git fetch步骤
git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提。FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。commit-id:在每次本地工作完成后,都会做一个git commit 操作来保存当前工作到本地的repo, 此时会产生一个commit-id,这是一个能唯一...
2018-09-26 20:40:02 17607
原创 Windows下面Clang的调试方法
虽然我们使用了Clang工具进行编译,但是我们依旧可以使用Visual Studio进行调试。方法如下:首先,我们需要将编译分为两个步骤,先在CMD使用clang进行obj的生成(也就是编译)。clang-cl -c -Z7 -o helloengine_d2d.obj helloengine_d2d.cpp注意我们这里实际上使用的是clang-cl这个工具。这个工具是clang的一个...
2018-09-26 20:06:27 3221
原创 MFC 半透明按钮
效果展示实现方法给按钮加上BS_OWNERDRAW样式重载DrawItem函数,在这里绘制按钮关键之处就是把父窗口的背景复制到按钮上,实现视觉上的透明最后通过AlphaBlend实现半透明.源码下载:http://blog.csdn.net/cometnet/article/details/8464693实现源码// MyButton.h #pragma once ...
2018-09-26 19:50:27 2700 2
原创 在MFC的CView中创建工具条(CToolBar)
第一种方式是在此view的对应doc模板CFrameWnd子类的OnCreate函数中添加创建代码由于mdi的模板多个view可能是公用一个CFrameWnd子类。此方法控制不太灵活但是简单第二种方式即在view的OnCreate函数中创建int CXxxView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CView::OnCre...
2018-09-26 19:44:45 1301
转载 网络数据包发送接收详细过程
原文链接:http://blog.csdn.net/hilyoo/article/details/4455031 Linux的网络接口分为四部分:网络设备接口,网络接口核心,网络协议族,网络接口socket层。可参考:http://lxr.linux.no/linux+v2.6.30.4/net/ 网络设备接口部分主要负责从物理介质接收和发送数据,实现的文件在linu/d...
2018-09-21 09:47:23 3185
原创 OpenThreads解读
HandleHolder 类:这个类封装了HANDLE 句柄。实现了一些对句柄的操作的函数,比如赋值、获取、关闭句柄等等。Mutex类:使用的是临界区进行资源的管理。使用了Win32MutexPrivateData (在Windows系统中)这个类对临界区 CRITICAL_SECTION 进行封装,然后在Mutex 这个类中保存了一个Win32MutexPrivateData 的成员对象...
2018-09-20 15:20:14 912
转载 OpenThread库_线程的启动和取消
OpenThread简介OpenThread库,提供了一个Thread类,供用户创建自己的线程。其使用非常方便,用户只需要继承自OpenThreads::Thread类,然后自己重写run接口即可。Thread程序示例下面程序,使用一个线程,去卖票。g_ticketCounts表示当前可用的票的数量。#include &lt;OpenThreads/Thread&gt;#include ...
2018-09-18 09:32:30 1698
原创 Windows下调试Clang编译程序
虽然我们使用了Clang工具进行编译,但是我们依旧可以使用Visual Studio进行调试。方法如下:首先,我们需要将编译分为两个步骤,先使用clang进行obj的生成(也就是编译)。D:\wenli\Source\Repos\GameEngineFromScratch\Platform\Windows>clang-cl -c -Z7 -o helloengine_d2d.ob...
2018-09-16 22:29:33 2127
转载 OSG总结
在用户程序中使用osg一.渲染Osg开放了所有的功能模块。因此用户程序完全可以使用最底层的osg功能来执行渲染操作。假设用户希望能够完全自主的控制场景图形的渲染,那么也可以按照下面的步骤编写应用程序的代码:设计自己的视角管理代码:以改变OpenGL的模型视图矩阵。创建用户窗口和OpenGL上下文,并将他们激活。如果有需要的话,用户也可以自行编写管理多窗口和多个设备上下文的代码。如...
2018-09-13 16:48:11 1038
原创 深入理解osg::PagedLOD
1.先看看继承关系: PagedLOD继承了LOD继承了Group继承了Node;2.简单说说OSG的每一帧干的事: OSG其实很简单就是封装了一个循环,在这个循环里面,osg不断调用各种NodeVisitor,去处理加入场景的各个Node。void ViewerBase::frame(double simulationTime){ if (_done) return; ...
2018-09-12 20:31:47 11062 3
原创 Docker用阿里云加速
去阿里云自己注册个帐号然后进入下面网址,就是上图的 https://cr.console.aliyun.com/cn-shanghai/mirrors按照网站的操作文档弄就可以了
2018-09-07 21:04:44 287
原创 Docker 镜像在哪里
1. 在Linux下 我们很容易就可以找到镜像目录,镜像是以层次结构存储的。 每当创建一个pull一个新的image或者容器时会在/var/lib/docker/graph/生成对应ID的目录存储元数据,/var/lib/docker/aufs/diff/目录生成对应ID的目录存储数据。 当容器被删除或者image被移除时,对应的目录也会被移除。 2. 在Mac下 官方提供的...
2018-09-07 20:40:40 1683
原创 docker报错处理
改了加速后因为host冲突报错了报错如下: Job for docker.service failed because the control process exited with error code.See “systemctl status docker.service” and “journalctl -xe” for details.查看一下systemctl status ...
2018-09-07 20:38:49 1366
windows7环境变量查看设置软件
2018-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人