刷 Youtube 的时候偶然看到了一个卡通水的实现,原 Shader 是手撸的,而我使用 Unity ShaderGraph 来复现它。 原理 通过 Camera 深度图获取不透明队列的场景深度,其与水面片元深度的差作为水深依据 通过噪声图渲染波浪,通过 UV 扰动实现波浪动画 实现 1. 获取水的“深度”……

简单记录一下最近碰到的两个简单 Shader 的实现。 单篇篇幅太短,遂两篇合并成一篇文章。 手柄穿墙破洞 该效果常见于 XR 厂商的防护中心软件(或称安全区、游玩区域等),主要特点: 默认情况下,显示技美的动态墙面特效(水波纹、呼吸云云) 当手柄/手/头等靠近墙面时,墙面会开一个洞,并辅以红色警告提示 离墙……

在玩《战地 2042》时发现一个模拟 RGB 像素显示的大屏幕:远观内容为完整图像,贴近观察是发光的 RGB 像素点。该效果很有趣,在 Unity 中复现一个玩玩。 实现的效果 截图 动图(GIF) 本文包含的内容 本文用 Unity 实现,但部分内容参考自 Youtube/Jam2go 的 Unreal E……

前言 很多小白用户会有一个误区:看到某些 VR(or MR/XR/各种 R)厂商宣传手势追踪,总以为它和 PC 鼠标指针一样,能够无缝使用在所有存量 VR 应用中。 然而,和 2D 窗口不同,目前 VR 应用及 VR OS 间并没有(也无法有)一个全局的“鼠标指针”(Apple Vision Pro 的 Vo……

由问题“URP 下通过右键菜单创建的 Shader 不显示任何内容”发散而来,引申出对 URP DepthPrepass 的讨论。 上述问题原因 URP 默认 Pipeline 下,渲染不透明物体前,如有下述情况之一,会先执行深度写入 Pass: 有RenderFeature需要Depth Texture/N……

很久之前在某 3D 滑动列表中用过模板测试(Stencil Test),这次回顾,尝试用它搞一个双面穿越门出来。 效果 原理 把一个值写入 Stencil Buffer 中,后续同位置的其他片元渲染时,若开启了模板测试,将会把自身的预设值与 Stencil Buffer 中的值对比(即 Test),基于比较结……

最近对 SteamVR 媒体播放器比较感兴趣,简单记录下其技术细节和实现方式(顺带看看它和之前本人从业做过的播放器有何不同)。 前情提要 这是关于媒体播放器分析的最后一篇文章,前两篇文章如下: SteamVR媒体播放器分析(一):UI 渲染与用户交互 主要讲述了播放器如何做到同一套 UI 在 Desktop ……

在 Youtube 上刷到了 Unity Japan meetup 2019 的分享视频,其中 ShaderGraph 的分享非常不错,跟着学习下。 前言 前文:ShaderGraph能量护盾(一):接触面检测及边缘发光 Shader 主要包含如下内容: 接触面检测 边缘发光 UV扰动及贴图混合 空间扭曲(或……

最近对 SteamVR 媒体播放器比较感兴趣,简单记录下其技术细节和实现方式(顺带看看它和之前本人从业做过的播放器有何不同)。 前文:SteamVR媒体播放器分析(一):UI 渲染与用户交互 简述 文件浏览器用到的东西不多,文件访问基于 C# System.IO,拖拽外部媒体播放基于 win32 Native……

最近对 SteamVR 媒体播放器比较感兴趣,简单记录下其技术细节和实现方式(顺带看看它和之前本人从业做过的播放器有何不同)。 这是第一篇笔记,主要描述了 SteamVR 媒体播放器的 UI 渲染和交互事件响应的实现。 本篇只讨论 UI 的渲染,至于视频 3D 渲染及视频 2D 窗口镜像、文件列表等,后续文章……

想在 Unity 中显示 Android 界面,但又不想导出 Unity 工程在 Android Studio 里编辑,于是探索将 Activity 导出到 AAR 包,用 Unity 编译打包的方法。 说明 本文介绍了通过 Unity Editor 打包含 Android Activity 在内的多 Act……