自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逍遥剑客

专注于3D游戏技术

原创 UE4 Cook On The Fly通过数据线连接Android手机

UE4如果需要在真机上测试, 通常编译+打包+安装需要很长的时间. 所以UE4提供了Cook On The Fly的功能, 就是默认只编译, 资源的Cook在运行时由FileHostServer进行Cook, 这样就不用每次测试经历痛苦的打包过程. 对于Android平台来说, 只需要安装apk,...

2020-06-26 18:54:18 129 0

原创 UE4多个分支版本兼容相同的工程dll

如果是从源代码编译出来的UE4, 明明代码完全一样, 不同机器编译出来的dll却无法兼容, 这对于多分支开发非常不方便. 在老版本里有个通过版本号判断的逻辑, 新版本改没了. 分析UE4源码后发现目前是通过BulidId来判断dll跟引擎是不是兼容的. 那BuildId是哪里来的呢? 其实...

2020-06-26 18:49:08 89 0

原创 踩了个TextureArray的坑

就是做了两层混合的材质, 采样了两TextureArray, 但是因为TextureIndex是动态计算的, 就会出现同一张纹理在不同的Texture2DArraySample里采样的情况, 然后就会出现一条一个像素宽的小缝. 实验了一下, 只采样mip0或者两层纹理的UV一样的话, 就不会出现...

2020-06-26 18:42:02 89 0

原创 远程桌面启动Houdini

最近疫情比较严重大家都是在家办公的, 需要远程登录公司里的开发机. 但是远程桌面无法直接启动Houdini, 会报OpenGL的错 这个方法也适用于一些依赖OpenGL硬件加速的程序, 如Substance等 原理就是中断当前远程登录的session, 然后再启动程序, 这时候就可以使用Open...

2020-02-12 14:30:25 489 0

原创 Houdini的皮球

跟着教程做的一第一个模型 attribute create节点 uv flatten节点 material编辑 uv编辑

2019-07-20 11:01:05 347 0

原创 角色表情Blendshape重定向方法

注: 文章是美术同事写的, 我只是放这里记录一下 问题重点: 需要将已有角色脸型模型的所有表情Blendshapes精确的重定向到另一个五官位置不一样,模型布线也不一样的角色上。首先因为两套角色五官不一样,所以单一通过Wrap变形器无法实现精确的重定向。其次,由于两个面部模型布线也不一样,也不能...

2019-01-31 18:16:40 2168 0

原创 UE4 Shader开发的一些东西

http://blog.kiteandlightning.la/ue4-hlsl-shader-development-guide-notes-tips/ Ctrl+Shift+.可以编译引擎Shader并重新载入, 但是对Plugins下的无效 如果要在RenderDoc里看到Shader代码...

2019-01-12 16:37:58 2363 0

原创 UE4 LightRendering

最近把HairWorks整合到了UE4 4.20, 整合的过程中发现了一些没法直接merge的代码, 主要集中在LightRendering.cpp和DeferredLightingPixelShader.usf中. 所以顺便简单读了一下代码, 把其中的一些关键字概念整理出来方便查阅理解. Uni...

2018-11-09 19:10:11 816 0

原创 Android平台上的Native内存分析

文章目录背景UE4的内存统计memreportMemoryProfiler2LLMAndroid进程内存DDMSMemoryAnalyzer 背景 UE4游戏在Android上的进程内存占用(PSS)很让人困惑, 没有一个清晰直观的方式可以统计到每一部分的内存占用. 所以在做内存分析的过程中顺手做...

2018-09-28 09:39:03 5073 0

原创 Unity中使用GPU Instancing优化SkinnedMesh渲染

有这么个需求: 一堆不会动的SkinnedMesh, 通过物理模拟出死亡姿势后, 需要优化性能, 不然才10FPS首先想到的做法是转成StaticMesh. 试了一下直接超出了Unity的顶点Index数量限制, 所以放弃, 再说转换完后也不方便编辑. 另一个思路就是使用Instanced Ski...

2018-07-10 10:29:04 6118 1

原创 草的交互的几种实现

基本原理都差不多, 通过在VertexShader种更改顶点的位置实现, 各种做法的差别主要是偏移量的计算. 第一种做法: 根据顶点的UV来计算顶点偏移的权重, 因为草叶一般是沿纹理的一个轴方向分布的. 偏移的远近是根据顶点位置和玩家位置(寄存器传入)计算距离后得出. 第二种做法:...

