unity3d中shader cg程序的自发光怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d中shader cg程序的自发光怎么写相关的知识,希望对你有一定的参考价值。

控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本.
创建 脚本Assets --> Create ----> javascript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接拖拽到主角节点即可。
对脚本的编写:
类及接口主要参照帮助文档,这里只介绍脚本基本结构和简单示例:
每个脚本至少都有两个函数: function Start() 可以认为是初始化 function Updata()则是每帧更新函数。
要实现对角色位置的控制移动首先要定义该角色,
首先 定义GameObject对象也就是要控制的目标: private var _MainRole:GameObject;;
在function Start() 函数中初始化该对象: inRole = GameObject.Find("MainRole"); // 从场景中查找到名叫"MainRole"的对象也就是主角。
在每帧更新时侦听键盘事件,如果按键按下W则空对象向前移动
if(Input.GetKey(KeyCode.W))

_MainRole.transform.Translate( Vector3.forward * 0.05 );


至此,就已经完成按键控制角色移动的全部过程,运行游戏就可以用按键控制角色移动。
参考技术A Shader "浅墨Shader编程/4.光照材质完备beta版Shader" 

//-------------------------------【属性】-----------------------------------------
    Properties

        _Color ("主颜色", Color) = (1,1,1,0)
        _SpecColor ("反射高光颜色", Color) = (1,1,1,1)
        _Emission ("自发光颜色", Color) = (0,0,0,0)
        _Shininess ("光泽度", Range (0.01, 1)) = 0.7
    

//---------------------------------【子着色器】----------------------------------
    SubShader 

//----------------通道---------------
        Pass 

//-----------材质------------
            Material 

//可调节的漫反射光和环境光反射颜色
                Diffuse [_Color]
                Ambient [_Color]
//光泽度
                Shininess [_Shininess]
//高光颜色
                Specular [_SpecColor]
//自发光颜色
                Emission [_Emission]
            
//开启光照
            Lighting On
        
    

Cg入门15:Vertex Shader - 几何变换 —波

Shader "Sbin/vf36" {
	SubShader {
		
		pass{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag

			#include "UnityCG.cginc"

			struct v2f{
				float4 pos : POSITION;
				float4 col : COLOR;
			};

			v2f vert(appdata_base v){
				//v.vertex.y += sin(-length(v.vertex.xz)+_Time.y)/2;
				
				v.vertex.y +=sin((v.vertex.x+v.vertex.z)+_Time.y)/2;
				v.vertex.y +=sin((v.vertex.x-v.vertex.z)+_Time.y)/2;
				
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
				o.col = fixed4(0,v.vertex.y,1,1);

				return o;
			}
			
			fixed4 frag(v2f v):COLOR
			{
				return v.col;
			}

			ENDCG
		}
	} 
}
石头丢进水里效果:
技术分享
技术分享
xz方向水波纹效果:
技术分享
技术分享


以上是关于unity3d中shader cg程序的自发光怎么写的主要内容,如果未能解决你的问题,请参考以下文章

Unity-ShaderLab入门 Shader是什么?

Unity Shader编程之十四 边缘发光Shader(Rim Shader)的两种实现形态

unity5怎么样让材质自发光

Unity3D插件边缘发光插件Glow分享

Unity3D插件边缘发光插件Glow分享

unity3d 怎么建shader