第一个shader 程序
来源:互联网 发布:淘宝美潮店铺推荐 编辑:程序博客网 时间:2024/05/21 17:06
Shader "Custom/SimpleDev1"
{
Properties{//属性
_MainTex("Base(RGB)",2D)="white"{}//定义贴图属性接口
_Color("Base Color",Color)=(1,1,1,1)//定义颜色属性接口
_Rspeed("RotateSpeed",Range(1,100))=30//定义滑块属性接口
}
SubShader{
tags{"Queue"="Transparent" "RenderType"="Transparent" "IgnoreProjector"="True"}
Blend SrcAlpha OneMinusSrcAlpha
Pass{
Name "SimpleDev1"
Cull off //双面显示
CGPROGRAM
// Upgrade NOTE: excluded shader from DX11 and Xbox360; has structs without semantics (struct v2f members _RSpeed)
#pragma exclude_renderers d3d11 xbox360
#pragma vertex vert //声明顶点处理器
#pragma fragment frag //声明片段
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
float _Rspeed;
struct v2f{ //定义结构体来接收顶点处理器和片段,把顶点缓存到片段
float4 pos:POSITION;
float4 uv:TEXCOORD0;
};
v2f vert(appdata_base v){ //对顶点实现
v2f o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.uv=v.texcoord;
return o;
}
half4 frag(v2f i):COLOR{
float2 uv=i.uv.xy-float2(0.5,0.5);//调整旋转点为贴图的中心
float2 rotate=float2(cos(_Rspeed*_Time.x),sin(_Rspeed*_Time.x));
uv=float2(uv.x*rotate.x-uv.y*rotate.y,uv.x*rotate.y+uv.y*rotate.x);//实现旋转xsinθ-ysinθ,xsinθ+ycosθ
uv+=float2(0.5,0.5);//恢复到原来的位置
half4 c=tex2D(_MainTex,uv)*_Color;//颜色与贴图相乘
//half4 c=i.col;
return c;
}
ENDCG
}
}
}
{
Properties{//属性
_MainTex("Base(RGB)",2D)="white"{}//定义贴图属性接口
_Color("Base Color",Color)=(1,1,1,1)//定义颜色属性接口
_Rspeed("RotateSpeed",Range(1,100))=30//定义滑块属性接口
}
SubShader{
tags{"Queue"="Transparent" "RenderType"="Transparent" "IgnoreProjector"="True"}
Blend SrcAlpha OneMinusSrcAlpha
Pass{
Name "SimpleDev1"
Cull off //双面显示
CGPROGRAM
// Upgrade NOTE: excluded shader from DX11 and Xbox360; has structs without semantics (struct v2f members _RSpeed)
#pragma exclude_renderers d3d11 xbox360
#pragma vertex vert //声明顶点处理器
#pragma fragment frag //声明片段
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
float _Rspeed;
struct v2f{ //定义结构体来接收顶点处理器和片段,把顶点缓存到片段
float4 pos:POSITION;
float4 uv:TEXCOORD0;
};
v2f vert(appdata_base v){ //对顶点实现
v2f o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.uv=v.texcoord;
return o;
}
half4 frag(v2f i):COLOR{
float2 uv=i.uv.xy-float2(0.5,0.5);//调整旋转点为贴图的中心
float2 rotate=float2(cos(_Rspeed*_Time.x),sin(_Rspeed*_Time.x));
uv=float2(uv.x*rotate.x-uv.y*rotate.y,uv.x*rotate.y+uv.y*rotate.x);//实现旋转xsinθ-ysinθ,xsinθ+ycosθ
uv+=float2(0.5,0.5);//恢复到原来的位置
half4 c=tex2D(_MainTex,uv)*_Color;//颜色与贴图相乘
//half4 c=i.col;
return c;
}
ENDCG
}
}
}
阅读全文
0 0
- 第一个shader 程序
- OF+SHADER的第一个程序
- 我的第一个shader程序
- 【Shader基础篇】之第一个shader程序
- <Shader>第一段Shader程序
- 第一个shader
- Shadertoy编程学习(1):第一个shader程序
- Unity Shader学习2——第一个Shader程序解析
- 写的第一个Shader
- shader编程学习(1)第一个shader
- Shader 学习历程(一)——第一个shader
- Unity 3d Shader实践 —— 第一个Shader
- Shader山下(一)第一个Shader
- Unity Shader 学习笔记(5)第一个简单Shader
- 第一个C++程序
- 第一个MIDP程序
- 第一个Swing程序
- 第一个Ruby程序
- 结构型设计模式之代理模式
- hibernate关联对象通过Springmvc转json死循环
- Source Insight 4.0 安装及破解教程
- [爬虫]用Python抓取非小号网站数字货币(一)
- 矣首招谡复
- 第一个shader 程序
- vm box 老版本下载
- 【深度学习】AlexNet结构解析
- 《重构——改善既有代码的设计》【PDF】下载
- 12月14号
- MySQL几种常用的存储引擎区别
- 《Learning Sentiment-Specific Word Embedding for Twitter Sentiment Classification》阅读笔记
- mybatis中非调用mapper报错解决方法。
- VB.NET机房收费系统之总结篇(思想的提升)