图形学原理
大禾
中国科学院理科博士,从事阿里云空间大数据相关工作,有多年的GIS和游戏引擎研发经验。
展开
-
UE4学习笔记(23)获取路径的方法
有时候,我们可能会需要外部文件来实现一些功能,那么这时候就需要获取相关路径了。unreal 中在C++ 提供关于FPath这个api,基本可以满足所有情况。本文会在翻译参考文章的同时,会加入一些实际使用的相关函数,以方便以后来查询。 Overview 小伙伴们,这里将为你提供打包游戏后如何获取多种路径的方法。你不需要在Editor模式下测试时使用### ConverRelative...转载 2018-08-09 11:04:12 · 12667 阅读 · 0 评论 -
UE4.11 Win X64打包问题解决方法
[2018.04.25-05.20.48:548][ 0]LogWindows:Error: Windows GetLastError: 操作成功完成。 (0)[2018.04.25-05.20.49:823][ 0]LogOutputDevice:Error: begin: stack for UAT[2018.04.25-05.20.49:823][ 0]LogWindows:Error...原创 2018-04-25 13:55:03 · 4233 阅读 · 1 评论 -
全屏幕方式运行UE4打包程序的三种方法
我们做的UE4项目,打包完成之后,有些需要以全屏方式运行。以下介绍几种方法:一、在蓝图中用命令行进行设置,这种设置完成后,重新打包才有效。首先要确定UE4使用的默认关卡,在关卡中BeginPlay事件里面执行命令FullScreen.然后我们重新打包,再次运行EXE文件,就会以全屏方式运行。二、INI配置文件方式,需要重新打包我们找到我们的项目的根目录 [projectname]\Config,打...转载 2018-04-25 13:53:43 · 4323 阅读 · 1 评论 -
UE4 No COOKED content was found(打包)
报错,解决方法是,将project setting/platform/windows/Direct11和DirectX10勾上。关闭后重新启动,打包就正常了。原创 2018-05-02 22:37:58 · 797 阅读 · 0 评论 -
UE4 Matinee制作相机动画及其蓝图播放(UE4.11和UE4.19测试通过)
(1)打开Matinee创建相机轨道(2)选中Movement轨道,将时间轴拖到新时间点,按enter键添加新的keyframe,拖动相机进行位置调整。一个相机出现黄色轨迹,此为相机动画轨迹。点击Play键,就能播放动画。关闭Matinee并保存。(3)分别在Level Editor选中CameraActor和MatineeActor在Level blueprint中创建对应的对象,使用Set V...原创 2018-04-20 11:31:57 · 6595 阅读 · 1 评论 -
HUD DrawText()输出中文
(1)使用HUD DrawText发现,如果使用FString strOutput = TEXT("测试")DrawText(strOutput, ..) 中文文字能够正常输出(2)如果使用FString strOutput = "测试"DrawText(strOutput, ...)这个时候输出文字是乱码的经过很多时间测试发现,发现下面这种可以成功输出中文:std::string TestStr...原创 2018-05-08 20:40:47 · 1366 阅读 · 0 评论 -
utf8与std::string字符编码转换
1. utf8转std::string转换过程:先将utf8转双字节Unicode编码,再通过WideCharToMultiByte将宽字符转换为多字节。//----------------------------------------------------------------------- std::string UTF8_To_string(const std::string &am...转载 2018-05-08 20:33:53 · 7400 阅读 · 0 评论 -
UE4 添加自定义的module
添加module的流程 右键.uproject文件 添加新的模块 { “FileVersion”: 3, “EngineAssociation”: “4.16”, “Category”: “”, “Description”: “”, “Modules”: [ { “Name”: “UE4Cook”, “Type”: “Runtime”, “LoadingPhase”: “Default”, “Ad...转载 2018-04-13 16:24:47 · 4100 阅读 · 1 评论 -
error C4273
这个问题是dll导出标识不对,导致的问题。注意修改下dll_import这个名称原创 2018-04-17 09:29:38 · 1100 阅读 · 0 评论 -
LNK2019 FAssetEditorManager
遇到这个问题,在*.build.cs文件中添加下面两行配置即可PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "RHI", "RenderCore", "ShaderCore", "MainFrame",原创 2018-04-16 21:34:08 · 277 阅读 · 0 评论 -
vs2010 编译 X64 Ogitor
编译中还会出现一个问题TerrainPageEditor.cpp mHandler->load(0, true),主要是因为Ogitor 0.5.4主要是针对Ogre1.7版本,Ogre1.8接口有点变化,将其改成mHandler->load()即可一些工程报错找不到OgreZip.h文件,在include上添加上D:\ogre_src_v1-8-1\OgreMain\include即...原创 2018-03-28 11:29:54 · 541 阅读 · 0 评论 -
Error LNK2019 and LNK2001? UE4
1>GenProcMesh.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: unsigned int __cdecl FRHIResource::AddRef(void)const " (__imp_?AddRef@FRHIResource@@QEBAIXZ) refere...转载 2018-04-10 16:34:28 · 2539 阅读 · 1 评论 -
vs2010编译boost1.55.0 x64位
从开始菜单启动Visual Studio 2010的vs2013 x64命令提示工具,然后转到boost根文件夹,运行bootstrap.bat生成x64版的bjam.exe。运行命令: bjam.exe stage --toolset=msvc-10.0 --without-graph --without-graph_parallel --without-math --without-mpi...原创 2018-03-27 17:37:35 · 345 阅读 · 0 评论 -
VS2010编译X64位Qt4.8.6
编译环境:(1) win7/64(2) VS2010(3) qt-everywhere-opensource-src-4.8.6.zip2.1 开始 -> 所有程序 ->Micorsoft Visual Studio 2010->visual studio tools-> Visual Studio x64 win64 command prompt (2010) ...原创 2018-03-27 16:50:32 · 6932 阅读 · 1 评论 -
OGRE的学习资源
本文介绍从哪儿开始学习OGRE(Object-Oriented Graphics Rendering Engine的简称,又叫做OGRE 3D),如何在网上找寻OGRE的学习资源。 首先是wikipedia的介绍:http://en.wikipedia.org/wiki/OGRE 官方网站:http://www.ogre3d.org/官网介绍:http://www.ogre3d.org/about...转载 2018-03-27 14:42:00 · 418 阅读 · 0 评论 -
Visual Studio 2015 升级到Update 3后Unreal无法编译的解决方案
VS 2015升级到Update 3后,Unreal编译时会出现4599错误,原因是VS 2015 RC3中有以下更新:“When using PCH files, mismatched -I include directories to the compiler between -Yc and -Yu compilations will now produce a new warning. C4...转载 2018-04-09 16:21:53 · 575 阅读 · 0 评论 -
UE4 Matinee 倒回重播
rewind on play 这样动画会回到原始位置不断的重新播放动画原创 2018-04-25 17:05:56 · 1203 阅读 · 0 评论 -
UE4 不能显示中文 解决办法
1. 资源浏览器中右键,选择User Interface->font创建字体蓝图:MyFont。2. 双击MyFont,打开字体编辑器,进行修改。在Detail面板,找到Font Cache Type,切换为Offline模式。弹出的对话框直接点yes就行,稍后出现字库选择面板,此处选择字体:仿宋,字号:48号,点击确认。3. 在Detail面板中chars输入需要使用的中文汉字,并勾选Al...转载 2018-04-25 19:50:38 · 10385 阅读 · 0 评论 -
ue4烘焙失败
ue4中经常会遇到烘焙失败的问题,有的显而易见,有的则不那么容易被发现。这里记录一下工作中遇到的烘焙失败问题,希望在以后遇到类似的问题能作为参考。首先看下ue4官方文档对烘焙的解释内容烘焙虚幻引擎将内容资源存储为在其内部应用的特殊格式,比如贴图数据存储为PNG格式, 或者音频存储为WAV格式。但是,针对不同平台,这些内容需要转换成各种格式, 这是因为该平台使用专有的格式,不支持虚幻引擎使用的存储资...转载 2018-07-12 14:16:58 · 7452 阅读 · 0 评论 -
[UE4C++程序]GameModule与Plugin
当专案建立的时候,引擎会自动产生一个同名的Game Module在Source资料夹底下。我们当然可以将所有撰写的C++类别全部放在这个Module中,可是当专案越来越大,若还是将所有的功能都放在同个Module下,不仅仅会造成管理上的混乱,而且编译时间也会增加。试着想像当我们随便改动一个h档或cpp档的参数就要编译几10分钟的情况?由于UE4在一个Module中的cpp数量到达32个的时候就...转载 2018-07-17 11:31:22 · 4018 阅读 · 0 评论 -
Unreal Engine 4 C++ 创建对象的几种方法
Unreal Engine4 C++ 创建对象的几种方法好记性不如烂笔头啊,还是记录一下!1.创建Actor对象创建Actor对象,需要使用UWorld::SpawnActor()接口,如下所示:/* <CreateObjectDemo> * 创建AActor派生类对象不要用NewObject或者new,而要用UWorld::SpawnActor() */ UWorld* Wo...转载 2018-07-16 11:05:52 · 8481 阅读 · 0 评论 -
UE4链接第三方库(lib和dll)
摘要:写这个文章主要是被UE官方的wiki和answerhub误导了很久,这本来是一个很常见和基本的问题,但是无论是官方的wiki或者是论坛上的提问都十分散乱并且充斥各种错误,因此记录下这个在开发中时常遇到的问题。在开发中经常遇到的问题就是加入某第三方库的支持,这样的第三方库往往属于无源码,而且可能是静态lib或者是动态dll甚至两者皆有。UE4的编译管理用的是自己的UBT(unreal bina...转载 2018-06-20 13:46:58 · 3766 阅读 · 0 评论 -
UE4 插件配置文件参数意义
插件示例{"FileVersion" : 3,"FriendlyName" : "NDI Media Player","Version" : 3,"VersionName" : "3.0","CreatedBy" : "Headcrash Industries LLC","CreatedByURL" : "https:/转载 2018-06-20 13:43:41 · 1334 阅读 · 0 评论 -
UE4 插件各细节记录
补充:20170902:插件打包的时候一般只会打包插件目录下的这些目录:所以像下面这个目录中的SaveData就不会一起打包,需要手动移动(不合理).所以放到Content下面比较好,保存本地数据也最好放到Content下面。版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35760525/article/details/76110978文章...转载 2018-06-20 13:36:28 · 780 阅读 · 0 评论 -
UE4 Plugins插件分享
嘿,基佬你掉的插件! VictoryBPLibrary --- 由活跃于 UE4 社区的某基佬 Rama 实现的的超便捷类库插件,封装了大量的公共底层类库(如从Disk硬盘中载入JPG图片/模拟Input事件等) https://github.com/EverNewJoy/VictoryPlugin VRUMGPlugin---- 对3D Widget 的VR 扩展(用于实现VR HMD的UMG ...转载 2018-06-20 13:25:55 · 2840 阅读 · 1 评论 -
电脑显卡4种接口类型:VGA、DVI、HDMI、DP
电脑显卡全称显示接口卡(Video card,Graphics card),又称为显示适配器(Video adapter),显示器配置卡简称为显卡,是个人电脑最基本组成部分之一。对于显卡接口类型,主要包括VGA、dvi/HDMI、dp这四种比较常见的接口,当然还有其他的。 VGA接口是最常见,也就是我们通常的电脑显示器连接主机的那种,VGA接口是一种D型接口,上面共有15针,分成三排,每...转载 2018-06-19 15:35:30 · 135242 阅读 · 1 评论 -
UE4入门-常见的宏-UCLASS
UCLASS 宏为 UObject 提供一个对 UCLASS 的引用,描述其基于虚幻引擎的类型。每个 UCLASS 保留一个称作“类默认对象(Class Default Object)”的对象,简称 CDO。CDO 本质上是一个默认“模板”对象,由类构建函数生成,之后并未进行修改。UCLASS 和 CDO 均可为特定对象实例恢复,但它们通常为只读。使用 GetClass() 函数即可随时访问对象实...转载 2018-06-26 10:14:57 · 1985 阅读 · 0 评论 -
UE4的编译配置详解
通常我们按照官网文档或者教程,在第一次编译UE4的时候都会让我们选择编译Development Editor。但是你又没有想过除了这个选项之外还有很多选项,他们是干什么的。其实当时太急于想知道他们的含义没有太大必要,因为这些选项是会随着我们之后的开发过程中慢慢领悟的。当我的游戏代码出现问题需要调试的时候,发现查看变量内存值都是???或者乱码,这是因为我们在Development环境下,此时的代码运...转载 2018-06-22 15:02:57 · 3606 阅读 · 0 评论 -
使用UTexture2D进行绘制,运行十几秒后,出现崩溃及其解决方法
遇到一个特别有意思的问题使用Canvas来在屏幕上贴图,其中使用到UTexture2D,如果UTexture2D是从本地硬盘中加载的,运行十几秒中,程序会自动崩溃,见截图。经过反复测试:(1)切换到Wiget来加载纹理,没有用(2)修改纹理大小,没有用后来请教高人,得到解决:(1)UTexture2D变量加上UPROPERTY()(2)创建UTexture2D要放在Render线程解释:(1)加上...原创 2018-04-28 16:29:23 · 1477 阅读 · 0 评论 -
UE4 对象类型Class及内存管理
(1)UE4中的对象在内存中的表示目前大概可分为三类:·A、普通的C++类型 F ClassB、智能指针C、UObject类型的UClass我们逐一说明他们的使用方法和注意事项1、针对普通的C++的class照普通的使用方式即可;UED中或者UE4的底层很多使用这种Class的例子;但UE4会统一的在前加F 比如:上次我们说的负责坐标轴绘制和处理的FWidget类(在UnrealWidget.h中...转载 2018-04-26 21:29:38 · 3535 阅读 · 0 评论 -
关于MFC中如何使用CEF内核
上一篇文章中写道了关于CEF内核基本使用用法,这章我将带领大家讲CEF应用到MFC中,大家都知道libCEF自带的cefclient和cefsimple都是基于win32的Demon,那么在MFC中如何使用cef呢?正如duilib中自带的demon也是基于win32一样,同样的做法我将告诉大家如何在MFC中使用CEF,做法很简单,如果大家看了cefsimiple这个简单的Demon,我们就知道大...转载 2018-05-17 16:33:32 · 2356 阅读 · 0 评论 -
Ogre 1.8.1源代码编译和错误修改
写在一边,最好不要略过的话。 这篇blog是按照编译–>出错–>解决错误–>再编译 的方式写的。 我认为这种逐步改错的过程有助于学习和理解,所以这样写的。 最节约时间的方法,就是先全部看完,解决所有的错误,然后编译,一次成功。一、编译生成Ogre 1.8.1源代码0、我的系统环境操作系统:64位Windows7 编译环境:Visual Studio 2013。 DirectX S...转载 2018-03-19 13:59:41 · 530 阅读 · 0 评论 -
测试WebGL支持的网址
http://webglreport.com/?v=1原创 2017-12-28 15:46:17 · 2299 阅读 · 0 评论 -
OpenGL Transform feedback的使用
https://open.gl/feedbackTransform feedbackUp until now we've always sent vertex data to the graphics processor and only produced drawn pixels in framebuffers in return. What if we want to retr原创 2017-04-18 19:52:19 · 2276 阅读 · 0 评论 -
OpenGL的版本历史和发展
OpenGL®作为业界最为广泛使用的2D和3D图形接口标准,应用在成千上万的各式各样的计算机的程序中。从初期的崭露头角,到与Direct3D激烈竞争,后经历黯淡被Khronos接手又发扬光大,已经历经波折发展了20年。由于过去的黯淡,至今甚至仍有人站在错误的时间角度认为它是落后的——它从未停止它前进的步伐,这篇文章就来简述OpenGL的版本历史和发展。 OpenGL 1.0转载 2017-04-03 21:59:13 · 577 阅读 · 0 评论 -
第一个OpenGL出现无法识别glGenVertexArrays问题
今天尝试写个opengl小程序,发现glGenVertexArray无法识别的问题。那是因为vs2013自带glew的版本过于老了,glGenVertexArray是glew新版本里面的函数。只需要更新glew库既可以了。下载链接: https://sourceforge.net/project/downloading.php?group_id=67586&f原创 2017-04-01 17:13:30 · 4941 阅读 · 1 评论 -
opengl stencil buffer使用
// GlutStencilDemo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include //圆周率宏 #define GL_PI 3.1415f //获取屏幕的宽度 GLint SCREEN_WIDTH = 0;GLint SCREEN_HEIGHT = 0;原创 2017-04-07 16:58:35 · 846 阅读 · 0 评论 -
延迟渲染(OpenGL)原理及其案例
Deferred rendering (or deferred shading) is an interesting and ingenuous technique that, differently from forward rendering (or forward shading), postpones light's computation to the end of the rend转载 2017-03-29 16:48:18 · 1097 阅读 · 0 评论 -
Zspace
Z Space是一款设备,是全新地3D显示屏由加州Infinite Z公司开发。Infinite Z将这项技术称为“虚拟全息3D”技术,允许用户操控一些虚拟物体,就好比他们真正存在。 Infinite Z还为这款显示屏配备了专用笔,它内置传感器,允许在3D空间内跟踪其运动。你可以使用这支笔“抓住”虚拟图像的某个部分,然后再3D空间内运动。例如在医院教学上,我们可以通过这个设备来模转载 2017-01-23 16:49:02 · 3126 阅读 · 0 评论 -
实时仿真软件Sofa的安装(Windows+VS2008)
SOFA(http://www.sofa-framework.org/home)是一个主要面向实时仿真的开源程序框架,更注重医学仿真。它的目的在于帮助研究社区开发新的算法,但是也能够作为有效的原型开发工具。基于先进的软件架构,它允许:(1)通过整合新算法和SOFA中已存在的算法,创建复杂和改进的仿真;(2)修改仿真的大部分参数-变形行为(deformable behavior),表面表示,转载 2017-01-17 19:55:41 · 1282 阅读 · 0 评论