自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andrew的游戏世界

专注Unity3D游戏开发

原创 风之幻想

《风之幻想》是我的一个练习项目,业余时间开发,用于自己的技术练习,同时也希望可以最终成为一款独立游戏。

2020-02-09 16:00:39 2312 4

原创 扫线法快速判断凹多边形相交

简介: 首先给出我的Github页面:ConcaveIntersection 这个开源库基于Unity开发,主要实现了凹多边形之间的相交判断,当然也可以应用于顶点与凹凸包、线段与凹凸包、凸包与凸包之间的相交判断,也就是说,这个方案基本可以解决前面两则文章中的所有多边形判断,效率也非常高,复杂度几...

2020-01-08 00:55:14 456 0

原创 点、线段、凹多边形相交判断以及游戏中的常见应用

本文接前文点、线段、多边形相交判断以及在游戏中常见的物理应用 前文主要讲解点、线段、凸包之间的相交判断算法,本文主要解释凹多边形(简称凹包)的判断方法。 一、简单多边形 由于以下论述都是基于简单多边形,因此线解释什么是简单多边形,如下左图是简单多边形,右图则不是。 也就是自身无交叉的属于简单...

2020-01-07 23:03:00 554 0

原创 点、线段、凸多边形相交判断以及在游戏中的常见应用

本文记录一些常见的相交判断方法,属于游戏开发中比较常见的几何应用。 目录 一、线段之间的相交判断: 二、顶点走向判断 三、路径导航 四、顶点与凸包相交计算 五、线段与凸包的相交计算 六、凸包与凸包的相交判断 一、线段之间的相交判断: 问题,如下图,如何判断线段AB和CD是否相交?...

2020-01-05 22:09:53 602 0

翻译 Voronoi图和扫线法

人类学家已经使用Voronoi图来描述不同文化的影响区域。由晶体学家解释某些晶体和金属的结构;由生态学家研究植物之间的竞争;由经济学家为美国经济中的市场建模... 介绍 假设您生活在沙漠中,那里唯一的水源是到零星散布各处的泉水。对于每个泉水,您都想确定最接近该泉水的位置。结果可能是一张地图,如...

2019-12-24 21:11:20 321 0

转载 BowyerWatson算法

不规则三角网(Triangulated Irregular Network,TIN)在表示地形的形态方面具有较好的表现,其生成算法一直备受关注。Delaunay三角剖分生成的网格正则性好,因此在实际工程计算中应用很广。生成 Delaunay 三角网格的方法中,目前大都基于 Bowyer-Watso...

2019-12-11 15:10:15 235 0

转载 MALI Tile-based rendering简单原理介绍

写在最前 关于mali的架构的一点深入了解,将现有的GPU的基本流程和mali的做对比,提出其中的优点与缺点。原文地址:https://developer.arm.com/graphics/developer-guides/tile-based-rendering 传统GPU 传统GPU的架...

2019-12-10 17:35:16 137 0

转载 MarchingCubes算法

概述   之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征人体内部组织器官形状的一个三维图像。其中的感兴趣的组织器官通过体素的颜色和背景加以区别。如下...

2019-12-07 23:06:50 127 0

原创 Triangulation by Ear Clipping

Triangulation by Ear Clipping David Eberly, Geometric Tools, Redmond WA 98052https://www.geometrictools.com/This work is licensed under the Creative...

2019-12-07 22:43:00 465 0

转载 Ear Clipping算法简介

背景 偶尔翻出来几个以前的老游戏玩了一下,其中包括了孢子。说实话,以前作为玩家的时候感觉这个游戏也就一般。但是现在作为游戏开发者发现这个游戏涉及到一些很酷的技术,包括自定义的肢体(Skin方面)、动画的泛化(Animation Retargeting方面)以及IK结算的泛化。因此查找了一些这方面...

2019-12-03 21:31:31 289 0

转载 Shader内置函数和变量

内置函数 radians(degree) : 角度变弧度; degrees(radian) : 弧度变角度; sin(angle), cos(angle), tan(angle) asin(x): arc sine, 返回弧度 [-PI/2, PI/2]; acos(x): arc cosin...

2019-12-03 14:27:08 72 0

原创 GJK 算法

