Open source Star Ruler 2 source code!
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user