自定义博客皮肤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游戏开发

  • 博客(89)
  • 资源 (11)
  • 收藏
  • 关注

原创 风之幻想

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

2020-02-09 16:00:39 3196 6

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

简介:首先给出我的Github页面:ConcaveIntersection这个开源库基于Unity开发,主要实现了凹多边形之间的相交判断,当然也可以应用于顶点与凹凸包、线段与凹凸包、凸包与凸包之间的相交判断,也就是说,这个方案基本可以解决前面两则文章中的所有多边形判断,效率也非常高,复杂度几乎接近O(n),下面解释原理。一、扫线法概念扫线法其实是一种常用的平面空间算法思路,在很多算法...

2020-01-08 00:55:14 2517

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

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

2020-01-07 23:03:00 1927

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

本文记录一些常见的相交判断方法,属于游戏开发中比较常见的几何应用。目录一、线段之间的相交判断:二、顶点走向判断三、路径导航四、顶点与凸包相交计算五、线段与凸包的相交计算六、凸包与凸包的相交判断一、线段之间的相交判断:问题,如下图,如何判断线段AB和CD是否相交?解答:线段之间的相交判断一般使用以下夹持法思路:1、假如ABC保持现有位置,D可移动,那么穿透...

2020-01-05 22:09:53 2237

翻译 Voronoi图和扫线法

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

2019-12-24 21:11:20 1908

转载 BowyerWatson算法

不规则三角网(Triangulated Irregular Network,TIN)在表示地形的形态方面具有较好的表现,其生成算法一直备受关注。Delaunay三角剖分生成的网格正则性好,因此在实际工程计算中应用很广。生成 Delaunay 三角网格的方法中,目前大都基于 Bowyer-Watson法,它是一种逐点插入法,基本思路是 :先由给定的点集生成一初始网格,再根据 Delaunay 剖分原...

2019-12-11 15:10:15 1479 1

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

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

2019-12-10 17:35:16 616

转载 MarchingCubes算法

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

2019-12-07 23:06:50 3279 1

原创 Triangulation by Ear Clipping

Triangulation by Ear ClippingDavid Eberly, Geometric Tools, Redmond WA 98052https://www.geometrictools.com/This work is licensed under the Creative Commons Attribution 4.0 International License. To ...

2019-12-07 22:43:00 1148

转载 Ear Clipping算法简介

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

2019-12-03 21:31:31 2706

转载 Shader内置函数和变量

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

2019-12-03 14:27:08 786

原创 GJK 算法

GJK 算法(Gilbert–Johnson–Keerthi)翻译自:http://www.dyn4j.org/2010/04/gjk-gilbert-johnson-keerthi/今天,我将讨论dyn4j项目随附的其他碰撞检测算法。您可以找到很多GJK文档,但是其中很多实际上是技术性的,主要是因为它们是研究论文。我强烈推荐该视频教程,老实说,看完之后,您甚至不需要进一步阅读。但是,如果...

2019-09-29 15:29:42 11770 4

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

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

2019-08-25 22:28:55 303

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

Sprout Mapper Node萌芽映射节点萌芽映射节点将材质应用到萌芽网格,该节点有一个映射器列表,每个映射器应该分配给一个萌芽组,以便为属于指定组的所有网格应用材质。萌芽组的映射器列表Sprout Group 萌芽组将映射器分配给指定的萌芽组,然后映射器上的所有指令都将会应用于属于该组的萌芽网格。有两种模式可供选择,自定义材质模式或者纹理模式。颜色预览模式下的...

2019-08-19 13:55:38 353

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

Sprout Mesh Generator Node 萌芽网格生成器节点此元素包含有关如何在树结构上对各种萌芽组进行网格化的说明。在显示树的萌芽网格时应用了灯光和纹理。标记树的网格,有两个萌芽组(绿色和蓝色)。Meshes 网格网格条目列举了某个萌芽组上的网格指令。须将这些网格条目分配给指定的萌芽组,以便为​​属于该组的萌芽产生网格,该组的颜色将显示在每个条目的左侧。条...

2019-08-18 21:36:37 424

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

Branch Mesh Generator Node 分支网格生成器节点此元素为树的所有分支结构创建网格。Min and Max Polygon Sides 最小和最大多边形边数用于对一系列后续分支进行网格化的多边形边数。当最小和最大多边形边相同时,分支的所有截面将具有相同数量的多边形边;如果最小值和最大值不同,那么会在分支周长的范围内计算边数(较细的分支将分得到较少的多边形边)。...

2019-08-18 21:18:24 348

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

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

2019-08-18 01:11:06 419

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

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

2019-08-18 01:05:25 437

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

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

2019-08-18 00:07:26 460

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

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

2019-08-17 10:08:21 322

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

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

2019-08-13 22:17:14 451

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

