自己写个简单的天空盒子
来源:互联网 发布:电脑数据删除怎么恢复 编辑:程序博客网 时间:2024/04/27 10:50
天空盒子制作
准备:unity 5.4.1,天空盒子纹理贴图(6张或者3张都行,看你要什么样的天空盒子)
1.project视图右键->Create ->legacy->CubeMap.再把天空盒子纹理贴图按名字选好。纹理贴图分辨率和天空盒子的face size都统一设置为256即可。
2.创建材质球命名SkyBoxMat和新建相应的shader:SkyBox
Shader "LT/SkyBox"
{
Properties
{
_Cubemap("Reflect Cubemap",Cube) = "white"{} //模拟反射的环境映射纹理
}
SubShader
{
Tags {
"RenderType"="Opaque" //着色器分类不透明
"Queue"="Geometry" //不透明物体
"ForceNoShadowCasting"="True" //表示不产生阴影
"IgnoreProjector"="True" //表示不接受阴影
"LightMode"="Always" //永远都渲染,但不处理光照
}
Pass
{
Fog {Mode Off} //关闭雾模式
cull front
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0 //定义Shader模型为Shader Model 3.0, 3.0, Direct3D 9。支持512张贴图 + 512个计算
//用低精度,最快的
#pragma fragmentoption ARB_precision_hint_fastest
#pragma exclude_renderers flash //不在flash 平台编译
#include "UnityCG.cginc"
#include "AutoLight.cginc" //天空盒子
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 pos : SV_POSITION;
float3 cam : TEXCOORD0;
};
samplerCUBE _Cubemap;
v2f vert (appdata v)
{
v2f o;
float3 worldVertex = mul(unity_ObjectToWorld,v.vertex);
//物体反射到计算机中的方向可由光路可逆的原则求的,也就是说通过计算视角方向关于法线的反射方向来求得入射光的方向
//worldViewDir为世界坐标系下的视角方向,既视角(相机)到顶点的方向
//reflect要求入射向量是由光源指向交点处worldViewDir得先取反
o.cam =-UnityWorldSpaceViewDir(worldVertex);
// o.cam = worldVertex- _WorldSpaceCameraPos; //与上面这句等价
o.pos = UnityObjectToClipPos(v.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = texCUBE(_Cubemap, i.cam);
return col;
}
ENDCG
}
}
}
- 自己写个简单的天空盒子
- 天空盒子的绘制
- 自己写个简单的栈
- 自己的天空
- 写个自己的
- 写个自己的
- DirectX下天空盒子的实现
- 自己写了个简单的供求系统
- <源码>自己写个简单的单播SNTP客户端
- 自己写的第一个Gating简单例子
- unity 3D自己学习笔记(天空盒子相关)
- 活在自己的天空
- XNA 天空盒子
- OSG 天空盒子
- Unity3D添加天空盒子
- 自己写简单的SqlHelper
- 自己写简单的LinkedList
- 自己写的简单计算器
- POI操作Excel常用方法总结
- hdoj1269-迷宫城堡(tarjan)
- mysql数据表对自增id重新排序
- linux下挂载iso镜像的方法
- Please enter a commit message to explain why this merge is necessary.
- 自己写个简单的天空盒子
- elasticsearch配置
- Android JNI 开发的流程
- android-bluetooth移植碰到的问题
- 前端开发工程师学习历程
- Codeforces Round #375 (Div. 2) E. One-Way Reform 欧拉路径
- function与感叹号
- 封装、继承、多态
- Jmeter性能测试指标