Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 其他结构背后的选择_Unity3d_Selection_Outlining - Fatal编程技术网

Unity3d 其他结构背后的选择

Unity3d 其他结构背后的选择,unity3d,selection,outlining,Unity3d,Selection,Outlining,我们正在Unity中开发一个解剖学应用程序,用户可以在其中解剖人手模型。 我们试图找到一个好的着色器/选择工具,当用户选择(从菜单中)当前不可见的对象(在手的背面或被其他结构覆盖的手的内部)时,我们可以使用它 现在我们正在使用transparant着色器将其可视化,但此选项将在将来的其他地方使用(您将能够淡入其他结构,以便更好地查看选定结构): 因此,如果有人想知道如何解决这个问题(allready考虑过大纲/使用x射线着色器,但仍然需要先找到好的着色器,我们可以使用它进行测试),请告诉我

我们正在Unity中开发一个解剖学应用程序,用户可以在其中解剖人手模型。 我们试图找到一个好的着色器/选择工具,当用户选择(从菜单中)当前不可见的对象(在手的背面或被其他结构覆盖的手的内部)时,我们可以使用它

现在我们正在使用transparant着色器将其可视化,但此选项将在将来的其他地方使用(您将能够淡入其他结构,以便更好地查看选定结构):

因此,如果有人想知道如何解决这个问题(allready考虑过大纲/使用x射线着色器,但仍然需要先找到好的着色器,我们可以使用它进行测试),请告诉我


提前感谢您使用我的着色器,我为类似的问题使用了着色器

Shader "NameItAsYouWish" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_ColorVisible04 ("Color Visible", Color) = (1,0,0,0.3)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }

    Pass {

        Name "BASE"
        Cull Off Lighting Off ZWrite Off ZTest Greater

        Blend SrcAlpha OneMinusSrcAlpha
        SetTexture [_MainTex] {
            constantColor [_ColorVisible04]
            Combine constant
        } 
    }
    Pass {
        Material{
            Diffuse[_Color]
            Ambient [_Color]

        }
        Name "DIFFUSE"
        Cull Off Lighting On ZWrite On ZTest Less 
        SetTexture [_MainTex] {
            constantColor [_Color]
            Combine texture * primary DOUBLE
            } 
    }

 }


Fallback "VertexLit"
}

基本上,此着色器在每个着色器前面绘制其中一个过程。但请记住,并不是所有这些。您需要测试应用在隐藏部分上是否会显示其形状,如果没有,请尝试在上面的对象上使用过度着色器。

非常感谢Jerry的输入!我使用您的脚本更改了我已准备就绪的狨猴着色器的设置:

// Marmoset Skyshop
// Copyright 2013 Marmoset LLC
// http://marmoset.co

Shader "Marmoset/Bumped Specular Xray" {
Properties {
    _Color   ("Diffuse Color", Color) = (1,1,1,1)
    _ColorVisible04("Color Visible", Color) = (1,0,0,0.3)
    _SpecColor ("Specular Color", Color) = (1,1,1,1)
    _SpecInt ("Specular Intensity", Float) = 1.0
    _Shininess ("Specular Sharpness", Range(2.0,8.0)) = 4.0
    _Fresnel ("Fresnel Strength", Range(0.0,1.0)) = 0.0
    _MainTex ("Diffuse(RGB) Alpha(A)", 2D) = "white" {}
    _SpecTex ("Specular(RGB) Gloss(A)", 2D) = "white" {}
    _BumpMap ("Normalmap", 2D)  = "bump" {}


    //slots for custom lighting cubemaps
    //_DiffCubeIBL ("Custom Diffuse Cube", Cube) = "black" {}

}

SubShader {
    Tags {
        "Queue"="Geometry"
        "RenderType"="Opaque"
    }
    LOD 400
    //diffuse LOD 200
    //diffuse-spec LOD 250
    //bumped-diffuse, spec 350
    //bumped-spec 400
    Pass{

    Name "BASE"
    Cull Off Lighting Off ZWrite Off ZTest Greater

    Blend SrcAlpha OneMinusSrcAlpha
    SetTexture[_MainTex]{
    constantColor[_ColorVisible04]
    Combine constant
}
    }
    //mac stuff
    CGPROGRAM
    #ifdef SHADER_API_OPENGL
        #pragma glsl
    #endif

    #pragma target 3.0
    #pragma exclude_renderers gles gles3 metal d3d11_9x flash
    #pragma surface MarmosetSurf MarmosetDirect vertex:MarmosetVert fullforwardshadows 

    #pragma multi_compile MARMO_BOX_PROJECTION_OFF MARMO_BOX_PROJECTION_ON
    #if MARMO_BOX_PROJECTION_ON 
        #define MARMO_BOX_PROJECTION
    #endif


    #pragma multi_compile MARMO_SKY_BLEND_OFF MARMO_SKY_BLEND_ON

    #if MARMO_SKY_BLEND_ON
        #define MARMO_SKY_BLEND
    #endif

    #define MARMO_HQ
    #define MARMO_SKY_ROTATION
    #define MARMO_DIFFUSE_IBL
    #define MARMO_SPECULAR_IBL
    #define MARMO_DIFFUSE_DIRECT
    #define MARMO_SPECULAR_DIRECT
    #define MARMO_NORMALMAP
    #define MARMO_MIP_GLOSS

    //#define MARMO_GLOW
    //#define MARMO_PREMULT_ALPHA
    //#define MARMO_OCCLUSION
    //#define MARMO_VERTEX_OCCLUSION
    //#define MARMO_VERTEX_COLOR
    //#define MARMO_SPECULAR_FILTER

    #include "MarmosetInput.cginc"
    #include "MarmosetCore.cginc"
    #include "MarmosetDirect.cginc"
    #include "MarmosetSurf.cginc"

    ENDCG
}

FallBack "Marmoset/Specular IBL"
}
使用此脚本,我得到以下结果:

这是我们从一开始就想到的,非常感谢

我甚至想到了一些额外的改编allready,添加一个黑色的大纲甚至可以让它更好


现在的问题是将大纲也应用于“覆盖部分”,但我想这应该是可能的

看一看我发布的着色器,但我会告诉你,我也尝试过只显示轮廓,但没有成功。这超出了我的“着色技能”