OpenGL天空盒

1.把立方体贴图加载到OpenGL中,贴图选择大小相同的正方形图片,立方体贴图的惯例是:在立方体内部使用左手坐标系统,而在立方体外部使用右手坐标系统。
这里写图片描述
2.创建立方体,使用索引数组绘制,减少内存使用
这里写图片描述
3.增加天空盒着色器程序

//res/raw/skybox_vertex_shader.glsl
uniform mat4 u_Matrix;
attribute vec3 a_Position;
varying vec3 v_Position;

void main()
{
    v_Position = a_Position;
    //把世界的右手坐标空间转换为天空盒的左手坐标空间
    v_Position.z = -v_Position.z;

    gl_Position = u_Matrix*vec4(a_Position, 1.0);
    //设置贴图在远平面上
    gl_Position = gl_Position.xyww;
}
//res/raw/skybox_fragment_shader.glsl
precision mediump float;

uniform samplerCube u_TextureUnit;
varying vec3 v_Position;

void main()
{
    gl_FragColor = textureCube(u_TextureUnit, v_Position);
}

4.渲染器添加天空盒
5.围绕场景移动摄像头
6.源码:https://github.com/HQlin/Skybox/commits/master

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值