Three.js - Stars
Fiddle exploring how to model a star field—aka a proverbial “starry night". Its based on the examples discussed in Chapter 3 of Tony Parisi's book, WebGL Up and Running.
by brady houseknecht
January 05, 2016
HTML
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/297733/Three.js"></script>
<script src="https://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
<div id="fiddleHook">
</div>
CSS
body {
backgroundColor: #000000
}
JavaScript
(function(app) {
"use strict";
let metadata = {
urls: {
github: 'https://github.com/bradyhouse/house/tree/master/fiddles/three/fiddle-0007-Stars'
}
};
app.toolkit = app.toolkit || {};
app.toolkit.three = app.toolkit.three || {};
app.view = app.view || {};
app.view.milkyway = app.view.milkyway || {};
app.view.milkyway.saturn = app.view.milkyway.saturn || {};
app.toolkit.three.Publisher = class {
constructor() {
this._messageTypes = {};
}
get messageTypes() {
return this._messageTypes;
}
subscribe(message, subscriber, callback) {
var subscribers = this.messageTypes[message];
if (subscribers) {
if (this.findSubscriber(subscribers, subscriber) != -1) {
return;
}
} else {
subscribers = [];
this.messageTypes[message] = subscribers;
}
subscribers.push({
subscriber: subscriber,
callback: callback
});
}
unsubscribe(message, subscriber, callback) {
if (subscriber) {
var subscribers = this.messageTypes[message];
if (subscribers) {
var i = this.findSubscriber(subscribers, subscriber, callback);
if (i != -1) {
this.messageTypes[message].splice(i, 1);
}
}
} else {
delete this.messageTypes[message];
}
}
publish(message) {
var subscribers = this.messageTypes[message];
if (subscribers) {
for (var i = 0; i < subscribers.length; i++) {
var args = [];
for (var j = 0; j < arguments.length - 1; j++) {
args.push(arguments[j + 1]);
}
...