GJK 算法(Gilbert–Johnson–Keerthi) 翻译自:http://www.dyn4j.org/2010/04/gjk-gilbert-johnson-keerthi/ 今天,我将讨论dyn4j项目随附的其他碰撞检测算法。您可以找到很多GJK文档,但是其中很多实际上是技术性的...

2019-09-29 15:29:42 2077 1

原创 Broccoli Tree Creator 使用说明 5_2、Branch Mapper Node(分支映射节点)

Branch Mapper Node 分支映射节点 此映射器用于为树的分支结构网格的设置UV映射。为了使用材质正确渲染网格,进行映射是必要的。 Use Custom Material使用自定义材质 Checking this option allows the selection of a ...

2019-08-25 22:28:55 107 0

原创 Broccoli Tree Creator 使用说明 5_1、Sprout Mapper Node (萌芽映射节点)

Sprout Mapper Node萌芽映射节点 萌芽映射节点将材质应用到萌芽网格,该节点有一个映射器列表,每个映射器应该分配给一个萌芽组,以便为属于指定组的所有网格应用材质。 萌芽组的映射器列表 Sprout Group 萌芽组 将映射器分配给指定的萌芽组,然后映射器上的所有指令都将...

2019-08-19 13:55:38 142 0

原创 Broccoli Tree Creator 使用说明 4_2、Sprout Mesh Generator Node (萌芽网格生成器节点)

Sprout Mesh Generator Node 萌芽网格生成器节点 此元素包含有关如何在树结构上对各种萌芽组进行网格化的说明。 在显示树的萌芽网格时应用了灯光和纹理。 标记树的网格,有两个萌芽组(绿色和蓝色)。 Meshes 网格 网格条目列举了某个萌芽组上的网格指令。须将...

2019-08-18 21:36:37 126 0

原创 Broccoli Tree Creator 使用说明 4_1、Branch Mesh Generator Node (分支网格生成器节点)

Branch Mesh Generator Node 分支网格生成器节点 此元素为树的所有分支结构创建网格。 Min and Max Polygon Sides 最小和最大多边形边数 用于对一系列后续分支进行网格化的多边形边数。当最小和最大多边形边相同时,分支的所有截面将具有相同数量的多边形...

2019-08-18 21:18:24 144 0

原创 Broccoli Tree Creator 使用说明 3_4、Sparse Transform Node (稀疏变换节点)

Sparse Transform Node (稀疏变换节点) 稀疏用于修改树上已定义的分支结构。使用该指令时需要绑定到树的特定层次结构级别;例如,级别0表示根分支的子分支将接收修改。 Levels List(分层列表) 保存要应用于每个层次结构级别的指令。该列表最多可定义5个层次结构级别;如...

2019-08-18 01:11:06 244 0

原创 Broccoli Tree Creator 使用说明 3_3、Girth Transform Node (周长变换节点)

Girth Transform Node(周长变换节点) 此元素用于为树枝分配周长值。周长值用于创建表示树皮的网格,并且也是指定芽的表面上的芽的参考值。 基地周长 树的主干级别的周长值(分支层次结构0)。 在基数= 1的周长的树 在基地= 3周围的树 顶部的周长 树顶部分支的...

2019-08-18 01:05:25 291 0

原创 Broccoli Tree Creator 使用说明 3_2、Branch Bender Transform Node(分支弯曲变换节点)

Branch Bender Transform Node(分支弯曲变换节点) BranchBender 单元通过向现有分支添加弯曲点来进行工作。沿着分支长度分布的每个弯曲点可以施加方向变化,从而在整体上修改分支的形状。 Max and Min Bend Points(最大和最小弯曲点数) 最...

2019-08-18 00:07:26 253 0

原创 Broccoli Tree Creator 使用说明 3_1、Length Transform Node(长度变换节点)

