/// <summary> /// lataa skybox. /// </summary> /// <param name="skyName">skyboxin nimi, eli esim plainsky_ jos tiedostot on plainsky_front.jpg, plainsky_back.jpg jne</param> /// <param name="ext">tiedoston pääte, eli jpg, png, dds, ..</param> /// <param name="scale"></param> public void LoadSkybox(string skyName, string ext, float scale) { Texture.LoadTextures = false; // älä lataa objektin textureita automaattisesti sky = new ObjModel("skybox", "skybox.obj", scale, scale, scale); // lataa skybox Texture.LoadTextures = true; // seuraava saa ladatakin.. sky.Boundings = null; string[] side = { "bottom", "left", "back", "right", "top", "front" }; for (int q = 0; q < 6; q++) { sky.Meshes()[q].Boundings = null; string fileName = skyName + side[q] + "." + ext; Texture newSkyTex = new Texture(); TextureLoaders.TextureLoaderParameters.WrapModeS = TextureWrapMode.ClampToEdge; TextureLoaders.TextureLoaderParameters.WrapModeT = TextureWrapMode.ClampToEdge; newSkyTex = Texture.Load(fileName); // etsi sivun materiaali Material matInf = sky.GetMaterial(sky.Meshes()[q].MaterialName); if (matInf != null) { // korvaa vanhat texturet matInf.DiffuseTex = newSkyTex; } } TextureLoaders.TextureLoaderParameters.WrapModeS = TextureWrapMode.Repeat; TextureLoaders.TextureLoaderParameters.WrapModeT = TextureWrapMode.Repeat; }
/// <summary> /// lataa kupu. /// </summary> /// <param name="skyName">texturen nimi</param> /// <param name="scale"></param> public void LoadSkydome(string skyName, float scale) { Texture.LoadTextures = false; // älä lataa objektin textureita automaattisesti sky = new ObjModel("skydome", "skydome.obj", scale, scale, scale); // lataa kupu Texture.LoadTextures = true; // seuraava saa ladatakin.. sky.Boundings = null; sky.Meshes()[0].Boundings = null; Texture newSkyTex = new Texture(); newSkyTex = Texture.Load(skyName); // etsi materiaali Material matInf = sky.GetMaterial(sky.Meshes()[0].MaterialName); if (matInf != null) { // korvaa vanha texture matInf.DiffuseTex = newSkyTex; } }
public void RenderMesh() { GL.PushMatrix(); GL.GetFloat(GetPName.ModelviewMatrix, Util.ModelMatrix); Util.ModelMatrix[12] = Util.ModelMatrix[13] = Util.ModelMatrix[14] = 0; GL.Disable(EnableCap.Lighting); GL.DepthMask(false); // ei kirjoiteta z-bufferiin GL.LoadMatrix(Util.ModelMatrix); for (int q = 0; q < sky.Objects.Length; q++) { sky.Meshes()[q].RenderMesh(); } Settings.NumOfObjects -= sky.Objects.Length - 1; GL.DepthMask(true); GL.Enable(EnableCap.Lighting); GL.PopMatrix(); }