绑骨 首先我们手里要准备好模型文件,mixamo支持FBX/OBJ/ZIP压缩包,这里以obj文件为例。 我们手中的obj文件一般由贴图文件、obj文件和mtl文件组成(素材来源于网络): 我们将这些文件打包成zip,然后去mixamo网站:https://www.mixamo.com/ 将z
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。 一次面试 有一次领导让我参加面试,被面的岗位是技术总监。 不知道为什么,每次拉上我的时候,我都在想为什么要叫我,我能帮上什么忙? 结果带我一起面试的同事说,你只负责技术相关的内
话题 我们知道在.NET Framework中可以嵌入运行Web APi,那么在.NET Core(.NET 6+称之为.NET)中如何内嵌运行Web Api呢,在实际项目中这种场景非常常见,那么我们本节以.NET 6.0作为演示示例一起来瞅瞅 内嵌运行.NET Core Web APi 接下来我
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。 为了了解ASP.NET Core Web API的版本控制,我们必须了解API中的一些版本控制策略,然后将API版本控制与OpenAPI集成,以便我们可以在Swagger UI
多人联机之研究 原文链接 .  虽说多人联机技术已经存在很多年,众多上古游戏就已经支持多人联机,但随着业务复杂度提高,多人联机仍然有许多挖掘空间。从业很多年,参与的项目清一色都是状态同步,相比帧同步,状态同步在同步这件事上并没有多少技术难点,因为实现简单,适用场景众多,很多游戏会采用状态同步,但它
  在光栅阶段,除了要通过片断着色程序(OpenGL叫法)着色外,还需要进行裁剪测试、Alpha测试、模板测试、深度测试、混合操作,这些操作在OpenGL、D3D、Vulkan等操作顺序不尽相同,在软件渲染器,片断着色程序是渲染管线的瓶颈所在,因此这里的光栅化之后流程如下,这里的橙色部分任意一条执
概述 在异步操作中,常常要使用回调。但是,回调的嵌套常常会导致逻辑混乱,一步错步步错,难以维护。在Lua中,可以使用协程进行优化。 问题分析 模拟一个回合制游戏攻击过程 local function PlayAnim(anim, cb) print("开始播放 " .. anim)
概述 lua的__index元方法本身没有提供类似C++虚函数机制,调用的父类方法调用虚函数可能会出现问题。 问题分析 分析这段代码和输出 local Gun = {} -- 示例,实际应用还要考虑构造,虚表等情况 function LuaClass(Class, Parent) setm
概述 动态格子算法常用于弹幕游戏的碰撞检测优化,可减少遍历开销。 这是我之前做的小游戏就用到了此算法,当后期满屏子弹时,优化效果非常明显。 思路 每个点只与当前所处的格子的点检测碰撞 当大格子内的点>格子内点限制 && 大格子的深度 < 最大深度则大格子分裂出四个小格
什么是委托? 我们先来看看官方的解释: 委托 是一种泛型但类型安全的方式,可在C++对象上调用成员函数。可使用委托动态绑定到任意对象的成员函数,之后在该对象上调用函数,即使调用程序不知对象类型也可进行操作。复制委托对象很安全。你也可以利用值传递委托,但这样操作需要在堆上分配内存,因此通常并不推荐。
  在第2.5节中,通过光线追踪的方式渲染了一个三角形,但由于速度太慢而不能直接用于实时渲染。主流方式通过光栅化的方式将图元显示到屏幕上。   在Windows上,屏幕空间坐标以左上角为(0,0)点,x轴正方向朝右,y轴正方向朝下。首先我们想要在屏幕上绘制一条线段,比较著名的时Bresenham绘
我们先来看看什么是接口? 官方的定义是: 接口类有助于确保一组(可能)不相关的类实现一组通用函数。在某些游戏功能可能被大量复杂而不同的类共享的情况下,这非常有用。例如,某个游戏可能有这样一个系统,依靠该系统输入一个触发器体可以激活陷阱、警告敌人或向玩家奖励点数,这可以通过针对陷阱、敌人和点数奖励器
本文只解析一些UE4特有的一些数据类型,一些常用的类型如布尔(Bool),整型(Int)等不再赘述。   UE4的基本数据类型有以下几种:       命名(FName): 在C++中,命名被写成FName 使用时需添加头文件: #include "UObject/NameTypes.h"   我
首先说明一下 关于UE4中一些对象的名字前缀吧,虽然这个不是这一关于Actor的内容,但是后续都要用到,所以就先说明白。 关于Class类前缀: 派生自 Actor 的类前缀为 A,比如 AController。 派生自 Object 的类前缀为 U,比如 UComponent。 派生自 SWid
1.获取和设置父对象 子对象在世界坐标系下的位置是加法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置 子对象在世界坐标系下的缩放是乘法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置 现有: Lesson9脚本中的代码: using System.Coll
本文就什么是UFunction?UFunction怎么用?做一个简单的总结 UFUNCTION和UPROPERTY一样都为UE4的反射系统服务,要知道什么是反射系统可以看上一个博客:UE4 C++学习 浅析UProperty属性说明符 - CatSevenMillion - 博客园 (cnblog
本文就 UProperty是什么?以及UProperty怎么用?做一个简单的总结。 什么是UPROPERTY? 首先看下官方的解释:     感觉还是比较模糊没看懂有什么用,我们接着往下看   要知道UPROPERTY有什么用,我们首先要知道反射(Refection)这个机制。这个机制在Java
1. 利用UsePass可以帮助投影pass合批。相同网格、不同材质、不同shader,只要这些shader使用UsePass引用了同一个pass,并且材质的属性和宏都一样,那么这些物体的投影pass就可以合批(包括GPU Instancing和SRP Batcher)。注:这个投影pass的特殊