2018-07-03 09:47:16 3722 0

原创 基于Unity的编辑器开发(二): 进程间通信

共享代码 进程间通信 通信协议 其它 共享代码 首先要做的, 是需要编辑器和Unity共享一部部分代码, 至少协议定义和解析我不想写两遍. 虽然有protobuf这样的工具库, 但是如果不是跨语言的话, 我觉得没必要引入另一套流程. 所以我就想能不能让一个C# dll库可以同时...

2018-05-09 20:15:14 3830 1

原创 基于Unity的编辑器开发(一): GUI框架技术

需求背景 技术挑战 GUI框架技术 Unity渲染窗口 GUI Docking Property Editor 小结 需求背景 用Unity开发的游戏, 需要做个关卡编辑器. 如果只是内部用用, 其实直接扩展Unity就够了; 但问题是需要发布给外部的用户使用, 那么总不能...

2018-04-26 10:13:54 7794 4

原创 VR中物理的网络同步

参考: Networked Physics in Virtual Reality: Networking a stack of cubes with Unity and PhysX 之前做VR游戏时也是尝试了几种物理的同步方案, 最近看到Oculus Blog上也分享了一些, 经验, 做个笔记....

2018-03-09 10:47:35 2773 0

原创 UE4源码Build上传Perforce

UE4每次升级个版本总是要提交大量文件到Perforce, 是件很麻烦的事. 我们的引擎编译好了会连同Binaries一起上传, 这样美术和策划都可以直接使用跟程序一样的版本. 这样的话, Perforce上的引擎就需要有这些注意事项: 引擎目录完全包含所有代码和引擎依赖资源 引擎编译输出的dll...

2017-11-03 15:02:28 4246 0

原创 UE4衣服材质换色

游戏中衣服换色是个很普遍的需求, 除直接替换贴图外, 还有使用程序参数来控制颜色的做法. 原理就是使用一张灰白Mask图, 乘一个颜色, 替换原Diffuse贴图上的颜色 效果如下: 这种制作方式有两个缺点: 一是换色区域只能换一个固定颜色, 只有明亮不一样; 二是如果让...

2017-10-23 09:57:29 7371 4

原创 《Honey Select》捏人剖析

破CSDN的文章编辑器太难用了, 传个图要累死. 以后在知乎写完再转过来: https://zhuanlan.zhihu.com/p/28471808关于游戏中的捏人系统, 很少有资料提到怎么做, 印象中只有《天涯明月刀》分享过. 前段时间关注了个VR资源分享的公众号, 经常推送HS的捏人作品, ...

2017-08-12 01:29:48 59551 6

原创 Morph动画的转移

以往做游戏换装什么的, 大多是使用骨骼来调整体型/脸型什么的, 这算是比较成熟的技术了. 最近的项目里尝试了使用MorphTarget(BlendShape)来做个事情, 好处是能够做到逐顶点的调节, 可以做出比较细腻的效果, 但是与此同时来带了制作成本的上升. 不过看目前AAA级的游戏这种做...

2017-06-27 20:29:35 9042 0

原创 GDC2017: 《Lone Echo》中的VR动画

去年在Oculus Connect 3体验过《Lone Echo》的多人竞技玩法, 品质很高, 算是VR游戏中的一线大作了. 正好今年GDC上他们分享了一些关于VR中角色动画的一些经验, 还是比较有借鉴意义的, 毕竟Avatar做了全身的VR游戏少之又少. 这是一个太空失重背景下的游戏, 可以...

2017-06-21 21:30:43 5165 0

原创 UE4中程序驱动的LookAt动画

很多游戏中都有, 就是角色转头+眼镜转动盯着一个目标看, 通常是盯着镜头看用的比较多 UE4里实现这个功能很容易, 直接在AnimGraph里使用LookAt结点就可以了 4个LookAt分别控制脖子, 头, 左眼, 右眼的朝向, 脖子和头的角度比眼睛小, 转动速度也比眼睛慢. 实际项目中...

2017-05-16 00:29:23 5558 4

原创 GDC2017: PlayStation VR Worlds中的渲染优化

