首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Unity3D中仅显示和渲染线框中的特定对象

在Unity3D中仅显示和渲染线框中的特定对象
EN

Stack Overflow用户
提问于 2015-06-03 13:45:47
回答 2查看 11.6K关注 0票数 8

我想知道如何在线框中查看和渲染特定的游戏对象(网格),而不是整个场景。我可以使用GL.wireframe将场景更改为线框,但问题是我只想在线框中查看和渲染某个对象(而不是整个场景)。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-03 13:52:25

使用图层。将游戏对象的图层(位于Inspector窗口右上角的下拉列表)从默认图层更改为另一个图层(您可以选择Add layer创建一个新的图层...在下拉菜单中)。

然后,创建一个新的摄影机(或选择主摄影机,这取决于您要实现的目标),并将其消隐蒙版更改为您在游戏对象中使用的层。

要绘制线框,您可以将此脚本发布到用于绘制游戏对象的相机中:

代码语言:javascript
复制
// 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;
    }
}

根据要实现的目标,您可能需要使用两个摄影机(一个摄影机用于线框对象,另一个摄影机用于绘制场景的其余部分),在这种情况下,您可以将其中一个摄影机的清除标志设置为不清除。确保两个摄影机的深度值相同。

相机的清晰标志指示在该相机没有要绘制的像素(空白空间)的情况下发生的情况,以及当多个相机绘制到同一像素时发生的情况。

在清除标志为不清除的情况下,它不会对空白空间执行任何操作,而是让其他摄影机填充对象或背景。对于它应该绘制的像素,它将让对象的深度决定要绘制的内容,也就是说,离相机较近的对象将绘制在其他对象的顶部。

票数 9
EN

Stack Overflow用户

发布于 2015-06-04 01:47:22

Unity资源存储上有一个asset,其中包含几种着色器材质,它们可以执行您所需的操作。您可以下载它,自己分析和编写着色器,或者简单地使用提供的资源。

然后,可以将着色器附加到材质,并将其附加到网格渲染器,以获得所需的效果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30611743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档