Jump to content

View more

Image of the Day

#ld38 #screenshotsaturday Mimosa Fizz action gif #2 https://t.co/TUzdppvfUL
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

Cube2Sphere

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
2 replies to this topic

#1 montify   Members   

696
Like
0Likes
Like

Posted 07 November 2012 - 08:36 AM

Hello everyone.

Im working on a Sphere out of 6 Planes...

But i have no Idea how to Implemet it.

Here's little Math: http://mathproofs.bl...-to-sphere.html


And here is my Code for the Vertex Plane (at the moment only one Plane)

[source lang="csharp"] vertices = new VertexPositionColor[256 * 256]; int index = 0; for (int z = 0; z < 256; z++) { for (int x = 0; x < 256; x++) { vertices[z * 256 + x].Position.X = x * 90.0f; vertices[z * 256 + x].Position.Y = 3; vertices[z * 256 + x].Position.Z = z * 90.0f; vertices[z * 256 + x].Color = Color.White; } vertexBuffer = new VertexBuffer(gDevice, typeof(VertexPositionColor), 256 * 256, BufferUsage.WriteOnly); this.vertexBuffer.SetData<VertexPositionColor>(vertices); }[/source]


next, the IndexBuffer

[source lang="csharp"] int[] indices = new int[255 * 255 * 6]; index = 0; for (int z = 0; z < 255; z++) { for (int x = 0; x < 255; x++) { indices[index + 0] = z * 256 + x; indices[index + 1] = indices[index + 0] + 256 + 1; indices[index + 2] = indices[index + 0] + 256; indices[index + 3] = indices[index + 0]; indices[index + 4] = indices[index + 0] + 1; indices[index + 5] = indices[index + 0] + 256 + 1; index += 6; } } this.indexBuffer = new IndexBuffer(gDevice , IndexElementSize.ThirtyTwoBits, 255 * 255 * 6, BufferUsage.WriteOnly); this.indexBuffer.SetData<int>(indices);[/source]


so now the Math says for the X Axis:

[source lang="csharp"](Math.Sqrt(1 - (Math.Pow(vertices[i].Position.Y, 2) / 2)- (Math.Pow(vertices[i].Position.Z, 2) / 2)+ ((Math.Pow(vertices[i].Position.Y, 2) * Math.Pow(vertices[i].Position.Z, 2)) / 3)))[/source]




But how i can Implement this in my Code?

Please help me

#2 montify   Members   

696
Like
0Likes
Like

Posted 12 November 2012 - 04:36 AM

Hello

I started a new experiment

Posted Image


What im doing wrong?

VertexBuffer:
[source lang="csharp"]int index = 0; vertices = new VertexPositionColor[256* 256]; int xA = 0; int yA = 0; int scale = 100; double z = 1.0f; for (double x = -1.0f; x <= 1.0f; x = x + 0.25f) { for (double y = -1.0f; y <= 1.0f; y = y + 0.25f) { double xsphere = scale * x * Math.Sqrt(1 - (Math.Pow(y, 2) / 2) - (Math.Pow(z, 2) / 2) + ((Math.Pow(y, 2) * Math.Pow(z, 2)) / 3)); double ysphere = scale * y * Math.Sqrt(1 - (Math.Pow(z, 2) / 2) - (Math.Pow(x, 2) / 2) + ((Math.Pow(z, 2) * Math.Pow(x, 2)) / 3)); double zsphere = scale * z * Math.Sqrt(1 - (Math.Pow(x, 2) / 2) - (Math.Pow(y, 2) / 2) + ((Math.Pow(x, 2) * Math.Pow(y, 2)) / 3)); vertices[xA + yA * 9].Position = new Vector3((float)xsphere, (float)ysphere, (float)zsphere); vertices[xA + yA * 9].Color = Color.White; yA += 1; } yA = 0; xA = xA + 1; }vertexBuffer = new VertexBuffer(gDevice, typeof(VertexPositionColor), 256 * 256, BufferUsage.WriteOnly);this.vertexBuffer.SetData<VertexPositionColor>(vertices); [/source]


IndexBuffer:

[source lang="csharp"]#region IndexBuffer index = 0; for (int a = 0; z < 255; z++) { for (int x = 0; x < 255; x++) { indices[index + 0] = a * 256 + x; indices[index + 1] = indices[index + 0] + 256 + 1; indices[index + 2] = indices[index + 0] + 256; indices[index + 3] = indices[index + 0]; indices[index + 4] = indices[index + 0] + 1; indices[index + 5] = indices[index + 0] + 256 + 1; index += 6; } } this.indexBuffer = new IndexBuffer(gDevice, IndexElementSize.ThirtyTwoBits, 255 * 255 * 6, BufferUsage.WriteOnly); this.indexBuffer.SetData<int>(indices); #endregion [/source]


Please help me :/

#3 montify   Members   

696
Like
0Likes
Like

Posted 13 November 2012 - 02:39 PM

Solved!
Posted Image




Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.