矩阵变换
摘要:<1>平移矩阵 1点平移(点平移位置会改变) 1*x+0*y+0*z+tx*1 = x+tx 0*x+1*y+0*z+ty*1 = y+ty 0*x+0*y+1*z+tz*1 = z+tz 0*x+0*y+0*z+1*1 = 1 点的4个分量为: (x+tx , y+ty , z+tz , 1) 2
阅读全文
posted @
2019-06-18 14:22
tianjiuwan
阅读(344)
推荐(0)
带法线贴图的高光着色
摘要:<1>效果 <2>代码 <3>最主要的是法线转到世界空间 我们用的法线贴图的切线空间下的,所以需要切线空间转世界空间矩阵Mc->p 那么问题来了,这个做空间变换的矩阵是怎么推导出来的 假如:Oc为子空间原点在父空间的坐标,X、Y、Z是子空间三条轴在父空间的表示 现在子空间有1点p(a,b,c),求点
阅读全文
posted @
2019-06-17 11:56
tianjiuwan
阅读(661)
推荐(0)
【一种获取九宫格index的方式】
摘要:<1>由来: 在做一些需求的时候,我们可能需要把地图划分成均匀网格,随机找一个格子A,需要取到这个A格子九宫格内的所有格子索引 例如我们把地图划分成3x3网格(从左下开始 行向Y轴正方向延伸 列向X轴正方形延伸) 例如: 此时我们需要知道7(或者表示为2,2)的九宫格,均匀网格定义为:行=4 列=5
阅读全文
posted @
2019-05-09 20:36
tianjiuwan
阅读(404)
推荐(0)
【OBB碰撞】
摘要:<1>2D OBB碰撞算法(AABB算法对比最高 最低 最左 最右就完了) <2>思路 构造OBB盒子的时候,设置角度,半宽,半高以及中心位置 每次更改盒子旋转角度计算矩形2个单位检测轴(每条轴与矩形2条边平行2条边垂直,即2条轴把矩形划分成4个等大小矩形) 方法提供: updateAngle函数:
阅读全文
posted @
2019-05-08 10:33
tianjiuwan
阅读(534)
推荐(0)
【泡泡堂】格子管理等
摘要:<1>很多人都玩过炸弹人或者泡泡堂,之前做了这个玩法,记录一下关键实现 <2>直接上Lua代码 1.维护每个格子上的物体 比如:BUFF类,宝箱,草箱,木箱,铁箱,炸弹,小怪... 用一个结构维护一个格子31*31=961,进入场景创建,离开释放掉 每个结构里面声明一张map缓存格子里面所有的物体
阅读全文
posted @
2019-05-07 15:22
tianjiuwan
阅读(509)
推荐(0)
【吃鸡】毒圈展示
摘要:<1>2种圈,1个场景,1个UI <2>场景毒圈 美术制作圆柱形网格,上下剔除,圆柱侧面面越多越好(内存渲染会多占用点) shader实现:UV动画(写得不好) <3>UI毒圈 UI有一个毒圈范围和一个安全区范围显示在地图上 试了一些办法,还是用Shader实现 计算好半径,设置Shader属性
阅读全文
posted @
2019-05-07 15:09
tianjiuwan
阅读(688)
推荐(0)
【吃鸡】客户端视野管理,管理掉落物
摘要:<1>原因: 在吃鸡场景中,有很多掉落物(每种掉落物模型各不相同),服务器在进入场景的时候推送了所有掉落物,后面服务器只做更新掉落和删除掉落操作 客户端需要对这些掉落物做视野管理,模型太多手机内存开销太大,也很可能因为内存过高崩溃 <2>思路: 把地图划分成均匀网格,每个掉落物存在网格之中,玩家每次
阅读全文
posted @
2019-05-07 15:00
tianjiuwan
阅读(223)
推荐(0)
【自走棋】曲线箭头
摘要:<1>效果: <2>思路: 使用贝塞尔曲线和LineRender
阅读全文
posted @
2019-05-07 14:48
tianjiuwan
阅读(665)
推荐(0)
【自走棋】地图格子高亮效果
摘要:<1>效果: <2>思路: 需求把地图划分成均匀网格,放置玩家到任意一个网格,显示玩家可攻击范围所有网格高亮(放置) 1.如何划分网格? 定义行和列最大数量(自走棋row=8 col=8) 定义起始位置Vector3 startPos 从起始点 向X轴正方向延伸列 向Z轴正方向延伸行 为什么单独实例
阅读全文
posted @
2019-05-07 14:41
tianjiuwan
阅读(751)
推荐(0)
【八叉树:分割3D空间】
摘要:<1>目标:使用八叉树分割3D空间,实现创建函数和插入函数 <2>思路: <3>代码: 以下树实现相关代码 以下树创建测试代码 <4>核心 创建函数中,2种创建方式,最终我们选取第二种方式创建子节点,因为我们需要更高效的插入 1.红色代码计算8个节点中心 容易理解:8个节点在3D空间中分为2层,从上
阅读全文
posted @
2019-05-07 13:46
tianjiuwan
阅读(1570)
推荐(0)
【二进制的一些操作】
摘要:<1>二进制与十进制互转 十进制转二进制 例子:13 -> 1101 13/2=6余1 6/2=3余0 3/2=1余1 1/2=0余1 那么13用二进制表示为 1101 (倒序排列余数 不足的用0补齐 00001101) 二进制转十进制 例子:1101 -> 13 可以在C#里面声明为 int nu
阅读全文
posted @
2019-05-07 11:16
tianjiuwan
阅读(487)
推荐(0)
[3Dmath]切变
摘要:<1>简述:切边是一种坐标系“扭曲”变换,非均匀地拉伸它。切变的时候角度会发生变化,但令人惊奇的是面积与体积却保持不变。基本思想是将某以坐标的乘积加到另一个上。 例如再2D中,将Y乘以某个因子然后加到X上,得到X' = X + SY 如下图 <2>给出2D切变矩阵 <3>3D切变矩阵
阅读全文
posted @
2017-08-18 17:21
tianjiuwan
阅读(568)
推荐(0)
[3Dmath]镜像
摘要:<1>镜像(也叫做反射)是一种变换,起作用是将物体沿直线(2D中)或(3D中)"翻折" <2>沿任意轴镜像的2D矩阵 <3>沿任意平面镜像的2D矩阵
阅读全文
posted @
2017-08-18 11:38
tianjiuwan
阅读(367)
推荐(0)
[3Dmath]正交投影
摘要:<1>投影意味着降维操作 <2>向2D平面投影与向任意直线投影 <3>向3D平面投影与向任意平面投影
阅读全文
posted @
2017-08-18 11:34
tianjiuwan
阅读(270)
推荐(0)
[3Dmath]缩放矩阵
摘要:<1>2D缩放矩阵:沿坐标轴和任意轴缩放矩阵 <2>3D缩放矩阵:沿坐标轴和任意轴缩放矩阵
阅读全文
posted @
2017-08-18 11:27
tianjiuwan
阅读(897)
推荐(0)
[3D数学]矩阵 2017.8.16
摘要:<1>有时候我们想对整个物体做一定量旋转,其实可以直接对物体坐标系进行相反量的旋转 比如:现在想对一个物体顺时针旋转20度,再扩大200%,,既可以对这个物体的坐标系先缩小200%,再逆时针旋转20度: 注意这里组合变换,需要以相反的顺序做变换 <2>如何看出一个矩阵的旋转缩放? 从矩阵中抽出基向量
阅读全文
posted @
2017-08-16 21:46
tianjiuwan
阅读(228)
推荐(0)
[3D数学]矩阵
摘要:<1>矩阵是3D数学的重要基础。它主要用来描述两个坐标系统间的关系,通过定义一种运算而将一个坐标系中的向量转化到另一个坐标系。龟龟 <2>向量是标量的数组,矩阵则是向量的数组 <3>矩阵维度: 一个4X3矩阵例子: 方阵:行数和列数相同的矩阵称作方阵 <4>单位矩阵: 对角矩阵:在说单位矩阵之前,先
阅读全文
posted @
2017-08-11 16:05
tianjiuwan
阅读(3982)
推荐(0)