我想知道如何在线框中查看和渲染特定的游戏对象(网格),而不是整个场景。我可以使用GL.wireframe将场景更改为线框,但问题是我只想在线框中查看和渲染某个对象(而不是整个场景)。有什么建议吗?
发布于 2015-06-03 13:52:25
使用图层。将游戏对象的图层(位于Inspector窗口右上角的下拉列表)从默认图层更改为另一个图层(您可以选择Add layer创建一个新的图层...在下拉菜单中)。
然后,创建一个新的摄影机(或选择主摄影机,这取决于您要实现的目标),并将其消隐蒙版更改为您在游戏对象中使用的层。
要绘制线框,您可以将此脚本发布到用于绘制游戏对象的相机中:
// from http://docs.unity3d.com/ScriptReference/GL-wireframe.html
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void OnPreRender() {
GL.wireframe = true;
}
void OnPostRender() {
GL.wireframe = false;
}
}根据要实现的目标,您可能需要使用两个摄影机(一个摄影机用于线框对象,另一个摄影机用于绘制场景的其余部分),在这种情况下,您可以将其中一个摄影机的清除标志设置为不清除。确保两个摄影机的深度值相同。
相机的清晰标志指示在该相机没有要绘制的像素(空白空间)的情况下发生的情况,以及当多个相机绘制到同一像素时发生的情况。
在清除标志为不清除的情况下,它不会对空白空间执行任何操作,而是让其他摄影机填充对象或背景。对于它应该绘制的像素,它将让对象的深度决定要绘制的内容,也就是说,离相机较近的对象将绘制在其他对象的顶部。
发布于 2015-06-04 01:47:22
在Unity资源存储上有一个asset,其中包含几种着色器材质,它们可以执行您所需的操作。您可以下载它,自己分析和编写着色器,或者简单地使用提供的资源。
然后,可以将着色器附加到材质,并将其附加到网格渲染器,以获得所需的效果。
https://stackoverflow.com/questions/30611743
复制相似问题