转动的地球
来源:互联网 发布:胡歌的演技知乎 编辑:程序博客网 时间:2024/04/28 19:16
Shader "Custom/testShader" {
properties
{
_MainTex("earth", 2D)="white"{}
_Cloud("cloud", 2D)="white"{}
}
Subshader
{
Tags{"Queue"="Transparent" "RenderType"="Transparnt"}
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
sampler2D _Cloud;
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);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
half4 frag(v2f i):COLOR
{ //地球的贴图uv, x即横向在动
float u_x = i.uv.x + -0.1*_Time;
float2 uv_earth = float2(u_x, i.uv.y);
half4 texcolor_earth = tex2D(_MainTex, uv_earth);
float u_y = i.uv.x + -0.2*_Time; //云层的贴图uv,x动的更快些
float2 uv_cloud = float2(u_y, i.uv.y);
half4 tex_cloudDepth = tex2D(_Cloud, uv_cloud);
half4 texcolor_cloud = float4(1,1,1,0)*(tex_cloudDepth.x); //深度值=该点的云颜色
return lerp(texcolor_earth, texcolor_cloud, 0.5f); //地球和云的颜色混合
}
ENDCG
}
}
properties
{
_MainTex("earth", 2D)="white"{}
_Cloud("cloud", 2D)="white"{}
}
Subshader
{
Tags{"Queue"="Transparent" "RenderType"="Transparnt"}
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
sampler2D _Cloud;
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);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
half4 frag(v2f i):COLOR
{ //地球的贴图uv, x即横向在动
float u_x = i.uv.x + -0.1*_Time;
float2 uv_earth = float2(u_x, i.uv.y);
half4 texcolor_earth = tex2D(_MainTex, uv_earth);
float u_y = i.uv.x + -0.2*_Time; //云层的贴图uv,x动的更快些
float2 uv_cloud = float2(u_y, i.uv.y);
half4 tex_cloudDepth = tex2D(_Cloud, uv_cloud);
half4 texcolor_cloud = float4(1,1,1,0)*(tex_cloudDepth.x); //深度值=该点的云颜色
return lerp(texcolor_earth, texcolor_cloud, 0.5f); //地球和云的颜色混合
}
ENDCG
}
}
}
原理:
(1)通过uv.x,即纹理坐标的横轴与时间相乘,产生球在移动的效果
(2)通过地球和云的颜色值叠加形成层叠效果
0 0
- 转动的地球
- 2.转动的地球shader
- canvas简单模拟太阳地球月亮的转动
- canvas 模拟地球绕太阳转动 月球绕地球转动
- [OpenGL]使用简单的视角变化实现太阳和地球的转动
- 使用纯 CSS3 动画实现地球转动
- 利用CSS3 2D转换实现地球转动
- 很有意思的转动
- C# 转动的大风车
- CSS3:转动的齿轮
- 转动的div层
- 转动的饼图
- 转动的风扇
- 随鼠标转动的时钟
- 《计算机图形学》转动的机器人
- HTML5之转动的轮子
- 转动态数组的使用
- javascript:实现转动的圆圈
- xdoj-1031-找规律
- centos 64位安装aapt、jdk、tomcat
- AJAX POST&跨域 解决方案 - CORS
- HDFS文件合并问题
- 玲珑学院 1050 - array--dp
- 转动的地球
- git命令使用参考网站
- 【IDE-Visual Studio】fatal error RC1004
- ToStringBuilder
- centos7进入单用户模式修改root用户密码
- 在Windows下调试运行X265
- Hexo-blogs-to-add-search-and-the-python-scripts-record-automatically
- cocos2d 渐变层
- 系统压力测试工具(Sysbench 0.5)安装&参数介绍