UE5 Castaway项目记录
描述:生存类游戏 一、项目环境搭建 选择ThirdPerson模板创建 删除无用背景地形等,保留Light Source, PostProcessVolume, SkyLight, Fog, ReflectionCapture, NetworkPlayerStart, SkySphereBlueprint, ThirdPersonCharactor. 安装Landmass和water插件 设置默认启动场景 设置移动平台的SDK等[可选] 插曲:如果发现MobileStarterContent找不到,这里从根目录下复制一下即可 二、地编 快捷键推荐: G隐藏Gizmos Shift反向编辑地形 打开Landscape,创建一个地形,进入Sculpt阶段。 材质:四层,Sand, Rock, Grass, Auto Material Function 制作Landscape,通过Landscape添加多个Layer(最终对应实际意义上的笔刷) 添加+Water ocean 三、导入自己的模型 Mixamo处下载模型 fbx,导入 双击打开后,修复可能出现的材质问题 制...
GAMES101作业笔记
一、作业1 要求: 每次作业的评分,分为基础与提高两部分,即在作业批改时会给大家反馈两 个成绩。由于作业不是强制要求必须提交,所以在完成全部作业后,我们会统计 所有的基础分数。若基础分数及格则视为通过课程,反之视为不通过。 • [5 分] 正确构建模型矩阵。 • [5 分] 正确构建透视投影矩阵。 • [10 分] 你的代码可以在现有框架下正确运行,并能看到变换后的三角形。 • [10 分] 当按A 键与D 键时,三角形能正确旋转。或者正确使用命令行得 到旋转结果图像。 • [提高项5 分] 在main.cpp 中构造一个函数,该函数的作用是得到绕任意 过原点的轴的旋转变换矩阵。 Eigen::Matrix4f get_rotation(Vector3f axis, float angle) //实现:Eigen::Matrix4f get_model_matrix(Axis targetAxis, float rotation_angle){ Eigen::Matrix4f model = Eigen::Matrix4f::Identity(); floa...
安装Opencv
一、Windows下安装opencv Eigen3的安装 从官网下载zip 官网下载 解压后,用cmake,选择x64,生成到任意的build路径即可,注意最终生成的是在INSTALL的配置项下 生成后的项目,一定要用管理员权限打开!!! 选择INSTALL项目,直接build即可 使用,在项目的Config的C++ -> General-> Additional Include Directories下添加安装目录下的include目录 Opencv的安装 下载MSVC的版本,安装到目录A 参考文章
最新Addressable资源打包与加载框架
一、Addressable介绍 Addressable是Unity最新推出且正式发布的资源管理系统,内含引用计数管理,快速资源热更,资源性能查看器,资源冗余工具等等,据官方的说法,这就像当初AssetBundle取代Resources一样,Addressable就是为了取代直接使用AssetBundle而生。 二、Addressable下载更新 内容均在ResDownloadComponent中。 1. 打包资源 手动: 使用 Build ->New Build -> Default Build Script。 也可用打包脚本,AddressableAssetSettings.CleanPlayerContent(); AddressableAssetSettings.BuildPlayerContent(); 生成的资源将在Library->com.unityengine.addressable下 建议本机初次导项目后,先执行一次打包资源,再使用Use Existing Build的Play Mode Script方式,以bundle加载...
Addressable打包流程
安卓打包流程 1. [Python] 添加配置 1.添加项目配置 vms/config/config.txt 2.新建一个config文件到 vms/config/platform_{project}_{branch/version}.txt 2的文件 将作为打包后项目带出去的platform.txt的模板 platform.txt在打包流程中 判断 branch是否以t开头,是则用1,否则用第一个字符设置为platformId ------------------------------------------------- File Name: ModifyJsonFileHandler Author : hujunhao date: 2018/3/16 16:03 Description : 修改platform.txt文件-------------------------------------------------"""class ModifyJsonFileHandle...
Addressable 研究
什么是Addressable? Addressable的实例函数 以label形式加载 模式选择 Data Builders:在Addressable窗口菜单中能够选择的在编辑器下的数据构建模式,一般来说附带的这几个已经可以满足大部分要求,你也可以新建适合自己项目的模式。 Fast Mode:加载资源不通过资源包,直接使用AssetDatabase加载。 Virtual Mode:会形成AssetBundle布局,但是不需要打包,加载资源通过ResourcesManager加载,并且可以在RM Profiler中查看包体布局。 Packed Mode:需要额外步骤打包AssetBundle,运行时资源也是在AssetBundle中进行加载。 迁移指南 使用注意项: 1.每调用一次Addressables.Instantiate方法,会将该Asset的引用计数加一;而Addressables.ReleaseInstance会减少这个引用计数。如果你使用Object.Destroy释放了它,则原始资源会一直存在于内存中。所以应当避免使用Object.Destroy方法了~...
Coursera算法课笔记1
UnionFind 描述 Dynamic Connectivity 动态连通性问题 1.给定任意N数据集 2.判断p到q是否连通 假定的前提: p连q,则q也连p。 算法1: Quick Find -快速查找 数据结构 数组,将每个元素存储一个id[]下 算法思路 将相连通的所有元素存储为一个相同的ID 分析 算法2: Quick Union -快速交集 数据结构 与Quick Find一样,采取 数组 算法思路 1.每位数仅记录其根结点 2.Union函数调用时,设第一个数为p,第二数为q。 将p的root赋值为q的root,即q的root为p的root的新root 分析: 算法优化一: 使用权重 永远只将小树往大树挂。这样不会产生过深的树层次! 实现:额外定义一个数组,存储树的权重,在添加时判定,只将权重小的往权重大的加 算法优化二: 压缩 Union函数调用时,对于多于一层的树,全部将真正的root改为当前的上级 C++实例、例子: ////////////////// Quick Find ////////////...
贝塞尔曲线
转自: https://www.zhihu.com/question/29565629 贝塞尔曲线的历史:贝塞尔曲线于 1962 年,由法国工程师皮埃尔·贝济埃(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计,贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线. https://www.jasondavies.com/animated-bezier/ 如果仔细观察这些曲线,你会立即注意到: 控制点不总是在曲线上这是非常正常的,稍后我们将看到曲线是如何构建的。 曲线的阶次等于控制点的数量减一。 对于两个点我们能得到一条线性曲线(直线),三个点 — 一条二阶曲线,四个点 — 一条三阶曲线。 曲线总是在控制点的凸包内部: 实现: using System.Collections;using System.Collections.Generic;using UnityEngine;public class BezierTest : MonoBehaviour{ public ...
C++ 复习1
一、 关于无符号与有符号数 无符号不能为负数 循环如果使用无符号计数,以>=为条件将导致死循环 二、 C++ 11的初始化方法 int a{0}; 三、 extern的使用 对于希望分离成多个文件独立编译的变量,使用extern公开出去 声明一个变量并extern出去,但注意不要声明+定义一起,否则失去了extern作用了 extern变更的声明可以在多个文件,但定义只能在一个文件 四、复合类型:引用与指针 引用类型一旦初始化就与初始对象绑定在一起,不可以更换绑定。且必须在定义时赋值。 引用类型不可以与值绑定 指针可以不在声明时初始化,指针是一个对象 指针赋值之间类型必须相同 C++ 11的标准提供了nullptr为指针初始化为空。 引用cstdlib标准库中,还可以用NULL为指针初始化 任何非0的指针都为true. void*指针,可用于存放任意对象的地址,但不能直接操作指针所指的对象,可理解为操作内存空间 五、理解复合类型 对于一个变量,要理解其类型,最简单的办法从右向左阅读变量的定义,离变量名最近的对变量有最直接的影响。 int ...
计算机图形学编程笔记2
一、光线追踪 原理 起因: 光珊化不能很好的处理全局的效果, 如软阴影,较光滑的金属表面(Glossy)反射问题,间接光照(光线多次弹射才进入人眼) 光追的特点:非常慢 光线的假定 光沿直线传播(并不正确) 光与光不会碰撞(并不正确) 光线一定从光源出发最后到达眼睛(reciprocity光线可逆性性质,实际物理上不可逆性) 光追:实则是从相机出发经过不断反射折射到光源,由相机出发,此光线沿着直线,遇到阻挡的物体时点(只记录最近的交点),再判定此点到光线是否是在阴影,不在阴影,这时再进行shading。 以上其实只考虑了光线弹射一次的情况,那考虑多次弹射时,这时引入一种光追算法: Whitted-Style Ray Tracing Recursive Whitted-Style Ray Tracing (1979年) 对于每个光线产生的交点,都被计算回到最终的显示。 如中间产生的折射也算在内。 Shadow ray: 表示最终与光线连接需要判断是否要显示的光线 求光线射出去的交点: Ray Equation:对于光线上的点,都可以表示为以下等式: 光线与求交点 对于...










