Advanced Search
Search Results
14 total results found
反射探针的基础知识
想象反射探针是一个360度拍照的摄像头,它会拍下周围环境的六个面,拼成一个立方体盒子般的贴图(Cube Map)。当如你设置512分辨率时,相当于6个 512x512 像素的照片——六个面拼起来就像展开的纸盒,不过 Unity 会自动帮我们整理这些图片。 系统不仅存高清版本,还会自动生成"打了马赛克"的低清版。这些模糊处理的图片可不是偷懒,而是专门用来表现像磨砂金属、粗糙墙面这种不光滑材质的反射效果,这样看起来更真实。 实际运行时,物体会找离自己最近的2个反射探针,根据距离远近自动混合两个探针的效果。如果周围只...
如何设置反射探针
反射探针通过捕捉环境生成立方体贴图时需注意: 分辨率取舍:高分辨率(如 512x512)能够带来清晰反射,但六个面组合后文件大小暴增 静态限制:烘焙后纹理固定不变,环境变化时不会自动更新 视觉欺骗:通过单一视角模拟立体空间感(类似全景照片原理) 容错机制:只要反射颜色/明暗与场景匹配,轻微位置偏差不易察觉 下面是我确定如何在场景中放置探针的方法。 基础反射探针 就算你不放任何探针,Unity也会用天空盒作为默认反射贴图。但就像用别人的自拍当镜子——效果通常很假!...
探针技巧与窍门
超采样探针 当使用低分辨率烘焙反射探针时,可能会出现锯齿或模糊的问题。这是因为探针直接以低分辨率渲染并保存。通过超采样技术,可以显著改善这一情况:当你在更高的分辨率下烘焙探针,然后将纹理的最大尺寸设置得较低时,Unity首先会在高分辨率下渲染探针,然后压缩它——在此过程中执行非常高质量的抗锯齿。 点光源的镜面高光与镜面高光探针 点击这里下载镜面高光探针 在烘焙光照场景中,点光源/聚光灯的镜面高光经常丢失,这是因为: 点光源在反射探针中没有物理实体 如果光源附近没有高亮物体,反射中不会...
1. 遮挡剔除的基本原理
Unity 场景中的 遮挡剔除(Occlusion) 是一种数据处理技术,它将场景划分为若干空间块,每个空间块又包含更小的子空间块。在每个划分单元中,会记录该视角下可见与不可见对象的相关数据。Unity 通过这些数据判断对象是否需要渲染,进而隐藏无需显示的内容。 需重点注意:遮挡剔除仅作用于视觉层面—— 大多数对象即便被隐藏,其逻辑仍会继续运行。因此,遮挡剔除的核心用途是 减少绘制调用(draw calls) 以优化性能。此外,Unity 只会隐藏其判定为不可见的对象,无论该对象距离多远;也就是说,遮挡剔除与距离...
2. 遮挡剔除如何影响物体
遮挡剔除(Occlusion Culling)会分别处理 静态对象(static,如地图)和 动态对象(dynamic,如玩家、可拾取物品),两者的遮挡规则存在差异: 静态对象 既可以遮挡其他对象,也可以被其他对象遮挡(实际开发中,你未必希望静态对象同时具备这两种特性)。它们的遮挡信息会被烘焙到数据中,运行时无法修改。 动态对象 无法遮挡其后方的对象,但会通过 “是否处于静态对象后方” 的粗略计算来判断是否需要隐藏。 Unity 通过对象的 静态标记(Static flags) 确定遮挡剔除对其的作用...
3. 如何设置场景以实现遮挡剔除
默认情况下,Unity 会将整个场景纳入一个大型空间单元,称为 视景体(View Volumes)。 若在场景中放置 遮挡区域(Occlusion Area),Unity 仅会计算该区域内部的遮挡数据,从而大幅减小遮挡数据量。如果你的场景被拆分为多个独立区域,建议为每个区域添加遮挡区域,而非让 Unity 将整个场景作为单个大视景体计算。 遮挡剔除的相关设置可通过两种方式配置: 对象的 静态标记(Static flags); Unity 编辑器中的 遮挡窗口(Occlusion window)。 ...
4. 案例研究:世界设计实用技巧
《The Devouring (吞噬者)》是 VRChat 中一个利用遮挡剔除技术以最大化 Unity 性能的大型地图。以下是其开发者的一些建议: 不要忘记,遮挡是使用不透明的网格渲染器作为遮挡物来计算的。透明材料不会产生遮挡效果。有复杂的边缘的游戏对象是不利于遮挡剔除的。 对于大型且复杂的世界,尤其是那些被划分为多个“区域”的世界,开发者建议使用大型遮挡方块来分隔这些区域。这些遮挡方块应当设置在 EditorOnly 模式下,这样它们在游戏运行时不会被渲染,但仍然会对烘焙过程产生影响。 对于大型且复杂的...
5. 其他说明
遮挡门 遮挡门是一种可以自由开启或关闭的遮挡机制,它能够影响遮挡剔除的效果。在你的场景中,如果有大型的可开闭物体,比如一扇门或者一个可切换的物体,你可以在它的旁边放置一个遮挡门。当这个遮挡门关闭时,你可以相应地激活或关闭遮挡门,以此来享受遮挡剔除带来的性能提升。 参考资料 特别感谢Fionna提供《The Devouring(吞噬者)》遮挡的详细信息。更多的细节在VRCPrefabs TLX的视频中有详细展示 想了解更多关于遮挡剔除的工作原理,请尝试查阅 Unity 文档。 确实,初次接触遮挡门户这一概念...
简介
Unity 的标准着色器(Standard Shader)在 VRChat 中一直是备受误解和争议的一部分。标准着色器提供了相当逼真的外观效果,这要归功于它基于物理规则的渲染方式。然而,它也存在一些易于混淆的术语,比如那些无法区分“光滑度”和“金属度”的人可能会对其感到困惑。 关于标准着色器,有个重要的点要注意:它遵循基于物理规则的渲染(PBR)逻辑。PBR 的目标是让不同光照条件下的视觉效果看起来更优雅、更逼真。这还意味着材质的外观是符合能量守恒的——它们不会反射比入射更多的光线。光线会按照经过精心调整的算法分...
贴图纹理的种类
程序员之间流行着这样一句话:“输入的是垃圾,输出也会同样是垃圾”。如果您不知道自己给着色器输入的东西是什么,您最终也只会得到糟糕的效果。那么,标准的着色器支持哪些不同类型的贴图输入?它们各自的作用又是什么呢?让我们来找出答案! 漫反射/基础色(Albedo/Diffuse) 首先,让我们来谈谈 基础色(Albedo)。基础色虽然听起来很“基础”,但它其实非常重要,因为它是您材质球的主要颜色来源!它在其他游戏引擎里可能被称为 颜色、主色 或 漫反射贴图。或者更进一步来说,Alb...
贴图案例
这些贴图看起来怎么样?以下是一个布料材质的例子,最左侧是使用Materialise渲染出来的效果,然后往右依次是基础色、法线贴图、高光贴图、光滑度贴图和遮挡贴图。 您可以看出这块布料的质感粗糙,略带光泽,而且在褶皱处具有阴影。 现在,让我们将其与同一个材质球的金属物件部分进行比较。 您会发现它的高光贴图和基础色的中心区域都具备光亮的颜色,最终渲染的效果也非常平滑和光亮。请注意观察反射效果的颜色是如何传达金属质感的。 最终的渲染效果...
为标准着色器制作高光/金属度贴图
在使用 标准着色器(Standard) 时,推荐将 金属度贴图(metallic) 和 光滑度贴图(smoothness) 合并为同一个贴图文件。此外,遮挡贴图(occlusion) 和 细节遮罩(detail mask)也可以被整合为同一个贴图文件,这么做可以节省内存,是一个很好的优化方法。 作为参考,红色通道表示 金属度(Metallic),绿色通道表示 遮挡贴图(Occlusion),蓝色通道表示 细节遮罩(Detail Mask),透明通道表示 光滑度(Smoothness)。(译者注:这些...
使用 Materialize 通过现有素材创建各种贴图
对于世界创作者来说,Materialize 是一个非常出色的工具。它能够通过简单的拖放图片素材,并进行一些点击和调整,即可创建出各种纹理贴图! 这些纹理贴图全都都源自同一张图像,超级神奇!您可以在Bounding Box Software网站上下载 Materialize,并且网站还提供了一些有用的教程,帮助您快速入门!并且,由于您已经读过了这篇文档,说不定已经掌握了使用 Materialize 制作贴图的能力呢! Materialize 最适合创建世界场景中的平铺...
结论和其他提示
标准着色器在 VRchat 中被误解了。许多人抱怨该着色器产生的糟糕视觉效果,但实际上它只是一个复杂工具,很容易被错误使用。正确使用这个着色器,可以获得良好的效果,并且运行高效、易于调整。对于人物模型来说,它是比大多数人认为的更好的选择,对于追求 CG 风格和现实主义风格的项目来说,它肯定比平面着色器更好。 Filamented 着色器 值得注意的是,标准着色器早在2015年就已被引入 Unity,距今已过去了许多年。与此同时,着色技术和 GPU 硬件发生了许多变化(译者注:这里大概...