很久之前某 VR 项目需要用手柄控制物体旋转、缩放等功能,并且要求有 MRTK 一样的控制框。简单说说我显示这个框以及计算缩放、旋转的思路。 画边框和控制点 生成的控制框分为两部分,一部分是线条,另一部分是供拖拽使用的控制点。 当物体发生缩放、旋转操作时,线条与控制点实际尺寸不变(即边框的物理大小不变),姿态……
Unity物体缩放旋转拖拽控制框(支持VR)
基于Unity的3d力导向图排布算法(ComputeShader)
之前需要做拓扑排布与流量展示,我研究了两种算法,其中一种是力导向图排布算法。我简单说说力导向图的思路以及为什么要使用 ComputeShader。 原理展示 我使用立方体代表节点,下面是两种算法的排布预览,本文只讨论后者。 1. 基于领域的排布图(本文不讨论) 2. 3D力导向排布图(排布中,暂未达到最优位置……
ComputeShder小例子之粒子喷泉
这是一个 ComputeShader 结合 Shader 实现粒子喷泉的例子。 通过 ComputeShader 计算喷泉粒子的位置,并通过 Shader 将其绘制出来。 效果 原理 生成指定数量具有随机速度的点数据,ComputeShader 中将其初速度与重力加速度叠加,并根据存活时间粗略计算其位置,之后……
ComputeShader小例子之下雪
这是一个 ComputeShader 结合 Shader 实现下雪的例子。我们通过 ComputeShader 并行计算每个雪粒子的位置,并通过 Shader 将其绘制出来。 效果 原理 通过 ComputeShder 并行计算每个粒子位置,并将 Buffer 与 Shader 共享,Shader 在对应位置……
GTA5佩里科岛连线在线计算小工具(信号箱前置侦察)
最近在刷 GTA5 佩里科岛抢劫,在前置任务中需要对岛上信号塔进行侦察,侦察方式为入侵信号箱连线,计算三个数与右侧的乘积和,加起来满足目标分数。 本人玩游戏时注意力分配不合理,经常一时脑子转不过来导致计算出错。为了方便计算,特地写了个在线小工具使用。 预览 访问 https://www.azimiao.com……
VRTK解决多Canvas射线穿透问题(WorldSpace)
很久之前写过一篇关于 VRTK 多 Canvas 画布重叠手柄射线穿透问题的文章,当时才疏学浅,没有找到解决方案。最近虽然不干 VR 了,但偶然研究了下,找到了比较完美的解决方案。 2023 年补充 你的需求真的非 VRTK 不可么? 都 2023 年了,别再抱着 VRTK 不放了,你现在既有现成的 XRI ……
Unity使用VisualStudio查找死循环代码段
最近在写 BUG 时经常发现 Unity 编辑器停止响应或卡死不动,凭借多年写 BUG 的经验判断,肯定是哪里有个死循环卡住了主线程。 模拟死循环 死循环(endless loop)是一种奇特的生物,它终日潜伏在年久失修的历史代码中,静静地等待出山的机会。 某天,当你无意间修改了某个参数,潜伏已久的死循环就立……
寻找图中两点间所有路径的实际应用
深夜睡不着,开始回忆之前做过的东西。恰巧知乎刷到了深度优先和广度优先的讨论,我想起了之前项目中一个不错的应用案例。 需求 模拟机电实验室,提供数量一定的电源、闸刀开关、电机启动器、滑动变阻器、电阻、电压表、电流表、用电负载等元件,元件有接线柱,每两个接线柱间自由连线。用户进入虚拟实验室,按电路图连接所需的元件……
C#监听List和Dictionary数据变化(修改清空等)
之前本职工作是 Unity 开发,经常需要监听列表或字典的数据变化来更新 UI。本文介绍两种监听方法,其中使用 new 修饰符的方法比较常用。 new 关键字 new除了调用构造方法创建对象、泛型约束外,还可以作为修饰符使用,其作用是显式隐藏从基类继承的成员。 //To hide an inherited m……
Unity反射式红点瞄准镜Shader原理分析
项目上要实现 Unity 真实瞄准镜的功能,其中之一就是反射式红点瞄准镜。本文分析的 Shader 以模拟反射式瞄准镜光学原理的方式实现了较为真实的效果。 效果图 该图展示了从不同角度观看红点瞄准镜的效果。 红点瞄准镜原理 反射式红点瞄准镜的特殊之处在于不管眼睛和照门等是否三点一线,只要看到红点套在目标上,就……
Unity由灰度高度图生成Mesh并计算UV
偶然看到一个网站有三维地形展示栏目,描述说用 Unity + 灰度图做的,看着挺有意思,就顺便研究下相关的东西。 效果图 我没有对应的实景贴图,因此使用了粒子的 Shader 做颜色渐变用于演示。 基础知识 1.点线面及Mesh 点构成线,线构成面,面及其相关顶点、额外信息等构成 Mesh。在现代 3d 渲染……
Unity HDRP VR 视觉模糊拖影问题(Motion Blur)
将 VR 集成进一个 HDRP 项目中,发现快速移动头盔时,画面出现视觉模糊拖影。在 2d 屏幕上该效果表现不错,但在 VR 中会让人迷惑,且加重 3d 眩晕。 现象 由于双眼组合的效果及 VR 头盔显示器效果无法截屏,故以 2d 屏幕截图代替。 静止不动情况 快速晃动视角的情况 可以发现, HDRP 默认情……