动画物理
文章平均质量分 69
xoyojank
来如流水兮逝如风,不知何处来兮何所终
展开
-
二维离散付立叶变换及其性质
一、概述 离散付立叶变换(Discrete Fourier Transform── 简称DFT)在数字信号处理和数字图像处理中应用十分广泛。它建立了离散时域和离散之间的联系。如果直接应用卷积和相关运算在时域中处理,计算量将随着取样点数 数学 的平方而增加,这使计算机的计算量大,很费时,很难达到实时处理的要求。因此,一般可采用 DFT方法,将输入的数字信号首先进行 DFT变换,在频转载 2007-04-22 11:13:00 · 11274 阅读 · 0 评论 -
Bullet中创建中心不在原点的碰撞体
从Havok换到Bullet后, 最大的不适应就是各种btCollisionShape都是以原创 2014-05-17 20:55:25 · 3670 阅读 · 0 评论 -
GDC2016: Animating With Math
Unity和UE4的Material Editor中都有类似VertexOffset的功能, 可以在VertexShader中驱动顶点, 做一些程序控制的顶点动画 用顶点动画的原因: 骨架是共享的, 骨骼动画是共享的等, 同时节省了骨骼数和动画师的工作量 使用cos三角函数+Time是基本的技巧, 配合顶点色控制每个部分的权重 材质参数暴露出来能够使用程序逻辑进行动态控制 顶原创 2016-04-21 23:15:21 · 7513 阅读 · 0 评论 -
GDC2015: Networking for Physics Programmers
物理模拟的问题物理模拟需要是确定性的吗?应该是发送物理对象的状态还是碰撞事件或者受力?使用UCP还是TCP发送数据?使用C/S还是P2P?需要一个DS吗?怎么隐藏玩家行为的延迟?怎么防止作弊?带宽同步策略帧同步只同步输入, 不同步状态优点: 带宽需求很低, 跟对象多少无关难点: 需要保证物理模拟是确定性的, 而浮点数很难保证确定性 随机数操作系统编译器硬件缺点: 需原创 2016-06-08 09:55:43 · 3105 阅读 · 0 评论 -
VR下双手与物体的交互
背景Oculus的Touch, HTC Vive的Controller, PSVR的PS Move, 三家一线VR硬件都在给大家传达一个信息: VR下能够模拟双手的体感控制器是一个趋势. 在VR游戏中, 一旦有了双手, 这就意味着不光能看了…..如果说之前的VR游戏只是输出方式(显示器)发生了变化, 那现在有了个双手, 输入方式也发生了变化, 这对游戏来说是一个革命性的改变, 是完全可以改变用户体验原创 2016-08-09 23:45:02 · 5683 阅读 · 1 评论 -
VR中对带有约束的物理对象的交互
在VR游戏中, 使用双手(控制器)直接对虚拟世界中的对象进行交互, 已经成为一种”标准化”的设计, 一切看起来能够用手去交互的物体, 都需要附合物理规则. 简单的物理对象, 通常只是一个刚体(Rigidbody), 这种只需要模拟重力和惯性运动就可以了, 最多再调节一下摩擦力, 弹性, 空气阻力等, 所以在技术上借助物理引擎的帮助是比较简单的. 稍微复杂一点儿的物理对象, 是带有约束(Co原创 2016-12-07 23:12:44 · 3712 阅读 · 0 评论 -
Mesh的平面切割算法
看了一下UKismetProceduralMeshLibrary::SliceProceduralMesh的代码实现, 发现也没想像中的复杂, 只要把网格/三角形/顶点/边的关系理清楚, 逐步分解问题就可以把复杂问题给简化成一个个的小问题, 然后各个击破. 把注释和代码的步骤整理了一下, 变成了人话:把切割面从World转换到Local空间对于每个Section(SubMesh), 计算包围盒原创 2017-01-05 00:23:19 · 13388 阅读 · 2 评论 -
UE4中程序驱动的LookAt动画
很多游戏中都有, 就是角色转头+眼镜转动盯着一个目标看, 通常是盯着镜头看用的比较多 UE4里实现这个功能很容易, 直接在AnimGraph里使用LookAt结点就可以了 4个LookAt分别控制脖子, 头, 左眼, 右眼的朝向, 脖子和头的角度比眼睛小, 转动速度也比眼睛慢. 实际项目中用的时候, 有个需求是NPC播放一段动画师做的全身动画后, 再盯住玩家, 然后再播, 再盯, 如此循环.原创 2017-05-16 00:29:23 · 7286 阅读 · 4 评论 -
GDC2017: 《Lone Echo》中的VR动画
去年在Oculus Connect 3体验过《Lone Echo》的多人竞技玩法, 品质很高, 算是VR游戏中的一线大作了. 正好今年GDC上他们分享了一些关于VR中角色动画的一些经验, 还是比较有借鉴意义的, 毕竟Avatar做了全身的VR游戏少之又少. 这是一个太空失重背景下的游戏, 可以用手抓住环境物体或者推墙进行反向的漂浮. 一开始他们是通过手部射线了检测是不是抓住静态几何体, 通过让身原创 2017-06-21 21:30:43 · 5663 阅读 · 0 评论 -
Morph动画的转移
以往做游戏换装什么的, 大多是使用骨骼来调整体型/脸型什么的, 这算是比较成熟的技术了. 最近的项目里尝试了使用MorphTarget(BlendShape)来做个事情, 好处是能够做到逐顶点的调节, 可以做出比较细腻的效果, 但是与此同时来带了制作成本的上升. 不过看目前AAA级的游戏这种做法已经比较普遍了, 所以还有必要把制作流程理一下. 常见的问题: 比如我们人的身体通过Morph做了胖瘦原创 2017-06-27 20:29:35 · 12876 阅读 · 0 评论 -
《Honey Select》捏人剖析
破CSDN的文章编辑器太难用了, 传个图要累死. 以后在知乎写完再转过来: https://zhuanlan.zhihu.com/p/28471808关于游戏中的捏人系统, 很少有资料提到怎么做, 印象中只有《天涯明月刀》分享过. 前段时间关注了个VR资源分享的公众号, 经常推送HS的捏人作品, 所以才引发了我的好奇心, 决定一探究竟.HS之所以能够有这么强的定制能力, 是因为第三方MOD工具的存...原创 2017-08-12 01:29:48 · 102102 阅读 · 11 评论 -
VR中物理的网络同步
参考: Networked Physics in Virtual Reality: Networking a stack of cubes with Unity and PhysX之前做VR游戏时也是尝试了几种物理的同步方案, 最近看到Oculus Blog上也分享了一些, 经验, 做个笔记.多人VR游戏中的物理交互, 有这么几个要求:玩家对物体交互不能有延迟物体能静止后稳定, 不...原创 2018-03-09 10:47:35 · 3436 阅读 · 0 评论 -
有向无环图的自动布局算法
最近业余在做一个基于结点的编辑工具玩, 遇到一个问题, 就是结点和连线多了, 经常会出现重叠交叉的问题, 导致图看不清楚:要是这个样子, 还不如不用图清楚呢, 所心就需要找一个方法来进行自动布局, 理想情况是这样的(手动整理结果):当然, 手动整理的话, 每个人弄出来的结果都不一样. 自动的算法肯定没有100%完美的, 但是总是能方便不少的在google了一会儿后, 发现这种结点-线组成的图是一有原创 2012-12-02 23:14:48 · 19341 阅读 · 10 评论 -
使用STL vector 作为XNAMath快速灵活的SIMD数据容器
原文链接: http://www.qsoftz.com/mirza/?p=59简介这篇文章是关于如何将传统的STL vector作为XNAMath类型容器使用. 因为SSE/SSE2指令集要求数据必须对齐到16字节的边界, 所以vector的分配器必须替换成一个可以对齐的内存分配器(x86架构). 本文适用于想在代码中引入新鲜空气的x86 Windows开发者, 你将会看到如何把强大的XNAMat翻译 2013-12-29 18:47:29 · 3068 阅读 · 0 评论 -
近期工作与学习技术总结
色彩表现力这个是一些小引擎容易忽略的地方. 可能引擎各种功能都有, 但是为什么做出来的东西不够出彩呢? 除去美术自身的原因, 程序也要好好与美术进行沟通. 很多时候美术有一些很不错的想法, 确总是做不出来, 这个就是程序的责任了. 以WOW的技术为一个起始点, 我想可以从这些方面原创 2011-10-11 23:40:09 · 3469 阅读 · 5 评论 -
PhysX学习笔记(1): 基础
简单形状l NxBound3: AABBl NxBox: OBBl NxCapsule: 胶囊(线段+距离)l NxPlanel NxRayl NxSegment: 线段l NxSphere SDK 初始化:跟D3D差不多, 直接NxCreatePhysicsSDK就OK. 释放时不能delete, 因为那是DLL内部的对象, 只能releas原创 2009-07-22 00:04:00 · 4385 阅读 · 1 评论 -
PhysX学习笔记(3): 动力学(2) Actor
Actor Actor扮演两种角色: 静态对象, 动态刚体(也叫body). Actor包含shape. Shape之间相交会触发很多行为. Static actor主要作用是碰撞检测, 所以一般都会赋于对应的shapeDynamic actor可能只表示一个抽象的连接点, 所以不需要对应一个shape 创建actor:NxActorDesc actorDesc;a原创 2009-07-23 23:28:00 · 5092 阅读 · 0 评论 -
PhysX学习笔记(2): 动力学(1)
场景(Scene):物理模拟发生的场所, 包含了actor, joint, effector. 跟图形引擎里的Scene差不多, 可以有多个实例存在, 互不干涉.场景没有特别的大小限制. 功能有重力, 射线拣取, 开关硬拼检测等. 模拟时序(Timing):物理模拟导致物体的一些属性随着时间进行变化, 如位置, 速度等.模拟每经过一次时间步进进行一次, 通常要与渲染帧数进行原创 2009-07-22 22:50:00 · 3520 阅读 · 1 评论 -
哇哈哈, 终于天上掉箱子了
基本步骤:初始化SDK创建场景, 设置重力设置默认材质, 摩擦力系数之类的创建一个地面每次按Enter创建一个Box, 让它自己往下掉主要的代码如下://------------------------------------------------------------------------------voidTestPhysXApp::OnP原创 2009-08-25 23:15:00 · 2158 阅读 · 3 评论 -
重心坐标
数学中,重心坐标是由单形(如三角形或四面体等)顶点定义的坐标。重心坐标是齐次坐标的一种。设 v1, ..., vn 是向量空间 V 中一个单形的顶点,如果 V 中某点 p 满足, 那么我们称系数 (λ1, ..., λn) 是 p 关于 v1, ..., vn 的重心坐标。这些顶点自己的坐标分别是 (1, 0, 0, ..., 0), (0, 1, 0, ..., 0), ..., (转载 2010-02-05 14:18:00 · 10450 阅读 · 1 评论 -
Bullet的最小化功能封装
既然是"最小化", 那么就要明确最少需要哪些功能. 对于一般的物理应用来说, 只是简单地模拟碰撞, 柔体什么的都用不到. 在这样的前提下, bullet的工程可以精简到三个: libbulletcollision, libbulletdynamics, libbulletmath.接下来, 需要明确一下基本的物理概念. 这个是跟用什么库(physx, havok, etc)是没有关系的. 在上原创 2010-01-03 22:16:00 · 2431 阅读 · 0 评论 -
常见图形数学英文单词备忘
单词翻译homogeneous齐次affine transform仿射变换linear transform线性变换polynomial(multinomial)多项式convex hull凸包原创 2010-01-11 22:07:00 · 2929 阅读 · 1 评论 -
轻松话卷积
最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:“我也早就想把这个问题搞明白了!”经过一段时间的思考之后,有一些很有趣的体会和大家分享。听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白转载 2010-04-19 15:29:00 · 2557 阅读 · 4 评论 -
What is a Cardinal Spline?
This oddly named thing is simply a line with tension. A set of X,Y coordinates can be used to make a polygon or poly-line. Usually the points are connected by straight-line segments. A Cardinal Spl转载 2010-05-19 09:52:00 · 6527 阅读 · 2 评论 -
四元数与欧拉角之间的转换
在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系:转载 2010-06-21 09:14:00 · 15064 阅读 · 4 评论 -
视锥剔除优化
1. 基本相交测试. 只需要测试包围盒的两个角(这个几乎所有人都做了)2. 平面连续测试. 根据上次测试的结果来优化用于测试的平面顺序3. 八分体测试. 对于对称的视锥体可以减少一半的测试4. 父子测试. 对于有父子关系的包围盒, 父在内则子在内, 父在外则子在外, 父相交则需要递归测试5. 变换连续测试. 根据移动和旋转的方向来优化测试. 如上一帧在外的处于移动方向的相反方向的话, 这帧肯定也在外面.6. 雷达测试(Gems5). 适用于包围体为球形的情况.原创 2010-08-26 14:25:00 · 3990 阅读 · 0 评论 -
Havok使用笔记
基础的框架可以参考Demo/StandAloneDemos/ConsoleExampleMt搭建 如果只是用碰撞检测的话, RigidBody集成进去就差不多了 HavokCloth&HavokDestruction是不是收费的? 竟然还有HavokAI和HavokScript Phantom不参与物理运算, 感觉只是一个区域的定义, 可以用来做触发器什么的吧 物理材质的参数是在哪编辑呢? 美术/策划?(补充:插件里有) Constraint感觉很多游戏都没用上, 物理玩法的除外(补充: Ragdoll就是原创 2011-02-26 21:25:00 · 4841 阅读 · 5 评论 -
角色表情Blendshape重定向方法
注: 文章是美术同事写的, 我只是放这里记录一下问题重点:需要将已有角色脸型模型的所有表情Blendshapes精确的重定向到另一个五官位置不一样,模型布线也不一样的角色上。首先因为两套角色五官不一样,所以单一通过Wrap变形器无法实现精确的重定向。其次,由于两个面部模型布线也不一样,也不能通过Blendshape直接实现变形。解决办法:(1):首先将案例脸型用晶格变形来匹配我们目标角色...原创 2019-01-31 18:16:40 · 12449 阅读 · 2 评论