Advanced Search
Search Results
14 total results found
反射探针的基础知识
想象反射探针是一个360度拍照的摄像头,它会拍下周围环境的六个面,拼成一个立方体盒子般的贴图(Cube Map)。当如你设置512分辨率时,相当于6个 512x512 像素的照片——六个面拼起来就像展开的纸盒,不过 Unity 会自动帮我们整理这些图片。 系统不仅存高清版本,还会自动生成"打了马赛克"的低清版。这些模糊处理的图片可不是偷懒,而是专门用来表现像磨砂金属、粗糙墙面这种不光滑材质的反射效果,这样看起来更真实。 实际运行时,物体会找离自己最近的2个反射探针,根据距离远近自动混合两个探针的效果。如果周围只...
如何设置反射探针
反射探针通过捕捉环境生成立方体贴图时需注意: 分辨率取舍:高分辨率(如 512x512)能够带来清晰反射,但六个面组合后文件大小暴增 静态限制:烘焙后纹理固定不变,环境变化时不会自动更新 视觉欺骗:通过单一视角模拟立体空间感(类似全景照片原理) 容错机制:只要反射颜色/明暗与场景匹配,轻微位置偏差不易察觉 下面是我确定如何在场景中放置探针的方法。 基础反射探针 就算你不放任何探针,Unity也会用天空盒作为默认反射贴图。但就像用别人的自拍当镜子——效果通常很假!...
探针技巧与窍门
超采样探针 当使用低分辨率烘焙反射探针时,可能会出现锯齿或模糊的问题。这是因为探针直接以低分辨率渲染并保存。通过超采样技术,可以显著改善这一情况:当你在更高的分辨率下烘焙探针,然后将纹理的最大尺寸设置得较低时,Unity首先会在高分辨率下渲染探针,然后压缩它——在此过程中执行非常高质量的抗锯齿。 点光源的镜面高光与镜面高光探针 点击这里下载镜面高光探针 在烘焙光照场景中,点光源/聚光灯的镜面高光经常丢失,这是因为: 点光源在反射探针中没有物理实体 如果光源附近没有高亮物体,反射中不会...
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 硬件发生了许多变化(译者注:这里大概...