tiny planet shader
来源:互联网 发布:深圳蜂窝网络是培训 编辑:程序博客网 时间:2024/06/09 23:47
#version 430 coreprecision mediump float;uniform sampler2D texture;uniform float scale, aspect, time;uniform mat3 transform;varying vec2 v_texcoord;#define PI 3.141592653589793void main(){ vec2 rads = vec2(PI * 2., PI); vec2 pnt = (v_texcoord - .5) * vec2(12.0, 12.0* 0.5); // Project to Sphere float x2y2 = pnt.x * pnt.x + pnt.y * pnt.y; vec3 sphere_pnt = vec3(2. * pnt, x2y2 - 1.) / (x2y2 + 1.); sphere_pnt *= transform; // Convert to Spherical Coordinates float r = length(sphere_pnt); float lon = atan(sphere_pnt.y, sphere_pnt.x)+ PI; float lat = acos(sphere_pnt.z / r); gl_FragColor = texture2D(texture, vec2(lon, lat) / rads);}在shader中 arctan 很容易出问题 通过加减pi可以调节到正常范围
0 0
- tiny planet shader
- smart planet
- IBM Smart Planet
- Tiny tiny RSS安装
- shader
- shader
- shader
- Shader
- Shader
- shader
- shader
- shader
- Shader
- shader
- Shader
- shader
- Shader
- shader
- 读《google时代的工作方法》有感
- Python Epoll
- 计算100-200之间的素数
- java基本语法-装箱转换和拆箱转换
- linux_卸载和安装
- tiny planet shader
- PHP 虚拟目录 虚拟主机 域名配置
- 细节
- sysbenchmark常用测试笔记
- 第九周项目4——-广义表算法库及应用(1)
- mysql悲观锁总结和实践
- 访谈李佳:从机械维修到月入3万的SEO创业经历
- 第9周项目2-对称矩阵压缩存储的实现与应用(1)
- 文件断点下载(NSURLSessionDataTask)的使用