unity-修改shader的默认值,纹理
发布日期:2021-05-07 17:59:07 浏览次数:12 分类:技术文章

本文共 1084 字,大约阅读时间需要 3 分钟。

在子着色器中的通道里面命名一个相同变量名的对应类型,然后如果修改的是坐标等顶点着色器中的属性,就在顶点着色器的编程中返回,如果是颜色等像素着色器中的属性就在片元着色器中返回相应的值。

例如

Shader "Custom/My_shader2"{
Properties {
_Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {
} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 } SubShader {
Pass{
CGPROGRAM//开始插入Cg代码 #pragma fragment my_frag fixed4 my_frag():COLOR {
return fixed4(1.0,0.0,0.0,1.0); } } ENDCG } FallBack "Diffuse"}

动态修改shader的颜色

新创建一个c#脚本文件

public class My_shader : MonoBehaviour{
public Material my_shader;//声明着色器 // Start is called before the first frame update void Start() {
my_shader.SetColor("_Color", new Color(0.5f, 0.6f, 0.7f, 1.0f)); } // Update is called once per frame void Update() {
}}

可以在开始函数中修改也可以在更新函数中修改。

修改纹理

fixed4 my_frag(float2 uv:TEXCOORD0) :COLOR//第一套纹理也可以是第二套第三套,只需要将最后面的0修改成1-3即可			{
return tex2D(_MainTex,uv);//前面是需要修改的纹理,后面是查找的像素坐标颜色 }

先获取纹理坐标然后通过tex2D函数修改即可。

基本知识可去

转载地址:https://blog.csdn.net/lfanyize/article/details/104087606 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:unity-关于shader海平面制作
下一篇:unity—shader简单编程(2)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月06日 23时46分38秒