Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const vertexPositionData = [];
- const normalData = [];
- const textureCoordData = [];
- for (let latNumber = 0; latNumber <= this.latitudeBands; latNumber++) {
- const theta = latNumber * Math.PI / this.latitudeBands;
- const sinTheta = Math.sin(theta);
- const cosTheta = Math.cos(theta);
- for (let longNumber = 0; longNumber <= this.longitudeBands; longNumber++) {
- const phi = longNumber * 2 * Math.PI / this.longitudeBands;
- const sinPhi = Math.sin(phi);
- const cosPhi = Math.cos(phi);
- const x = cosPhi * sinTheta;
- const y = sinPhi * sinTheta;
- const z = cosTheta;
- const u = 1 - (longNumber / this.longitudeBands);
- const v = 1 - (latNumber / this.latitudeBands);
- normalData.push(x);
- normalData.push(y);
- normalData.push(z);
- textureCoordData.push(u);
- textureCoordData.push(v);
- vertexPositionData.push(this.radius * x);
- vertexPositionData.push(this.radius * y);
- vertexPositionData.push(this.radius * z);
- }
- }
- const indexData = [];
- for (let latNumber = 0; latNumber < this.latitudeBands; latNumber++) {
- for (let longNumber = 0; longNumber < this.longitudeBands; longNumber++) {
- const first = (latNumber * (this.longitudeBands + 1)) + longNumber;
- const second = first + this.longitudeBands + 1;
- indexData.push(first);
- indexData.push(second);
- indexData.push(first + 1);
- indexData.push(second);
- indexData.push(second + 1);
- indexData.push(first + 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement