Cách tôi sẽ làm điều này dựa trên các bản đồ kết cấu bạn đang áp dụng cho các đơn vị. Đối với hầu hết mọi thứ, bạn sẽ có một số khu vực cần được pha màu và một số khu vực thì không. Vì vậy, ví dụ, bạn có thể có một chiếc xe tăng bình thường nhưng bạn chỉ muốn thay đổi màu sắc của một số cờ.
Nếu bạn vẽ kết cấu như thể các vùng màu là thang độ xám, thì bạn có thể sử dụng kênh alpha để chỉ định vùng nào cần được tô màu.
Vì vậy, trong shader của bạn, bạn có thể đi (cho cách đơn giản nhất):
float3 finalColor;
if (colorFromTex.a > 0)
finalColor = colorFromTex.rgb;
else
finalColor = colorFromTex.rgb*myTintColor.rgb;
Điều đó không tối ưu mặc dù bạn sẽ có một quá trình chuyển đổi khó khăn và có một nhánh trong trình tạo bóng của bạn. Thay vào đó, tốt hơn là đi:
float3 finalColor = lerp(colorFromTex.rgb,
colorFromTex.rgb*myTintColor.rgb, colorFromTex.a);
Error 1 Missing asset "C:\Users\Kai\AppData\Local\Temp\fbx.shader.temp.1064.2756\ReplaceColor.fx"
. Tôi không hiểu làm thế nào tôi có thể làm cho đúng.