2017-09-11 4 views
0

ユニティ5のステンシルシェイダー(バージョン2017.1.1)で作業を開始しました。トップダウンゲームで視線マスクを作成しようとしています。キャラクターの視界を遮っていません)私はこの問題に関するYouTubeチュートリアル(https://www.youtube.com/watch?v=xkcCWqifT9M&t=185s)に従っていましたが、彼と全く同じコードを使用していたにもかかわらず、私のプロジェクトがうまく動作しませんでした。ユニティシェイダーステンシルの問題

私はシェーダの一部は、シェーダが画面

に私の表示方法に影響を持っているように見えるZTEST、ColorMaskとステンシルコマンドやステンシル内のステートメントのなしの多くを含む、さまざまな値を変更しようとしました2つのシェーダがあります:1つは、プレーヤーが見ることができるものを表すメッシュに適用されます 2つ目は、プレーヤーの視線メッシュで覆われるまで非表示にされるオブジェクトに適用されます これはラインに適用される最初のシェーダです視野メッシュ

Shader "Custom/StencilMask" { 
Properties { 
    _Color ("Color", Color) = (1,1,1,0.2) 
    _MainTex ("Albedo (RGB)", 2D) = "white" {} 
    _Glossiness ("Smoothness", Range(0,1)) = 0.5 
    _Metallic ("Metallic", Range(0,1)) = 0.0 

} 
SubShader { 
    Tags {"Queue"="Geometry-100" "RenderType"="Opaque"} 

    LOD 200 
    ColorMask 0 
    ZWrite off 

    Stencil { 
     Ref 1 
     Pass replace 



    } 

//このシェーダのこのポイント以降のものはすべて標準のユニティシェーダですが、私は全く編集していません

//最初のシェーダで公開されるオブジェクトには2番目のシェーダが適用されます:

Shader "Custom/StencilObject" { 
Properties { 
    _Color ("Color", Color) = (1,1,1,1) 
    _MainTex ("Albedo (RGB)", 2D) = "white" {} 
    _Glossiness ("Smoothness", Range(0,1)) = 0.5 
    _Metallic ("Metallic", Range(0,1)) = 0.0 
} 
SubShader { 
    Tags { "RenderType"="Opaque" "Queue"="Geometry+10" } 
    LOD 200 

    Stencil{ 
     Ref 1 
     Comp equal 

    } 

私は任意のヘルプは非常に高く評価されるだろうシェーダに新しいブランドだけど、私はまた、個人的な団結を使用していますが、ステンシルシェーダはユニティProの機能やない

答えて

0

つある場合、私は知りません潜在的な原因は、ステンシルが遅延レンダリングで正しく機能しないことです。遅延レンダリングパスで描画オブジェクトの

https://docs.unity3d.com/Manual/SL-Stencil.html

ステンシル機能は、ベースパスと点灯中ステンシルバッファを通過するように、幾分制限されているが、他の目的に使用されます。これらの2つのステージの間、シェーダで定義されたステンシル状態は無視され、最終パスでのみ考慮されます。そのため、ステンシルテストに基づいてこれらのオブジェクトをマスクすることはできません[...]

+0

ヘルプメイトに感謝!私はそれを非延伸レンダリングパスでステンシルに強制する方法を知っていますか? –

+0

私はあなたのコードを使用して(いくつかの基本的な標準とアンライドシェイダーにコピーを貼り付けます)、それは期待通りに機能します。 StencilMask.shaderで 'ZWrite Off':大文字でO ' #pragma surface surf StencilObject.shaderの標準フルフォワードシャドウaddshadow ':シャドーに** addshadow **を追加する必要がありました正しく動作する –

+0

また、遅延レンダリングモードで正常に動作しなくなります。 –

関連する問題