編程中遇到的問題-too many texture interpolators would be used for ForwardBase pass

今天在進行地形着色器紋理混合的編程過程中,出現了一個報錯
這裏寫圖片描述
後來才發現是,因爲在腳本中Input裏設置的材質的uv變量過多,當前版本的shader model不支持造成的。

將shader model改爲更高的版本即可解決。比如我現在用的#pragma target 3.0不支持3個材質,改爲#pragma target 4.0就行了。相對應的,target數目寫成自己需要的就好了。

如果非要用#pragma target 3.0,只能通過共用uv_MainTex或者使用屏幕座標來解決了。

默認情況下,Unity將着色器編入大致着色器模型2.0等效項。#pragma target 4.0 - 編譯爲DX10着色器模型4.0。 目標目前僅由DirectX 11和XboxOne / PS4平臺支持。
請注意,所有類似OpenGL的平臺(包括移動設備)被視爲“能夠使用着色器模型3.0”。WP8 / WinRT平臺(DX11功能級別爲9.x)被視爲僅能夠使用着色器模型2.0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章