2016-08-03 8 views
-5

Как я могу добавить Texture к следующему шейдера задается Oculus API для увядающей:Добавить текстуры для Не горит Transparent Color Shader

Shader "Oculus/Unlit Transparent Color" { 
Properties { 
    _Color ("Main Color", Color) = (1,1,1,1) 
    _MainTex ("Texture", 2D) = "white" {} // I added this property to apply Texture. Where can I use it? 
} 

SubShader { 
    Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} 
    LOD 100 
    Fog {Mode Off} 
    Cull Off 
    ZWrite Off 
    Blend SrcAlpha OneMinusSrcAlpha 
    Color [_Color] 

    Pass {} 
} 
} 
+11

** Обо всех downvoters ** Если вы уверены, что _this вопрос не показывает исследовательских усилий , это неясно и не полезно. Тогда вы должны это обосновать, добавив правильный комментарий. Если вы голосуете за вопрос из-за эффекта _meta effect_, и вы не можете уменьшить ответ, потому что вы не хотите потерять репутацию, тогда такое поведение стада неприемлемо. –

ответ

1

Как xyLe_ указывает в своей post, в Pass{} блоке я добавил следующий код и он работал:

SetTexture [_MainTex] { 
      constantColor [_Color] 
      Combine texture * primary DOUBLE, texture * constant 
     } 
+22

Вы должны были правильно пометить свой ответ. Если ему не хватало всего, что вам нужно было только сказать ему, или добавить его в редактирование. – Will

+1

Этот ответ был обсужден на мета: https://meta.stackoverflow.com/questions/332723/answer-your-question-copying-an-answer-and-mark-yours-as-accepted – user000001

29

Вы можете использовать свойство, которое вы добавили в Pass {}, который должен содержать, по крайней мере, вершины и фрагментарный шейдер (или поверхностный шейдер).

На перевале вы определяете sampler2D с тем же именем, что и вы, поэтому вы можете использовать его в своих шейдерных функциях.

Есть некоторые примеры шейдеров в unitys документации: https://docs.unity3d.com/Manual/ShaderTut2.html
https://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html

Редактировать
Существует также пример для шейдеров, которые структурированы как ваша:
https://docs.unity3d.com/Manual/ShaderTut1.html
Согласно этому, вы может добавить что-то наподобие

SetTexture [_MainTex] { 
    // some properties 
} 

Так же, как настройка цвета. (Извините, я еще не использовал шейдеры, структурированные таким образом, только вершинные/фрагментарные шейдеры, поэтому вам придется попробовать, если они будут работать и/или прочитать примеры, предоставленные единством, или подождать другого ответа от кого-то, у кого больше опыта:))