介绍了一种很trick的优化方法: Stencil Mask 这里他们称之为Resolution Gradient 主要的思想跟NVIDIA的MultiRes Shading差不多, 但是不用依赖硬件的特性才能实现. 简单一点说就是, 因为VR显示器透镜变形的原因, 边缘的渲染分辨率用不着...

2017-04-10 00:44:55 3720 2

原创 VRDC2017: Eagle Flight Technical Postmortem

Eagle Flight是我认为目前品质达到”优秀”的VR游戏, 所以关于它的一些分享是非常有参考价值的 这个游戏有几点挑战: * 怎么让高速的飞行尽可能的舒适? 因为VR中的移动非常难保证不会晕 * 规模非常庞大的场景, 还有非常多的植被 * PC上要达到90FPS, PS4上要达到...

2017-03-19 22:06:31 3370 1

原创 VRMMO的技术挑战

又是新的一年, 2016总体不错, 前两年的坚持和积累开始产生效果, 2017不忘初心, 继续前行. 从做PC网游开始, 到2014年做主机游戏, 2015年做单机VR游戏, 2016年做多人VR游戏, 我们一直在走一条非主流的路. 不过现在回头看看, 冒似绕了一条路走在了前面, 做为一名技术人...

2017-01-22 15:52:20 4674 1

原创 LowPloy风格的模型导入

LowPloy风格是一种小清新风格, 在美术设计上很有独特性. 典型的游戏作品有《纪念碑谷》《劳拉Go》等 2016上半年我们也进行过尝试, 从程序的角度来说, 这种风格是一种利好, 因为可以大大减少资源量, 对于性能的压力就小得多了, 所以在移动平台上会有比较好的性能表现. 这...

2017-01-05 12:44:15 5999 8

原创 Mesh的平面切割算法

看了一下UKismetProceduralMeshLibrary::SliceProceduralMesh的代码实现, 发现也没想像中的复杂, 只要把网格/三角形/顶点/边的关系理清楚, 逐步分解问题就可以把复杂问题给简化成一个个的小问题, 然后各个击破. 把注释和代码的步骤整理了一下, 变成了...

2017-01-05 00:23:19 9971 2

原创 YY一下VR游戏的潜入玩法

很早之前玩过两个小众的潜入游戏, 分别是《Warp》和《Mark of the Ninja》, 就喜欢上了这类游戏, 不过对我口味的不多, MGS5算一个. 最近又玩了另外两个潜入游戏: 《Aragami》和《Dishonored》, 发现这两个游戏有一个共同点: 游戏中的移动频繁依赖传送. 因为...

2016-12-08 00:24:55 3750 0

原创 VR中对带有约束的物理对象的交互

在VR游戏中, 使用双手(控制器)直接对虚拟世界中的对象进行交互, 已经成为一种”标准化”的设计, 一切看起来能够用手去交互的物体, 都需要附合物理规则. 简单的物理对象, 通常只是一个刚体(Rigidbody), 这种只需要模拟重力和惯性运动就可以了, 最多再调节一下摩擦力, 弹性, 空气阻...

2016-12-07 23:12:44 3389 0

原创 UE4中Lambda的一些用法

