Beispiel #1
0
void								CreateScreenQuad(
	MeshData&							Quad)
{
	AttribData<vec3> Vertices(4);
	Vertices.Set(0, vec3(-1.0f, -1.0f,  0.0f));
	Vertices.Set(1, vec3( 1.0f, -1.0f,  0.0f));
	Vertices.Set(2, vec3( 1.0f,  1.0f,  0.0f));
	Vertices.Set(3, vec3(-1.0f,  1.0f,  0.0f));

	AttribData<vec2> TexCoords(4);
	TexCoords.Set(0, vec2(0.0f, 0.0f));
	TexCoords.Set(1, vec2(1.0f, 0.0f));
	TexCoords.Set(2, vec2(1.0f, 1.0f));
	TexCoords.Set(3, vec2(0.0f, 1.0f));

	AttribData<GLFace16> Faces(2);
	Faces.Set(0, GLFace16(0, 1, 2) );
	Faces.Set(1, GLFace16(2, 3, 0) );
	
	Polygons Polylist1;
	Polylist1.SetMaterial(0);
	Polylist1.SetFaces(Faces);

	AttribData<poly> Polygons(1);
	Polygons.Set(0, Polylist1);

	Quad.SetVertexArray(Vertices);
	Quad.SetUVArray(TexCoords);
	Quad.SetPolygonList(Polygons);
	Quad.GenerateNormals(false);
	Quad.GenerateTangents();
}
Beispiel #2
0
void								CreatePatch(
	MeshData&							Mesh)
{
	Mesh.SetName("Patch");

	AttribData<vec3> aVertex;// = MeshArray.SetVertexArray();
	aVertex.Resize(4);
	aVertex.Set(0, vec3(-10.0f, 0.0f,-10.0f));
	aVertex.Set(1, vec3(-10.0f, 0.0f, 10.0f));
	aVertex.Set(2, vec3( 10.0f, 0.0f,-10.0f));
	aVertex.Set(3, vec3( 10.0f, 0.0f, 10.0f));
	Mesh.SetVertexArray(aVertex);
	
	AttribData<vec2> aTexCoords;// = MeshArray.SetUVArray();
	aTexCoords.Resize(4);
	aTexCoords.Set(0, glm::vec2( 0.0f, 0.0f));
	aTexCoords.Set(1, glm::vec2( 0.0f, 1.0f));
	aTexCoords.Set(2, glm::vec2( 1.0f, 0.0f));
	aTexCoords.Set(3, glm::vec2( 1.0f, 1.0f));
	Mesh.SetUVArray(aTexCoords);

	AttribData<vec3> aNormal;// = MeshArray.SetNormalArray();
	aNormal.Resize(4);
	aNormal.Set(0, vec3(0.0f, 1.0f, 0.0f));
	aNormal.Set(1, vec3(0.0f, 1.0f, 0.0f));
	aNormal.Set(2, vec3(0.0f, 1.0f, 0.0f));
	aNormal.Set(3, vec3(0.0f, 1.0f, 0.0f));
	Mesh.SetNormalArray(aNormal);

	AttribData<vec3> aTangent;// = MeshArray.SetTangentArray();
	aTangent.Resize(4);
	aTangent.Set(0, vec3(1.0f, 0.0f, 0.0f));
	aTangent.Set(1, vec3(1.0f, 0.0f, 0.0f));
	aTangent.Set(2, vec3(1.0f, 0.0f, 0.0f));
	aTangent.Set(3, vec3(1.0f, 0.0f, 0.0f));
	Mesh.SetTangentArray(aTangent.GetBufferPointer(), aTangent.Size());

	AttribData<vec3> aBitangent;// = MeshArray.SetBitangentArray();
	aBitangent.Resize(4);
	aBitangent.Set(0, vec3(0.0f, 0.0f, 1.0f));
	aBitangent.Set(1, vec3(0.0f, 0.0f, 1.0f));
	aBitangent.Set(2, vec3(0.0f, 0.0f, 1.0f));
	aBitangent.Set(3, vec3(0.0f, 0.0f, 1.0f));
	Mesh.SetBitangentArray(aBitangent);

	AttribData<Polygons> aFaces;// = MeshArray.SetPolygonArray();

	Polygons polys;
	polys.SetMaterial(0);
	polys.SetFaces().Resize(2);
	polys.SetFaces().Set(0, GLFace16(0, 1, 2));
	polys.SetFaces().Set(1, GLFace16(0, 2, 3));

	aFaces.Resize(1);
	aFaces.Set(0, polys);
	Mesh.SetPolygonList(aFaces);
}
Beispiel #3
0
void								CreateDiamond(
	MeshData&							Diamond)
{
	Diamond.SetName("Diamond");

	AttribData<vec3> Vertices;	Vertices.Resize(6);
	Vertices.Set(0, vec3( 0.0f, 0.5f, 0.0f ));
	Vertices.Set(1, vec3( 0.5f, 0.0f, 0.0f ));
	Vertices.Set(2, vec3( 0.0f, 0.0f,-0.5f ));
	Vertices.Set(3, vec3(-0.5f, 0.0f, 0.0f ));
	Vertices.Set(4, vec3( 0.0f, 0.0f, 0.5f ));
	Vertices.Set(5, vec3( 0.0f,-0.5f, 0.0f ));

	AttribData<vec3> Normals;	Normals.Resize(6);
	Normals.Set(0, vec3( 0.0f, 1.0f, 0.0f ));
	Normals.Set(1, vec3( 1.0f, 0.0f, 0.0f ));
	Normals.Set(2, vec3( 0.0f, 0.0f,-1.0f ));
	Normals.Set(3, vec3(-1.0f, 0.0f, 0.0f ));
	Normals.Set(4, vec3( 0.0f, 0.0f, 1.0f ));
	Normals.Set(5, vec3( 0.0f,-1.0f, 0.0f ));

	AttribData<vec2> TexCoords;	TexCoords.Resize(6);
	TexCoords.Set(0, vec2(0.5f, 1.0f) );
	TexCoords.Set(1, vec2(0.0f, 0.5f) );
	TexCoords.Set(2, vec2(0.25f, 0.5f) );
	TexCoords.Set(3, vec2(0.5f, 0.5f) );
	TexCoords.Set(4, vec2(0.75f, 0.5f) );
	TexCoords.Set(5, vec2(0.5f, 0.0f) );

	AttribData<GLFace16> Faces; Faces.Resize(8);
	Faces.Set(0, GLFace16(0, 1, 2) );
	Faces.Set(1, GLFace16(0, 2, 3) );
	Faces.Set(2, GLFace16(0, 3, 4) );
	Faces.Set(3, GLFace16(0, 4, 1) );
	Faces.Set(4, GLFace16(5, 2, 1) );
	Faces.Set(5, GLFace16(5, 3, 2) );
	Faces.Set(6, GLFace16(5, 4, 3) );
	Faces.Set(7, GLFace16(5, 1, 4) );

	Polygons Polylist1;
	Polylist1.SetMaterial(0);
	Polylist1.SetFaces(Faces);

	AttribData<poly> Polygons;
	Polygons.Resize(1);
	Polygons.Set(0, Polylist1);

	Diamond.SetName("DiamondMesh");
	Diamond.SetVertexArray(Vertices);
	Diamond.SetUVArray(TexCoords);
	Diamond.GenerateNormals(false);
	Diamond.GenerateTangents();
	Diamond.SetPolygonList(Polygons);
}
Beispiel #4
0
void CreateScreen(
	ModelData&								ScreenMesh)
{
	MeshData Screen;
	AttribData<vec3> Screen_vert;
	Screen_vert.Resize(4);
	Screen_vert.Set(0, vec3(-1.0f,  1.0f, 1.0f));	//	lu-corner
	Screen_vert.Set(1, vec3( 1.0f,  1.0f, 1.0f));	//	ru-corner
	Screen_vert.Set(2, vec3(-1.0f, -1.0f, 1.0f));	//	bl-corner
	Screen_vert.Set(3, vec3( 1.0f, -1.0f, 1.0f));	//	br-corner

	AttribData<vec2> Screen_UVs;
	Screen_UVs.Resize(4);
	Screen_UVs.Set(0, vec2(0.0f, 0.0f));
	Screen_UVs.Set(1, vec2(0.0f, 1.0f));
	Screen_UVs.Set(2, vec2(1.0f, 0.0f));
	Screen_UVs.Set(3, vec2(1.0f, 1.0f));

	AttribData<GLFace16> Screen_face;
	Screen_face.Resize(2);
	Screen_face.Set(0, GLFace16(0, 1, 2));
	Screen_face.Set(1, GLFace16(1, 3, 2));

	Polygons polys;
	polys.SetFaces(Screen_face);
	polys.SetMaterial(0);

	AttribData<Polygons> polygons;
	polygons.Resize(1);
	polygons.Set(0, polys);

	Screen.SetName("Screen");
	Screen.SetVertexArray(Screen_vert);
	Screen.SetUVArray(Screen_UVs);
	Screen.SetPolygonList(polygons);
	Screen.GenerateNormals(false);
	Screen.GenerateTangents();

	MaterialData Screen_mat;
	Screen_mat.MaterialType = HasRenderedTexture;

	Library<MaterialData> lib_mat;
	lib_mat.Resize(1);
	lib_mat.Set(0, Screen_mat);

	Library<MeshData> lib_mesh;
	lib_mesh.Resize(1);
	lib_mesh.Set(0, Screen);
	
	ScreenMesh.SetMeshData(lib_mesh);
	ScreenMesh.SetMaterialData(lib_mat);
}