2017-07-01 39 views
-1

我對shaderlab的新功能比較陌生。我試圖扭曲頂點,使它們向後推並朝向相機,就像從45度角看相機一樣。我從遊戲中複製效果以獲得樂趣。 This是用於影響shaderlab中的頂點變形

香港專業教育學院試圖implenting代碼爲着色器腳本,像這樣的代碼:

float4 vert(appdata v){ 

      float3 position = mul(unity_ObjectToWorld, v.vertex).xyz; 

      float y = position.y; 
      float z = position.x; 

      float3 parentTranslation = ParentMatrix._m30_m31_m32; 

      position -= parentTranslation; 
      position.z += AlternateLayeringScale; 
      position.z -= y; 
      position.y += position.z; 
      position += parentTranslation + float3(0,parentTranslation.z,0); 

      return position; 

     } 

但是我得到一個錯誤,指出它不能從FLOAT3轉換爲FLOAT4,我不知道怎麼樣它被實現了

+0

@CamiloTerevinto不是真正的C++。 Shaderlab。 Unity也支持GLSL。 – Programmer

+1

@Programmer修正了它,認爲它是C++。反正離c#還很遠 –

+0

沒錯。它遠離C# – Programmer

回答

0

第四部分是'w'也被稱爲逆拉伸因子。從vec4轉換到vec3最好做position.xyz/position.w並把它放回vec4,你可以寫return fixed4(position, 1)

+0

我嘗試了代碼像[so](http://imgur.com/a/vLei2),但這是[遠](http://imgur.com/a/fc7ax) – AlexNotTheLion