Unity3D Shader_vertex and fragment shader实例(一)
2016-09-18 13:34
537 查看
1、显示颜色和一张贴图
Shader "Example/VFBase" {
Properties {
_MainTex("Base(RGB)",2D) = "white"{}
_Color("MainColor(RGB)",Color) = (1,1,1,1)
}
SubShader {
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
float4 _MainTex_ST;
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
} ;
v2f vert (appdata_base v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex); //把顶点的位置和Unity提前定义的一个矩阵相乘,从而把顶点位置从model space转换到clip space
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex); //TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset作运算
return o;
}
float4 frag (v2f i) : COLOR
{
float4 texCol = tex2D(_MainTex,i.uv);
float4 outp = _Color*texCol;
return outp;
}
ENDCG
}
}
FallBack "Diffuse"
}
点击打开链接
Shader "Example/VFBase" {
Properties {
_MainTex("Base(RGB)",2D) = "white"{}
_Color("MainColor(RGB)",Color) = (1,1,1,1)
}
SubShader {
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
float4 _MainTex_ST;
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
} ;
v2f vert (appdata_base v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex); //把顶点的位置和Unity提前定义的一个矩阵相乘,从而把顶点位置从model space转换到clip space
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex); //TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset作运算
return o;
}
float4 frag (v2f i) : COLOR
{
float4 texCol = tex2D(_MainTex,i.uv);
float4 outp = _Color*texCol;
return outp;
}
ENDCG
}
}
FallBack "Diffuse"
}
点击打开链接
相关文章推荐
- UNITY3D shader学习心得<三> Vertex and Fragment Shader
- Unity3D - Shader - 顶点片段着色器(Vertex and Fragment Shaders)
- vertex and fragment shader
- Vertex and Fragment Shader(可编程渲染管线)
- Vertex and Fragment Shader
- Unity Shader 顶点和片段着色器(Vertex and Fragment Shader)
- Vertex and fragment shader examples
- 图形处理之Unity3DShader(一)Vertex and Fragment Shader
- Vertex and Fragment Shader
- LIGHTING IN VERTEX AND FRAGMENT SHADER
- unity shader TRANSFER_VERTEX_TO_FRAGMENT 宏的一个小细节
- Vertex & Fragment Shader入门
- openGL ES 2.0 fragment shader and framebuffer
- Unity3D Shader(11)——fragment shader(边缘泛光)
- Unity 中用 Vertex & Fragment Shader 实现 surface shader 中的 Diffuse 和 Decal
- Shader 基础使用(三) ----- vertex & fragment
- VAOs, VBOs, Vertex and Fragment Shaders
- Unity3d shader编程 VertexLit渲染路径
- shader 2: vertex, fragment, surf的区别
- Android OpenGL ES零基础系列(三):OpenGL ES的渲染管道及VertexShader与FragmentShader