mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 01:24:51 +02:00
63 lines
1.7 KiB
Text
63 lines
1.7 KiB
Text
<@include gpu/Config.slh@>
|
|
<$VERSION_HEADER$>
|
|
#line __LINE__
|
|
// Generated on <$_SCRIBE_DATE$>
|
|
// stars.frag
|
|
// fragment shader
|
|
//
|
|
// Created by Bradley Austin Davis on 2015/06/19
|
|
|
|
varying vec2 varTexcoord;
|
|
varying vec3 varNomral;
|
|
varying vec3 varPosition;
|
|
|
|
uniform float iGlobalTime;
|
|
|
|
const float PI = 3.14159;
|
|
const float TAU = 3.14159 * 2.0;
|
|
const int latitudeCount = 5;
|
|
const float latitudeDist = PI / 2.0 / float(latitudeCount);
|
|
const int meridianCount = 4;
|
|
const float merdianDist = PI / float(meridianCount);
|
|
|
|
|
|
float clampLine(float val, float target) {
|
|
return clamp((1.0 - abs((val - target)) - 0.998) * 500.0, 0.0, 1.0);
|
|
}
|
|
|
|
float latitude(vec2 pos, float angle) {
|
|
float result = clampLine(pos.y, angle);
|
|
if (angle != 0.0) {
|
|
result += clampLine(pos.y, -angle);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
float meridian(vec2 pos, float angle) {
|
|
return clampLine(pos.x, angle) + clampLine(pos.x + PI, angle);
|
|
}
|
|
|
|
vec2 toPolar(in vec3 dir) {
|
|
vec2 polar = vec2(atan(dir.z, dir.x), asin(dir.y));
|
|
return polar;
|
|
}
|
|
|
|
void mainVR( out vec4 fragColor, in vec2 fragCoord, in vec3 fragRayOri, in vec3 fragRayDir )
|
|
{
|
|
vec2 polar = toPolar(fragRayDir);
|
|
//polar.x += mod(iGlobalTime / 12.0, PI / 4.0) - PI / 4.0;
|
|
float c = 0.0;
|
|
for (int i = 0; i < latitudeCount - 1; ++i) {
|
|
c += latitude(polar, float(i) * latitudeDist);
|
|
}
|
|
for (int i = 0; i < meridianCount; ++i) {
|
|
c += meridian(polar, float(i) * merdianDist);
|
|
}
|
|
const vec3 col_lines = vec3(102.0 / 255.0, 136.0 / 255.0, 221.0 / 255.0);
|
|
fragColor = vec4(c * col_lines, 0.2);
|
|
}
|
|
|
|
void main(void) {
|
|
mainVR(gl_FragColor, gl_FragCoord.xy, vec3(0.0), normalize(varPosition));
|
|
}
|
|
|