Open source Star Ruler 2 source code!

This commit is contained in:
Lucas de Vries
2018-07-17 14:15:37 +02:00
commit cc307720ff
4342 changed files with 2365070 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
//Draws the physical star, its corona, and a distant star sprite
final class StarNodeScript {
//double coronaRot = randomd(-pi,pi);
StarNodeScript(Node& node) {
node.transparent = true;
node.customColor = true;
}
void render(Node& node) {
double dist = node.sortDistance / (250.0 * node.abs_scale * pixelSizeRatio);
if(dist < 1.0) {
drawBuffers();
node.applyTransform();
material::StarSurface.switchTo();
model::Sphere_max.draw(node.sortDistance / (node.abs_scale * pixelSizeRatio));
/*vec4f pos;
for(uint i = 0; i < 8; ++i) {
float angle = float(int(i) - 6) * -0.24f * pi;
pos.x = cos(angle);
pos.y = sin(angle);
pos.w = angle + (pi * 0.5);
shader::BEZIER_POINTS[i] = pos;
}
applyAbsTransform(vec3d(0,1.0,0), vec3d(0.2), quaterniond());
material::Prominence.switchTo();
model::Prominence.draw();
undoTransform();*/
undoTransform();
vec3d upLeft, upRight, center = node.abs_position;
getBillboardVecs(center, upLeft, upRight, 0.0);
upLeft *= node.abs_scale * 1.5;
upRight *= node.abs_scale * 1.5;
drawPolygonStart(PT_Quads, 1, material::Corona);
drawPolygonPoint(center + upLeft, vec2f(0,0));
drawPolygonPoint(center + upRight, vec2f(1,0));
drawPolygonPoint(center - upLeft, vec2f(1,1));
drawPolygonPoint(center - upRight, vec2f(0,1));
drawPolygonEnd();
}
if(dist > 0.5) {
Color col(node.color);
col.a = dist > 1.0 ? 255 : int((dist - 0.5)*255.0/0.5);
renderBillboard(material::DistantStar, node.abs_position, node.abs_scale * 32.0, 0.0, col);
}
}
};