- Home /
How do you create a sphere form 6 planes?
Hi all,
I have been attempting to create a sphere from 6 planes, so that I may later edit these planes to give the sphere a procedural generated surface (so as to create unique planets).
To take 6 planes and make them into a sphere, I have been using this code:
public function MakeSphereFromPlanes()
{
var positionArr : Vector3[] = [
new Vector3(0,this.radius,0),
new Vector3(0,-this.radius,0),
new Vector3(0,0,this.radius),
new Vector3(0,0,-this.radius),
new Vector3(this.radius,0,0),
new Vector3(-this.radius,0,0)
];
var rotationArr : Vector3[] = [
Vector3.zero,
Vector3.zero,
new Vector3(90,0,0),
new Vector3(90,0,0),
new Vector3(0,0,90),
new Vector3(0,0,90)
];
for(var p : int = 0;p<6;p++)
{
//make 6 planes for the sphere in this loop
var newPlane : GameObject = GameObject.CreatePrimitive(PrimitiveType.Plane);
newPlane.transform.localScale = Vector3(this.radius,this.radius,this.radius);
newPlane.transform.SetParent(this.gameObject.transform);
newPlane.transform.position = positionArr[p];
newPlane.transform.eulerAngles = rotationArr[p];
var vertices : Vector3[] = newPlane.GetComponent(MeshFilter).mesh.vertices;
for (var i = 0; i < vertices.Length; i++)
{
vertices[i] = vertices[i].normalized * this.radius;
}
newPlane.GetComponent(MeshFilter).mesh.vertices = vertices;
newPlane.GetComponent(MeshFilter).mesh.RecalculateNormals();
newPlane.GetComponent(MeshFilter).mesh.RecalculateBounds();
}
}
The issue I am running into is that this code seems to produce this:
And I am not entirely sure why, or how to get it working. Does anyone have any thoughts on this, or how I could get this to work properly?
Your answer
Follow this Question
Related Questions
How to place objects from a 2d plane around a sphere? 1 Answer
How do you make a sphere from 6 planes? 1 Answer
Transforming Spherical Surface to a Planar Surface 3 Answers
planetary level of detail system (cubesphere) 0 Answers
Is it possible to generate a high-poly spherical model from a mercator-projection heightmap? 1 Answer