Length Transform Node(长度变换节点) 长度变换元素是流水线上的一种结构变换元素;它对树上现有分支的长度和长度缩放执行修改。树上的每个分支的绝对位置插值介于0和1之间,具体取决于它们相对于父级的位置以及在整体树上的分层位置。该位置插值将被应用到分支的长度或长度因子(0表示最小...

2019-08-17 10:08:21 170 0

原创 Broccoli Tree Creator 使用说明 2_2、Sprout Generator Node(萌芽生成节点)

Sprout Generator Node(萌芽生成节点) 此生成器在现有树分支结构上生成萌芽。管道上的每个萌芽生成器节点都会指定萌芽的分布和对齐模式,可以随机地分配一个或多个芽组。应该注意的是,在该节点上完全没有定义萌芽方向,其他对齐属性可以根据萌芽使用的网格类型来设置(这些将在萌芽网格生成器...

2019-08-13 22:17:14 176 0

原创 Broccoli Tree Creator 使用说明 2_1、Structure Generator Node(结构生成节点)

Structure Generator Node(结构生成节点) 结构生成元素是仿照Unity的Tree Creator组件来建模的,因此如果您之前使用过此工具,那么此处描述的大多数属性都应该很熟悉。整个结构都是使用层次结构中的分层节点来描述,每个节点包含用于在指定级别生成分支的属性。这里生...

2019-08-13 21:28:09 130 0

原创 Broccoli Tree Creator 使用说明 1_5、Runtime API(运行时 API)

运行时API 要使用Broccoli的运行时API,请在脚本中添加以下命名空间: 1 2 using Broccoli.Factory; using Broccoli.Pipe; staticTreeFactory TreeFactor...

2019-08-13 21:18:19 140 0

原创 Broccoli Tree Creator 使用说明 1_4、Advanced Factory Options(高级工厂选项)

高级工厂选项 单击主侧面板上的“Advanced Options”按钮时,将显示“高级工厂选项”侧面板。 Advanced Options(高级选项) Factory Scale:控制生成树的缩放。管道元素中的值均保持不变,但最终树的网格将乘以此因子。 Prefab Options(预...

2019-08-13 10:20:43 165 0

原创 Broccoli Tree Creator 使用说明 1_3、Factory Options (工厂选项)

工厂选项 树工厂可用的操作显示在节点画布旁边的侧面板上。 1.管道状态:显示管道的状态;每次在管道发生更改时,工厂都会对其进行验证并在此处显示结果。只有有效的管道才能生成树资产。2.Generate New Preview(生成新预览):如果树节点画布上存在有效的管道,则此选项可用于...

2019-08-12 22:53:27 142 0

原创 Broccoli Tree Creator 使用说明 1_2、Pipeline Elements (管道元素)

管道元素 元素组件 管道元素使用生成树的画布上的节点表示。每个节点都有组件来标识它们所代表的元素、有关其配置的信息、以及将它们连接到其他节点的插槽,修改插槽可以修改它们在管道中的任务。节点的主要组件及其任务如下所述: 标题栏:显示元素节点的名称。它具有不同的背景颜色,取决于元素在对树某方...

2019-08-11 19:59:30 129 0

原创 Broccoli Tree Creator 使用说明 1_1、Factory Pipeline - Concept (工厂管道的概念)

概念 管道 每棵树的建立都从设定如何产生树枝和生长的指令开始。管道是包含这些指令的元素的集合。管道可以看作链接在一起的一系列元素,让数据流过这个链,每个元素只会修改最终成品树的某些方面。管道必须完整才能生成树,这意味着有必须有一个起始(source)和一个结束元素(sink),还可以在其间添加...

2019-08-09 00:32:19 146 0

翻译 UIElements开发人员指南16 Responding to Events(事件响应)

响应事件 您可以使视觉元素使用以下两种方式来响应它收到的事件: 通过注册事件回调(event callback), 通过实施默认操作 是否应注册事件回调或实现默认操作取决于许多因素。 例如,如果您从现有类实例化对象,并且希望实例在接收事件时以特定方式做出反应,那么您唯一的选择是在此实例上注...

2019-08-07 15:50:33 217 0

翻译 UIElements开发人员指南15 Dispatching Events(事件调度)

事件调度 UIElements监听来自操作系统或者脚本的事件,并使用EventDispatcher将这些事件分发给可视元素。事件调度程序为其发送的每个事件确定适当的调度策略。一旦确定,调度员就执行该策略。 可视元素和其他支持类,实现了某些事件的默认行为。某些情况下,这将涉及到创建和发送其它附加...

2019-08-07 11:00:21 133 0

翻译 UIElements开发人员指南14 The Event System(事件系统)

事件系统 UIElements包括一个事件系统,将用户交互与可视元素进行通信。受HTML中的事件的启发,UIElements事件系统共享许多相同的术语和事件命名。UlElement事件系统包含以下内容: 事件调度器(dispatcher):UIElements侦听来自操作系统或脚本,并使用事件...

2019-08-07 10:31:17 144 0

翻译 UIElements开发人员指南13 USS Writing style sheets(USS写作样式表)

USS写作样式表 为了保持井井有条,UIElements采用BEM作为元素造型的方法。虽然使用BEM不是强制性的,但建议使用它。 关于BEM BEM代表块元素修饰符(Block Element Modifier)。BEM是一个简单的系统,可以帮助您编写结构化的,无歧义的,易于维护的选择器。使...

2019-08-06 20:06:22 146 0

翻译 UIElements开发人员指南12 USS supported properties(USS 支持的类型)

USS支持的属性 本主题列出了支持的USS属性及其接受的值。 USS数据类型 USS数据类型定义USS属性接受的值和关键字。 属性 描述 <length> 表示距离值。 <number> 表示整数或带小数分量的数字。 <integ...

2019-08-06 18:59:38 182 0

原创 IK解算相关

以下是一些参考资料: 1、一种常见的IK骨骼动画IK解算方法 2、角色动画研究 —— IK的三种结算方法 3、角色动画研究 —— 使用雅可比矩阵(Jacobian)来结算IK ...

2019-08-06 17:08:00 219 1

翻译 UIElements开发人员指南11 USS Properties types (USS 属性类型)

USS属性类型 内置属性vs自定义属性 使用USS时,您可以指定内置的VisualElement属性,或者在你的UI代码中自定义属性。 除了从USS文件中读取属性值之外,还可以在C#中为内置属性的赋值(使用C#类VisualElement的属性)。在C#中赋的值会覆盖Unity样式表(USS...

2019-08-06 16:47:47 224 0

翻译 UIElements开发人员指南10 USS selectors (USS 选择器)

USS选择器 为了演示选择器,本主题使用以下可视树作为示例: 层次结构示例 简单的选择器 简单的选择器可以是通配符,也可以是类型,名称或类名的任意组合。基于上面的可视树,以下是简单选择器的一些示例: #container1 (类似CSS中的id) VisualElem...

2019-08-06 11:47:33 155 0

翻译 UIElements开发人员指南9 样式(Style)和Unity样式表(style sheets)

样式(Style)和Unity样式表(style sheets) 每个VisualElement都包含样式属性,用于设置元素的尺寸以及元素在屏幕上的绘制方式,例如backgroundColor或borderColor。 样式属性可以在C#中设置,也可以在样式表中设置。样式属性将会在其自己的数据...

2019-08-06 11:07:20 373 0

翻译 UIElements开发人员指南8 UQuery

UQuery UQuery提供了一组扩展方法,用于从任何UIElements可视化树中检索元素。UQuery基于JQuery或Linq,但UQuery旨在尽可能地限制动态内存分配。这样可以在移动平台上实现最佳性能。 要使用UQuery检索元素,可以使用UQueryExtensions.Q或使用...

2019-08-06 07:38:41 138 0

翻译 UIElements开发人员指南7 UXML elements reference (UXML元素参考)

UXML元素参考 下表概述了UnityEngine.UIElements和UnityEditor.UIElements名称空间中可用的UXML元素。 基本要素 元件 功能 命名空间 允许的子元素 属性 VisualElement 所有视觉元素的基类。 ...

2019-08-06 07:33:06 479 0

翻译 UIElements开发人员指南6 Loading UXML from C# (从C#加载UXML)

从C#加载UXML 要从UXML模板构建用户界面,必须先将模板加载到VisualTreeAsset: var template = EditorGUIUtility.Load("path/to/file.uxml") as VisualTreeAsset; 或更直接:...

2019-08-06 06:49:06 121 0

翻译 UIElements开发人员指南5 Writing UXML Templates(编写UXML模板)

编写UXML模板 UXML模板是使用XML标记编写的文本文件,用于定义用户界面的逻辑结构。以下代码示例演示如何定义一个简单面板,用于提示用户做出选择: <?xml version="1.0" encoding="utf-8"?> <U...

2019-08-06 05:59:17 210 0

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