- Home /
Creating custom plane mesh - Why it's flipped?
I am making a custom mesh, a Plane, simply for educational purposes.
The mesh is created correct but it's facing downwards (-Y Global), if I want to see it correct then I will have to rotate the GameObject 180 degrees so it's facing upwards (Y Global), which is bad. I don't want to rotate it.
Do you know how can I create it correctly right from the start?
In case you're interested to know here's the snippet.
public static void Test()
{
GameObject go = new GameObject("Test");
MeshRenderer mr = go.AddComponent<MeshRenderer>();
mr.sharedMaterial = new Material(Shader.Find("Diffuse"));
MeshFilter mf = go.AddComponent<MeshFilter>();
Mesh m = new Mesh();
m.name = "TestMesh";
m.vertices = new Vector3[] {
new Vector3(-1, 0, -1),
new Vector3(1, 0, -1),
new Vector3(1, 0, 1),
new Vector3(-1, 0, 1)
};
m.triangles = new int[] {
0, 1, 2, 0, 2, 3
};
m.RecalculateNormals();
m.RecalculateBounds();
mf.sharedMesh = m;
}
Answer by Screenhog · Mar 28, 2013 at 12:06 AM
The simplest way is to reverse the order you're creating the triangles:
m.triangles = new int[] {
3, 2, 0, 2, 1, 0
};
Reversing the list of m.vertices would, I believe, do the same thing.
EDIT: Technically, another way to do this is to use a material with a shader that only renders backfaces. However, I'd avoid that route unless I knew exactly why I was doing it.
Your answer
Follow this Question
Related Questions
Faces of mesh getting deleted on import (Cinema 4D) 3 Answers
Bounds Finding Box 1 Answer
Autoscale Shader with multiple random texture selection. 0 Answers
Triangulate a polygon 1 Answer
Frame Rate drops when creating mesh in mobile Voxel World? 0 Answers