自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 GAMES101个人作业

p0#include<cmath>#include<eigen3/Eigen/Core>#include<eigen3/Eigen/Dense>#include<iostream>Eigen::Vector4f getPoint(Eigen::Vector4f point, float rotate, Eigen::Vector4f transform){ Eigen::Matrix4f rotate_matrix, trans_matr

2021-04-10 22:03:42 314

原创 MMO技能系统设计

文章目录MMO技能系统设计最简单的技能需求技能基本结构MMO技能系统设计技能系统作为一个战斗系统的重要部分,它是游戏战斗的核心体验。那么如何设计一个结构良好的技能系统,能够满足策划的各种合理需求(奇葩需求)。最简单的技能需求一个法师技能,技能开始,法师播放一个动画,在1s后搓出一个火球,火球发出去命中了怪物,对怪物造成100点伤害。这个技能系统可以设计成TimeLine形式,按照时间线来出来。比如技能分为前摇,施法和后摇三个阶段,前摇阶段播放动画,预警等。施法阶段生成召唤物,结算伤害等。后摇阶段可

2020-08-02 16:04:51 1027

原创 一种MMO游戏中伤害结算系统

记录下对伤害系统的理解。伤害系统初版:import randomclass BattleUnit(object): def __init__(self) -> None: super().__init__() self.strength = 1 def calucHurt(self, attacker, skillStreng...

2020-05-30 22:26:51 1322

原创 MMO中的技能系统实现

使用了一套基于蓝图的节点式技能系统。使用了节点图,每个节点内使用时间线。蓝图基本结构基本结构如下:outactivefinishoutoutoutSkillStartPlayAnimatorCylinderSummonSomeThingFinishPlayEffectDamageHPHitBack蓝图节点从入度为0的节点开始执行。节点内的逻辑会触发不同的输出信号输出型号传递给下游的节点...

2020-03-30 00:49:01 777

原创 使用jinja2自动生成代码

使用jinja2自动生成代码编辑器经常需要添加新的变量来给策划配置,程序写好代码后往往会对编辑器进行修改,或者配置进行修改,可以使用jinja2自动生成代码和配置文件来减少工作量。安装jinja2如果使用pycharm, 直接File-Settings-Project:xxx-Project Interpreter安装Jinja2即可。简单的例子import sysreload(s...

2020-02-04 15:12:14 1482

原创 在圆环内随机生成点

这里写自定义目录标题在圆内随机生成点生成CDF(累计分布函数)交换x,y使用均匀分布函数带入python代码策划给了个需求,给定一个圆环,内径r1,外径r2,要在圆环内随机产生点,在这些点位置上生成法术场。那么如何在圆环内随机产生这些点呢?在圆内随机生成点首先考虑在圆内生成随机点。最简单的方法是在一个R*R的正方形内随机选取一个点,判断随机生成的点是否在圆内即可。python代码如下:i...

2020-01-20 23:49:20 5661 6

原创 渲染管线理解2

1 视锥视锥把空间限制在一个6面的突面体,在这个空间的物体会被渲染,下图是一个截断的金字塔。 视图窗口大小,视角,视图距离。知道任意2个计算第三个变量。 视图窗口大小固定,调整视角(fov),视角越大,视图距离(focus length)越小。 视角固定,调整视图距离,视图距离越大,视图窗口越大。视锥通常有一个近平面,近平面距离一般不为0,因为之后做除法会有问题,在投影矩阵中讲。 远平面是可

2019-10-21 22:48:18 314

原创 vs2015编译运行quake3

文章目录环境搭建参考闲来无事,想看看quake3的源码,就当是学习一下。我觉得即使是上世纪的代码,还是可以从代码里学习到些东西的,因为核心的思想一直没有变过。环境搭建git clone: https://github.com/id-Software/Quake-III-Arena下载游戏demo:安装Q3ADemo.exe到C:\Q3Ademo安装q3pointrelease_132...

2019-08-25 22:16:19 626

原创 MVCS框架

文章目录

2019-08-04 15:17:28 3260 1

原创 Python的类变量引用

文章目录记一下对python变量的理解。查看如下代码class TestObj(object): passclass Child(object): properties = {} move_duration = TestObj() test = move_duration def __init__(self): super(Child, self).__init__()...

2019-07-28 11:32:21 3021

原创 网络同步技术理解

文章目录帧同步状态同步基本网络差值预测延迟补偿未完待写参考记一下自己对网络同步的理解。网络同步主要有二种,帧同步和状态同步。帧同步帧锁定同步算法。具体不介绍。大致意思是客户端和客户端每一帧发送“cmd”,客户端收到所有的输入后,根据这些cmd模拟一帧。因此网络延迟与网络状况最不好的玩家有关。状态同步主要参考https://developer.valvesoftware.com/wik...

2019-07-07 23:01:17 3490

原创 游戏编程模式随笔

文章目录重访设计模式命令模式享元模式观察者模式原型模式单例模式状态模式==分层状态机====下推状态机==序列模式双缓冲何时使用游戏循环简单更新模式固定更新模式问题追逐时间最终方案行为模式字节码沙箱模式何时使用类型对象何时使用解耦模式组件模式事件队列如何避免时间环路服务器定位何时使用时序耦合返回引用而不是指针依赖注入服务不能定位怎么办何时使用优化模式数据局部性脏模式对象池模式何时使用缺点union...

2019-05-07 22:29:39 282

原创 Unity3D光照

文章目录草变暗问题总结为什么有GIGI的一些限制光照设置LOD重要参数介绍Realtime LightingMixed Lighting实时光照混合光照Baked IndirectShadowmask modeDistance ShadowmaskSubtractiveBaked light参考草变暗问题总结1.一开始认为是光照配置的问题:terrain取消static,light为real...

2019-04-29 14:36:35 1376

原创 游戏框架使用ECS有什么好处

文章目录前几天面试,看到公司的开发的FPS端游采用了ECS框架进行开发。问为什么用ECS框架?在最近的游戏框架中ECS是比较流行,使用它到底有什么好处?我当时的答复是这样的:E表示Entity,C表示Component,纯数据,S表示System,纯方法。(解释什么是ECS)entity无逻辑,组合大于继承的思想。(设计思想)优点:1.Component是纯数据, 逻辑全在System...

2019-04-27 20:06:45 5584 2

原创 Clean Code总结

文章目录为什么看这本书?整洁代码有意义的命名函数注释格式对象和数据结构错误处理10类系统启发与味道注释环境函数一般性问题java名称测试总结为什么看这本书?如这本书的名字意思,写出整洁的代码。整洁的代码,对以后的自己维护之前写的代码更加方便。代码混乱会导致难以维护,bug越修越多。个人认为整洁的代码,就是别人没有改进的余地。具体来说就是:能够通过所有的测试没有重复代码体现系统中...

2019-04-20 17:53:16 3791

原创 整数规划图去环问题

文章目录最优化问题寻路样例线性规划法最优化问题最优化问题可以通过整数规划来求解。寻路问题定义给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、t,以及V的子集V’,寻找从s到t的不成环有向路径P,使得P经过V’中所有的顶点(对经过V’中节点的顺序不做要求)。若不存在这样的有向路径P,则输出无解,程序运行时间越短,则视为结果越优;若...

2019-04-14 16:44:42 772

原创 贪心算法

贪心算法求解最优化问题的算法通常需要经过一系列步骤,在每个步骤都面临多种选择。比如使用动态规划。动态规划算法的一般步骤有如下:刻画一个最优解的结构特征递归地定义最优解的值计算最优解的值利用计算出的信息构造一个最优解贪心算法并并不保证得到最优解。但是对于很多问题可以得到最优解。常见的贪心算法的应用有Huffman编码,最小生成树算法,单源最短路径的Dijkstra算法。活动选择...

2019-04-14 15:57:15 1889

原创 away3D右手系转左手系总结

文章目录导入数据旋转知识简单介绍对顶点的z轴取负导入矩阵改变away3D采用的是左手坐标系。如果要把away3D转成右手坐标系,现在想到的需要修改的地方如下:导入数据由于3DMax是使用右手坐标系,由于还是右手系,所以对导入的数据不需要改变。但是原先导入到away3D的顶点数据需要把右手坐标转成左手坐标。转换有如下小节。旋转知识简单介绍XY平面绕Z轴$$$$对顶点的z轴取负导入...

2019-03-16 22:02:40 758

原创 Unity IK设置目标的旋转与实际不一致

Unity 设置目标IK的position和rotation使用Unity官方自带的IK例子,资源地址下载,IK的目标rotation会有问题。以左手为例子, IK代码using UnityEngine;using System;using System.Collections;[RequireComponent(typeof(Animator))]public cla...

2018-06-23 16:41:29 1929

原创 人物换装和捏脸

1 换装目前的换装方案主要有:材质换装,比如换贴图和shader挂点,在角色上制作挂点,然后挂上武器飘带等更改蒙皮(Unity中为Skin Mesh Render),只要所有的蒙皮基于同一套骨骼开发,就支持换装。在换装的时候SkinMeshRender重新复制bone信息就可以完成蒙皮的绑定。通过合并Mesh减少Drawcall。uma系统。DNA系统(设置骨骼缩放系数和长度)。换装实现实

2018-03-04 14:06:22 18926 1

原创 3ds Max导出OBJ的mtl贴图路径不正确

之前流程是写了一个3DSMAX插件把游戏的场景直接导出为自己定义的格式的文件,包含了顶点数据,三角形数据,贴图数据等。现在把插件从3DMAX上分离出来,先通过3DMAX导出OBJ,然后再把OBJ导出为自定义的格式。3DSMax导出的材质mtl文件漫反射贴图路径不正确一开始以为是一个Standardmaterial对应漫反射的Map名字一样但是贴图路径不一样导致了OBJ导出出错。写了一个把同一个Map

2017-12-10 15:17:09 8368

原创 游戏裁剪

裁剪能够极大提高渲染效率。PVS对于静态场景,我们可以先把场景立方体分割成网格(grid),即n*m*h个grid,先计算好在每个grid上所有角度可见的mesh(剔除物体完全被前面物体挡住的mesh),记录所有可见的mesh编号,如果相机在这个位置上,只要把这些可见的mesh进行下一步裁剪(比如视锥裁剪,去除不再视锥内的物体)八叉树(Octree)在进入视锥裁剪前,可以把空间进行分割。比如把空间分

2017-11-03 22:28:29 481

原创 渲染管线理解4

齐次裁剪通过透视投影得到的点[x齐次,y齐次,z齐次,w][x_{齐次},y_{齐次},z_{齐次},w]形成的三角形片元,裁剪是在齐次}坐标中做裁剪的,即它是一个四维空间的裁剪。而不是经过透视除法后的立方体空间[x齐次/w,y齐次/w,z齐次/w,1][x_{齐次}/w,y_{齐次}/w,z_{齐次}/w,1]。 假设view空间中点P0(x,y,z)P_0(x,y,z)投影后齐次坐标P1(x′

2017-10-27 23:42:04 414

原创 渲染管线理解3

裁剪在规格化设备坐标中,只有在x∈[-1,1],y∈[-1,1],z∈[-1,1]内的三角形才会被渲染。即在视图坐标中在视锥内的三角形会被渲染。一般平面裁剪假设是直线裁剪,PR会被裁剪,平面为ax+by+cz+d=0。法向量指向内侧(PQ方向)。即ax+by+cz+d>0的点在内侧。 存在一个t使得平面上一点 R=P+t(Q-P),记v=Q-P 0=a(Px+tvx)+b(Py+tvy)+c(

2017-10-27 23:13:09 625

原创 渲染管线理解1

渲染管线整个流程如下: 首先是顶点输入,通过模型变换,相机变换和投影变换变换到一个标准坐标系中ndc(x∈[−1,1]x\in[-1,1],y∈[−1,1]y\in[-1,1],z∈[−1,1]z\in[-1,1](或者[0,1])),但是光有顶点数据是不够的,需要把它组装成点或者线或者三角形片元。然后把数据从ndc坐标转换到屏幕坐标形成片元,最后插值属性(比如颜色,深度值等)。模型变换模型变

2017-10-27 22:00:08 377

Inverse Kinematics Example

https://blog.csdn.net/a352614834/article/details/80784117

2018-07-04

MFC_OPENCV_VIBE_SUBSENSE

MFC_OPENCV_VIBE_SUBSENSE

2015-10-27

visual assist x 10.9.2068破解补丁+安装包

visual assist x 10.9.2068破解补丁+安装包。 0. Put this Patch into VAX installation folder; 1. Patch file "VA_X.dll"; 2. Reg with the following key Enjoy it !

2015-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除