Advanced Search
Search Results
14 total results found
1. 反射探针的基础知识
反射探针捕捉其周围世界的图像,并将其存储到一个“立方图”中——一个六面的纹理,可以填充立方体的每一个面。 每个纹理的面都是正方形,且具有相同的分辨率。这意味着“512”分辨率的探针是六个512x512纹理,紧凑地组合在一起。这将占用2MB的空间和2MB的内存。 反射探针还会存储它们纹理的低分辨率版本。这些低分辨率副本被模糊处理,允许真实地表现粗糙或不平整的表面。 当场景中的物体被渲染时,它们会询问Unity“我在哪个反射探针中?”——Unity将为它们提供最接近其锚点位置的两个探针的纹理和位置,着色器将在它们...
2. 如何设置反射探针
反射探针捕捉其周围环境的图像到一个纹理中。这意味着几件事: 分辨率更高的探针图像更清晰,但由于包含六个纹理,体积也大得多。 纹理是静态的。它不能改变。如果周围环境变化,它不会更新。 它们只能代表一个单一的视角,这个视角会移动来给出深度的错觉。 尽管如此,如果探针大致符合该区域的照明,没人会注意到一个不准确的探针。 所以,下面是我确定如何在场景中放置探针的方法: 1. 基础反射探针 即使你没有反射探针,Unity也会捕捉天空盒材质到一个反射探针,并默认分发给所有对象。 Unity的天空盒真的代...
探针技巧与窍门
1. 超采样探针 在低分辨率下烘焙探针时,结果可能看起来有点低分辨率。这是因为探针在保存前是在那个低分辨率下渲染的。如果你在更高的分辨率下烘焙探针,然后将纹理的最大尺寸设置得较低,Unity首先会在高分辨率下渲染探针,然后压缩它——在此过程中执行非常高质量的抗锯齿。 2. 点光源的镜面高光与镜面高光探针 点击这里下载镜面高光探针 当你为场景从点光源/聚光灯烘焙光照时,你通常会发现结果缺少实时光照时的那些镜面高光。 这是因为点光源在反射探针渲染的环境中没有物理存在,如果点光源所在的位置没有亮的物体,...
1. 遮挡剔除的基本原理
在 Unity 场景中,遮挡剔除通过将世界划分为许多个越来越小的空间区块来实现的。在这些数据中,系统会记录每个区块中的哪些物体是可见的,哪些是不可见的。Unity 正是利用这些数据来“隐藏”那些被其他物体遮挡的游戏对象。 需要明确的是,遮挡剔除只会在视觉上隐藏物体。即使物体被隐藏,它们的状态也不会改变,大部分功能仍然会继续运行,因此遮挡剔除主要用于减少绘制调用 (Draw calls) ,而不是完全移除掉被遮挡的物体。此外,无论物体距离观察者有多远,Unity 都将不会隐藏它判断为可见的对象。所以我们可以看出,距...
2. 遮挡剔除如何影响物体
遮挡剔除对静态对象(如地图元素)和动态对象(如玩家和可拾取物品)的处理方式有所不同。 静态对象既可以隐藏其他物体,也可以被其他物体隐藏。(在某些情况下,你可能不希望静态对象同时具备这两种特性。)这些对象的遮挡信息会在运行前被预烘焙,而在运行时无法更改。 动态对象则无法隐藏它们背后的物体,但它们可以根据一种粗略的特殊计算而被其他物体隐藏,这种计算会判断它们是否位于某个静态对象之后。 Unity 通过检查对象上的静态标志来确定遮挡剔除将会如何影响它们。遮挡剔除考虑了以下三种不同的情况: 静态遮挡物。...
3. 如何设置场景以实现遮挡剔除
默认情况下,Unity 会将整个场景放入一个称为 视图体积(View Volumes)的大空间块中。 通过在场景中划定特定的 遮挡区域(Occlusion Area),我们可以让 Unity 仅在这些区域内进行遮挡数据的计算,从而大幅降低所需处理的遮挡数据量。如果您的场景被划分为若干独立区块,您可以使用遮挡区域来逐个覆盖这些区块,而非让 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 硬件发生了许多变化(译者注:这里大概...