跟Delegate一起用FTimerDelegate TimerCallback; TimerCallback.BindLambda([] { // callback; });FTimerHandle Handle; GetWorld()->GetTimerManager().Set...

2016-10-19 15:01:32 5795 0

原创 移植了OVRLipSync到UE4

OVRLipSync 是Oculus为Unity开发的一个口型同步插件, 能够实时处理语音数据转换成相应的口型, 按照它的规范, 一共有15个口型: 上面的截图是基于MorphTarget的, 这个插件也提供了基于贴图的表现形式: 通过分析插件可以知道, 核心算法封装在OVRL...

2016-09-23 12:17:46 5814 4

原创 VR下双手与物体的交互

背景Oculus的Touch, HTC Vive的Controller, PSVR的PS Move, 三家一线VR硬件都在给大家传达一个信息: VR下能够模拟双手的体感控制器是一个趋势. 在VR游戏中, 一旦有了双手, 这就意味着不光能看了…..如果说之前的VR游戏只是输出方式(显示器)发生了变化...

2016-08-09 23:45:02 4353 1

原创 GDC2011: Fast and Efficient Facial Rigging

讲的是Gears of War 3中的Face Rig GOW3中的角色很多, 过场动画也很多, 这就带来了一些挑战: 表情动画必须容易编辑 在外包制作的基础可以建立良好的工作流 动画数据可以共享给不同的模型 容易编辑体现在所有结点都是一条曲线, 这也保证了数据的简洁, 方便外包数据传输...

2016-07-20 23:15:29 3498 0

原创 Valve: The Lab Renderer for Unity

来源https://www.assetstore.unity3d.com/en/#!/content/63141 https://steamcommunity.com/games/250820/announcements/detail/604985915045842668前几天Valve放出来他...

2016-06-13 23:53:07 6388 3

原创 DIY一个VR小钢炮

背景去年做了一个VR Demo后, 总是有各种参观啊, 演示啊, 讲座啊等, 然后很少有合格的电脑跑得动…有时又想现场演示下, 就只能把工作站抬过去了. 来回折腾几次就下定决心要装一台VR专用的演示机, 要求很明确: 小. 品牌主机如果想要GTX980级别显卡配置的, 几乎要么体积巨大, 要么...

2016-06-12 13:57:40 10287 6

原创 GDC2015: Networking for Physics Programmers

物理模拟的问题 物理模拟需要是确定性的吗? 应该是发送物理对象的状态还是碰撞事件或者受力? 使用UCP还是TCP发送数据? 使用C/S还是P2P? 需要一个DS吗? 怎么隐藏玩家行为的延迟? 怎么防止作弊? 带宽 同步策略帧同步 只同步输入, 不同步状态 优点: 带宽需求很低, 跟对象多少无关 难...

2016-06-08 09:55:43 2801 0

原创 走进VR游戏开发的世界

注: 原文2016年2月发表于公司内部社区, 最近才由同事转载出来, 删去了文中引用的一些内部文章和视频. 在这里我也只是把外网版本转过来, 留做备份. 背景介绍我们组在2014年下半年尝试开发了一款 XboxOne 平台的体感游戏, 2015年上半年进行收尾工作的同时, 结合之前积累的体感交互经...

2016-05-01 00:19:21 18675 4

原创 GDC2016: Animating With Math

Unity和UE4的Material Editor中都有类似VertexOffset的功能, 可以在VertexShader中驱动顶点, 做一些程序控制的顶点动画 用顶点动画的原因: 骨架是共享的, 骨骼动画是共享的等, 同时节省了骨骼数和动画师的工作量 使用cos三角函数+Time是...

2016-04-21 23:15:21 7169 0

原创 Untiy Native Render Plugin在VR中的绘制(二): 透明排序

上篇已经能在VR中画出来了, 但是还存在两个问题: 1. 透明物体会被Native画的东西挡住 2. VR中Native画的东西透视关系有点问题, 跟Unity绘制的场景不能很好地融合在一起先来解决一个透明排序的问题, 这个问题有两个思路去解决:双Camera双Camera的思路就是, 一个C...

2016-04-21 10:34:23 2820 0

原创 Untiy Native Render Plugin在VR中的绘制

官方的Sample只是画了一个屏幕空间的三角形, 怎么改成世界空间的呢? 以D3D11为例:Native:struct ConstantBuffer { DirectX::XMMATRIX World; DirectX::XMMATRIX View; DirectX::XM...

2016-04-10 21:49:50 3525 1

原创 GDC2016: AMD LiquidVR

跟NVIDIA的VRWorks一样, AMD也对VR进行了一些优化, 两家的各项技术基本上可以一一对应起来, 只是名字不同 Latest data latchhttps://www.youtube.com/watch?v=e_o22yJOgkg 其实就是Timewarp Affinity m...

2016-04-04 14:40:37 2603 0

原创 Oculus Rift, HTC Vive, SONY PSVR的全面对比

这次有幸参加了GDC 2016, 终于把三大设备体验了个遍, 也试玩了很多不错的VR游戏. 之前看到很多人总是靠猜测和推测来评价这个三个VR设备, 误导了很多人, 所以在这里我就详细对比一下, 希望能让更多的人清楚的认识每个设备的优缺点, 客观地去评价它们. 分辨率/清晰度从参数上来看, Rift...

2016-03-18 23:46:53 15422 5

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