Structure Generator Node(结构生成节点)结构生成元素是仿照Unity的Tree Creator组件来建模的,因此如果您之前使用过此工具,那么此处描述的大多数属性都应该很熟悉。整个结构都是使用层次结构中的分层节点来描述,每个节点包含用于在指定级别生成分支的属性。这里生成的结构将被作为基础,由管道中下游的其他节点修改、网格化和纹理化。将此结构作为构建树的整体空间数据。...

2019-08-13 21:28:09 437

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

运行时API要使用Broccoli的运行时API,请在脚本中添加以下命名空间: 1 2 using Broccoli.Factory; using Broccoli.Pipe; staticTreeFactory TreeFactory.GetFactory()在运行时生成树的第一步是获取TreeFactory对象。该工厂将加载...

2019-08-13 21:18:19 321

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

高级工厂选项单击主侧面板上的“Advanced Options”按钮时,将显示“高级工厂选项”侧面板。Advanced Options(高级选项)Factory Scale:控制生成树的缩放。管道元素中的值均保持不变,但最终树的网格将乘以此因子。Prefab Options(预制选项)这些选项描述了在预制件创建过程应如何处理纹理、材质和图集等资源。Clone assig...

2019-08-13 10:20:43 408

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

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

2019-08-12 22:53:27 395 1

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

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

2019-08-11 19:59:30 353

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

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

2019-08-09 00:32:19 360

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

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

2019-08-07 15:50:33 932

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

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

2019-08-07 11:00:21 496

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

事件系统UIElements包括一个事件系统,将用户交互与可视元素进行通信。受HTML中的事件的启发,UIElements事件系统共享许多相同的术语和事件命名。UlElement事件系统包含以下内容:事件调度器(dispatcher):UIElements侦听来自操作系统或脚本,并使用事件调度器分发这些事件。事件调度器还会确定将事件发送到可视元素和其他支持类的分发策略。 事件处理器(h...

2019-08-07 10:31:17 398

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

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

2019-08-06 20:06:22 328

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

USS支持的属性本主题列出了支持的USS属性及其接受的值。USS数据类型USS数据类型定义USS属性接受的值和关键字。属性 描述 <length> 表示距离值。 <number> 表示整数或带小数分量的数字。 <integer> 代表整数。 <color> 代表颜色。可以使用#hexade...

2019-08-06 18:59:38 440

原创 IK解算相关

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

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

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

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

2019-08-06 16:47:47 562

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

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

2019-08-06 11:47:33 418

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

样式(Style)和Unity样式表(style sheets)每个VisualElement都包含样式属性,用于设置元素的尺寸以及元素在屏幕上的绘制方式,例如backgroundColor或borderColor。样式属性可以在C#中设置,也可以在样式表中设置。样式属性将会在其自己的数据结构(IStyle接口)中重新组装。UIElements支持用USS编写的样式表(Unity样式表...

2019-08-06 11:07:20 1609

翻译 UIElements开发人员指南8 UQuery

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

2019-08-06 07:38:41 366

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

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

2019-08-06 07:33:06 1140

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

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

2019-08-06 06:49:06 388

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

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

2019-08-06 05:59:17 647

PolygonReduction.pdf

简单高效的多边形减面算法 if you’re a game developer, there’s a good chance that 3D polygonal models are part of your daily life and that you’re familiar with concepts such as polygons per second, low-polygon modeling, and levels of detail. You probably also know that the

2020-01-08

Learning Physics Modeling with PhysX

[PhysX] PhysX 物理建模 学习教程 (英文版)Learning Physics Modeling with PhysX

2019-01-19

四元数API示例

四元数API应用示例。Andrew的课程资源,请关注我的博客<a href="http://blog.csdn.net/andrewfan"> Andrew的游戏世界 </a>。

2017-03-27

Unity对象池

我正在写的《 Unity编程标准导引》一书中的章节。 介绍了一个通用的Unity对象池的写法。用于GameObject的回收重用处理。 具体详细内容请参考我的博客:http://blog.csdn.net/andrewfan

2017-02-26

AndrewBox_LineRender&TrailRender

针对LineRender和TrailRender的Shader,可以支持修改和定制渲染的方式和颜色。 详细的使用说明可以参考我的博客: http://blog.csdn.net/andrewfan

2017-02-26

openGL_ES1.1API文档

openGL_ES1.1API文档 包括EGL

2011-11-02

Android USB驱动

AndroidUSB驱动,包括amd64、Vista_x64、Vista_x86、XP_x86操作系统

2011-04-26

Symbian OS C++程序员编码诀窍

Symbian OS C++程序员编码诀窍电子书 中文版

2010-08-08

为S60系列编写游戏

为60系列编写游戏 摘自2002年TAMPERE科技大学JUUSO KANNER的理学硕士论文--“将基于60系列和SYMBIAN操作系统的智能电话作为多媒体游戏平台“

2010-08-08

2009年中国手机游戏用户行为调研 报告

2009年中国手机游戏用户行为调研 报告

2010-07-23

zip 的压缩原理与实现

一篇详细介绍zip压缩算法的文章,可贵的是中国人的原创。

2007-07-17

空空如也

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

TA关注的人

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