- 博客(38)
- 收藏
- 关注
转载 Unity优化总览
CPUGC序列化与反序列化,如protobuff,json解析String的频繁构造,拼接,如ToString()会生成字符串,Object.name会返回拷贝闭包和匿名函数,在闭包中调用外部变量时会创建临时class对象,匿名函数当做参数传入时,也会有内存开销有开销的函数,如Camera.main等,缓存一下Transform只存局部坐标,旋...
2018-12-07 17:01:00
184
转载 立体渲染 Volumetric Rendering
基础概念在3D游戏引擎中,球体、立方体以及所有其它复杂的集合体都是由三角面片组成的。引擎只会渲染物体的表面,比如球体,半透明物体等.整个世界由各种空壳构成.立体渲染(Volumetric Rendering)的基本概念:模拟光线在物体内部的传送,从而实现更震撼也更真实的视觉效果。 片段着色器最后返回的对象,是从特定角度看过去特定位置的颜色。 这种方式计算的颜色是完...
2018-09-04 14:11:00
1147
转载 组件-实体-系统 Entiy-Compoent-System ECS架构整理
继承体系的问题,为什么要用ECS面向对象的问题当一个新的类型需要多个老类型的不同功能的时候,不能很好的继承出来游戏开发后期会有非常多的类,很难维护游戏中子系统很多,它们对一个对象的关注点往往互不相关,比如渲染.网络,战斗数据,如果都对应一个基础角色对象,这个类就会很大ECS,通过组合而不是继承的方法来进行实体的构建ECS的设计目的是用来...
2018-08-01 16:01:00
397
转载 ReplacementShader 测试
简介参考网页 SetReplacementShader(Shader shader, string replacementTag);参数中的replacementTag,是Shader中Tags中键值对的Key值,即 "RenderType"="Transparent" 的 RenderType替换规则是,按照键值对的值,从替换用的Shader中找到对应Tag...
2018-07-19 11:27:00
311
转载 Markdown测试
标题更小的标题共有6级标题分割线三个或以上*或是-标题更小的标题共有6级标题有序列表,数字和英文句点,注意句点与文字中间有空格。不要求数字连续无序列表-+*任意一种也必须有空格嵌套1嵌套2分割线三个或以上*或是-字体 加粗 斜体 加粗斜体 删除线printf("单行代码")...
2018-07-07 11:45:00
92
转载 扭曲效果 效率优化 GrapPass,CommandBuffer对比
屏幕图像捕捉:Shader的GrabPass GrabPass可以很方便地捕获当前渲染时刻的FrameBuffer中的图像。 其原理就是从当前FrameBuffer中copy一份纹理,通过SetTexture的方式设置纹理。 至于GrabPass的性能问题,一般认为是对FrameBuffer 进行的一些pixel copy operations造成的, 具体U...
2018-07-06 17:42:00
570
转载 Douglas-Peucker 轨迹压缩算法
算法的基本思路是: 对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax ,用dmax与限差D相比: 若dmax <D,这条曲线上的中间点全部舍去; 若dmax ≥D,保留dmax 对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。算法缺陷对于一般路径而言,Douglas-Peucker算法是有效的,但是不难想到,...
2018-06-07 09:44:00
645
转载 Marching squares 算法 获取轮廓(contour tracing)
https://en.wikipedia.org/wiki/Marching_squareshttp://blog.youkuaiyun.com/coolingcoding/article/details/17278959 根据一个Square的四个顶点信心分别标记边界,连起来就行还有一种:每种Square都有一种移动方式走一圈就是边界转载于:https://www.cnblogs.com/...
2018-06-07 09:43:00
878
转载 创建Mesh->格子地图转NavMesh->可破坏墙壁
1. 前言 最近连续做了很多代码动态生成Mesh的工作,从动态生成修改瞄准范围的Mesh到可破坏的墙壁,以及之前写了一半导航网格生成. 想借此机会整理下最近的积累,如果在阅读过程中发现一些问题或是有争议的地方,欢迎交流2. Mesh数据简介 一个Mesh的必要结构有: 顶点,三角形 用于渲染的Mesh一般就会有: UV: 一般会有多组,一...
2018-06-06 16:31:00
282
转载 StretchedBillboard 实现
参考Unity粒子系统的StretchedBillboard,在保持模型的右朝向不变的情况下,尽量朝向摄像机转化为数学问题: 一个向量在一个面上的投影基础的Billboard的方向应为: 从中点指向摄像机限制的平面为以right为法向量的平面算法 Vector3 rightward = transform.parent.forward; if (isShowLeft) rig...
2018-03-15 18:04:00
569
转载 recast 生成navmesh主要流程
参考: critterai http://www.critterai.org recast & Detourhttps://github.com/recastnavigation/recastnavigation 关于理解 NavMesh 生成: 体素http://critterai.org/projects/cainav/doc/html/6fb304...
2018-02-07 10:47:00
490
转载 格子地图生成导航网格
整理后的: https://www.cnblogs.com/Hichy/p/9145857.html原网页:https://gamedev.stackexchange.com/questions/38721/how-can-i-generate-a-navigation-mesh-for-a-tile-grid1 Use Marching Squares algorithm to...
2018-02-07 10:47:00
813
转载 Geometry Shader 实现 Wireframe 绘制边线的Shader
最终效果:参考了一个免费插件https://assetstore.unity.com/packages/vfx/shaders/directx-11/ucla-wireframe-shader-21897基础思路======================================在几何阶段计算每个顶点到第三边的距离,在片元中就可以插值得到每个点到顶点的距离根据最小的距离只计算是否...
2018-02-01 16:00:00
1076
转载 体素爆炸
基本思路: 离线把怪物死亡那帧的模型数据生成体素信息保存起来 在死亡的时候,隐藏原本的模型,用体素数据生成体素 低端机型用特效数据做爆炸,高端机型用真实物理 体素数量可以在生成时调整(低画质之初20分之一的体素)结果: 看不太出来是从模型样式开始爆炸的,最后使用了纯特效实现演示效果图体素生成代码使用地图体素信息导出工具临时改的,最终没有用这个方案就没有细化爆...
2017-12-13 16:54:00
145
转载 弹孔,血迹 等受击表现
1 最简单的 在碰撞点新建一个片,用来绘制弹孔2 投影,侧面会被拉的变形很严重3 但是最大的问题是当受击物体移动,播动画时,弹孔还留在原地 需要保持弹孔位置,最终考虑把弹孔信息保存在顶点数据里,比如 uv 主贴图 uv2 lightmap uv3 弹孔贴图最终结果根据碰撞点计算uv的算法: 1 使用Unity的用Transform计算坐标系转换 2 ...
2017-12-13 16:31:00
399
转载 Behaviac 腾讯开源行为树 简介(给策划)
1.为什么使用BTFSM模型的优势之一是简单。但是FSMs需要用转换(Transition)连接状态(State),因此,状态(State)失去了模块性(Modularity)。BT的主要优势之一就是其更好的封装性和模块性,让游戏逻辑更直观,开发者不会被那些复杂的连线绕晕。FSMBT行为树的基本概念:执行每个节点都会有一个结果(成功,失败或运行)子节点的执行结果由其父节点控制和管理返回运...
2017-11-27 22:40:00
2735
转载 unable to unroll loop 报错
unable to unroll loop, loop does not appear to terminate in a timely manner (1024 iterations)原本代码for (int i = 0; i < _Loops; i++)这里的_Loops是运行时,有程序传入的参数,在编译时报错改写为字面值的最大值for (int i = 0; i ...
2017-11-25 17:19:00
569
转载 Unity编辑器扩展
四类1. ScriptableObject 只有菜单2. ScriptableWizard 向导对话框简单的输入 响应一下确认按钮3. EditorWindow 编辑对话框4. Editor 绘制ui函数的各种空间GUIGUILayoutEditorGUI Editor下专用的各种控件,动画曲线什...
2017-11-24 20:37:00
140
转载 追踪弹路径
追踪弹路径为了实现上图比较平滑的追踪,又要保证追踪子弹能命中目标,增加一个变量记录追踪的力度,并且力度随时间成长,用追踪力度决定子弹原本方向的改变大小,特殊的,为了防止子弹在目标点附近打圈,在距离目标较近时,直接设置方向演示代码 private void Update() { if (IsArrive()) { Destroy(gameObject); r...
2017-11-24 19:30:00
212
转载 代码管理资源属性
最主要使用的类: AssetDatabase代码改变Texture属性,读取标记改为Truestringpath=AssetDatabase.GetAssetPath(BulletTrack);TextureImporterA=(TextureImporter)AssetImporter.GetAtPath(path);...
2017-11-24 19:22:00
86
转载 Unity 图形学 基础知识总结
1. 渲染流水线 三大块:应用阶段,几何阶段,光栅化阶段 渲染图元 顶点信息 GPU流水线 顶点数据=> 顶点着色器;曲面细分着色器;几何着色器;裁剪;屏幕映射=> 三角形设置;三角形遍历;片元着色器;逐片元操作=> 屏幕图像 裁剪:可配置的,摄像机属性 逐片元操作:模板测试,深...
2017-11-21 11:25:00
431
转载 Unity 代码改宏定义
两个函数PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup); //所有宏定义 ; 分割PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, sz); //写入全部宏,相当于改配置使用笔记需要考虑一组宏定义的互斥问题,...
2017-10-27 17:39:00
478
转载 AssetBundles
AssetBundles针对特定平台的可以在运行时加载的资源包有相互依赖关系两部分构成:archive(文档,包含serialized file 和 resource files);AssetBundle object(包含一个path到assets的map)文件只能放.txt后缀的文件,.lua的要在打包前加上.txt后缀 - -可以在Inspector的下方选择资源所在的...
2017-10-27 14:36:00
163
转载 Graphics.DrawMeshInstanced
Draw the same mesh multiple times using GPU instancing.可以免去创建和管理gameObj的开销并不是立即绘制,如需:Graphics.DrawMeshNow每帧调用一次,当帧发送绘制请求Meshes are not further culled by the view frustum or baked occluders, nor s...
2017-10-25 17:58:00
1254
转载 假运动模糊
基本思路 用屏幕特效 多次绘制 每次都稍微放大一点 放大的比例根据距屏幕中心点的距离增加效果 比真的运动模糊更省资源,更可控Shader "Other/FakeMotionBlur" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { CGINCLUDE...
2017-08-30 17:12:00
115
转载 假倒影
基本思路 多一个pass把某型转到想要的位置重绘一次,根据距离模型原点的位置改透明度 倒影翻转了一个轴 导致面正反被翻转 剔除要改为前面剔除 效果 shader多的那个pass //倒影Pass{ //倒影翻转了一个轴 导致面正反被翻转 Cull Front CGPROGRAM #pragma vertex vert #pr...
2017-08-30 17:02:00
97
转载 Ansi2Utf8 小工具
将GB2312编码的文件转成Unity使用的UTF8无bom格式主要用批处理执行Ansi2Utf8.exe XXXXX.txt源代码using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;...
2017-07-07 11:28:00
236
转载 TextMeshPro 图片字Sprite
生成 需要一个资源右键生成调整位置放在目录使用<sprite="NumDamage" index=1><sprite="NumDamage" index=1><sprite="NumDamage" index=3>效果转载于:https://www.cnblogs.com/Hichy/p/7079347.html...
2017-06-26 10:20:00
928
转载 LuaBridge
不能直接公开基类的函数,必须单独公开基类,并声明继承关系deriveClass<Player, BaseController>("Player")直接公开基类的函数会报错!!!!! 踩坑N次留念!!!!!!!!!!!!LuaBridge的主要特点 源码只有头文件,没有.cpp文件,没有MakeFile,使用时只需一个#include即可。 支持不同的对...
2017-06-21 16:26:00
297
转载 模型 中心点在摄像机视锥体外 被裁减问题
原因: SkinnedMeshRenderer 1.Bounds的Extents参数被改为0.1(怪物导航阻挡生成什么的,被改掉) 2.UpdateWhenOffscreer 参数没有勾起bounds: The bounding volume of the renderer (Read Only).渲染器的包围盒(只读)。updateWhenOffsc...
2017-06-05 22:49:00
120
转载 多版本Shader与multi_compile
https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html #pragma multi_compile Type_1Type_2Type_3 ...这个指令将会生成多个Shader变体(variants),运行时根据材质或是全局的Keyword决定哪个变体起效所有关键字都没有起效的话, 会选择第一个起效,所以一般是写...
2017-05-24 11:53:00
234
转载 Behavior Designer扩展
BehaviorManager.instance.Tick(behaviorTree); 卸载update里u3d直接卡死 = =SharedVariable直接赋值会改变他的引用关系,必须用XXX.Value赋值 = =http://www.opsive.com/assets/BehaviorDesigner/documentation.php 两种自定义Task: Task 和 P...
2017-04-24 10:05:00
133
转载 基于行为树的AI 与 Behavior Designer插件
优点: 0.行为逻辑和状态数据分离,任何节点都可以反复利用。 1.高度模块化状态,去掉状态中的跳转逻辑,使得状态变成一个“行为”。 2."行为"和"行为"之间的跳转是通过父节点(Composite)的类型来决定的(例如sequence或者selector) 。比如并行处理两个行为,在状态机里面无法同时处理两个状态。 3.通过增加控制节点的类型,可以达到复用行为的目...
2017-04-24 10:04:00
158
转载 U3D版本控制设置 Force Text优劣
git的忽略列表 .gitignoreLibrary/Temp/.vs/*.csproj*.slnEdit > Project Settings > Editor 下把meta文件设置为可见,资源序列化设置为强制使用文本改了以后.unity .mat .prefab 什么的 就是文本格式了,默认是二进制的.总体来说 多人合作的开发 推荐改为 Force Text好处:如果...
2017-04-18 11:31:00
430
转载 能量盾 受击波纹 小测试
表现:受击是会产生一个受击波纹向四周扩散shader:Shader "Unlit/NewUnlitShader"{ Properties { _ShieldColor ("Shield Color", Color) = (0.5,0.5,0.5,0) _BaseTex ("Base Texture", 2D) = "white" {} _HitMaskTex ("Hit Mask...
2017-04-17 17:26:00
121
转载 ShaderLab中vertex fragment类Shader基础格式笔记
//U3D用的shader语言叫ShaderLab,基础语法官方文档地址//https://docs.unity3d.com/Manual/SL-Shader.html//开头指明名字,可以在别的shader中通过名字调用该shader的Pass什么的//UsePass "ShaderName/PassName"Shader "ShaderName"{ //...
2017-04-17 16:45:00
184
转载 SceneView 追踪选择目标
在编辑器的Scene视图中追踪选择目标,调试动作用SceneView这个类没有说明文档比较蛋疼在update中调用SceneViewCameraFace2Target函数,编辑器的OnInspectorUpdate不够平滑每帧重绘SceneView的lastActiveSceneView,原本想要获取Scene视图中的Camera对象的,没有找到接口但是功能是达到了#ifUNITY_...
2017-04-16 22:00:00
186
转载 传送门出现|消失效果
在shader 中判断定点与传送平面的位置关系,改变其透明度问题:所有会被用到的shader都要改算法: 1,需要 面上一点,和面的法向量 2,(目标点-面上点)点乘法向量 即 cos夹角 3,d>0 :在法向指向的一侧 d=0: 点在面上 d<0:点在法向的所指方向的另一侧 ...
2017-04-14 10:04:00
248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人