情況比較複雜。首先假如你的顯示卡支不支援你用的Shader,例如比較老的顯示卡是Opengl2.0,但是你使用了3.0的特性就會無法正確顯示。
Unity針對這種情況提供了SubShader的解決方案,如果別人的材質做的比較好,針對不同平臺版本都寫了適配的Shader那就沒問題,只是可能會出現顯示效果不同的情況。
另外Unity還有FallBack機制,加入所有的SubShader都不支援,還可以定義一個最簡單的Shader,自動切換到這個Shader。例如:Fallback "Diffuse" 這樣的話顯示效果可能就大不一樣了。
此外Shader還只吃LOD的功能,就是同一個Shader可以寫多份效果,效果越好開銷越高。使用者可以根據玩家裝置或者一些規則設定使用哪個級別的Shader(例如陰影效果,可以有靜態陰影,動態陰影,軟陰影等),例如:LOD 200,這種情況下,你的設定就會影響到你使用哪個級別的Shader了。
排除以上的情況,你在專業顯示卡上的材質效果和你的顯示卡Shader計算上是一致的效果是接近的,只是幀率會不一樣。
說到接近是因為不同顯示卡之間很多引數驅動甚至硬體也會有一些區別,例如完全相同的材質N卡和A卡表現會有不同,同一個長的顯示卡不同的驅動版本不同的型號也會有所區別,此外 相同的顯示卡,使用者的設定也會有較大的影響,例如色調,亮度,對比度等等。排除了顯示卡,顯示器的設定也會對材質效果有影響。
情況比較複雜。首先假如你的顯示卡支不支援你用的Shader,例如比較老的顯示卡是Opengl2.0,但是你使用了3.0的特性就會無法正確顯示。
Unity針對這種情況提供了SubShader的解決方案,如果別人的材質做的比較好,針對不同平臺版本都寫了適配的Shader那就沒問題,只是可能會出現顯示效果不同的情況。
另外Unity還有FallBack機制,加入所有的SubShader都不支援,還可以定義一個最簡單的Shader,自動切換到這個Shader。例如:Fallback "Diffuse" 這樣的話顯示效果可能就大不一樣了。
此外Shader還只吃LOD的功能,就是同一個Shader可以寫多份效果,效果越好開銷越高。使用者可以根據玩家裝置或者一些規則設定使用哪個級別的Shader(例如陰影效果,可以有靜態陰影,動態陰影,軟陰影等),例如:LOD 200,這種情況下,你的設定就會影響到你使用哪個級別的Shader了。
排除以上的情況,你在專業顯示卡上的材質效果和你的顯示卡Shader計算上是一致的效果是接近的,只是幀率會不一樣。
說到接近是因為不同顯示卡之間很多引數驅動甚至硬體也會有一些區別,例如完全相同的材質N卡和A卡表現會有不同,同一個長的顯示卡不同的驅動版本不同的型號也會有所區別,此外 相同的顯示卡,使用者的設定也會有較大的影響,例如色調,亮度,對比度等等。排除了顯示卡,顯示器的設定也會對材質效果有影響。