/// <summary> /// Generate and add texture to the mesh. /// </summary> public void SetTexture(int type) { textureIndex = type; ColorMixer background; ColorMixer stripe; Texture2D tex; Material mat = mainMat; int period; int width; switch (type) { case 0: default: // White purple rubber, bright yellow gap period = 82; width = 11; Settings.mappingDistance = 3; Settings.ScrollSpeed = 0.066f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.9f, 1f), 0.1f); background.InsertColorNode(new Color(1f, 0, 1f), 0.4f); background.InsertColorNode(new Color(0.4f, 0, 0.6f), 0.7f); background.InsertColorNode(new Color(0.4f, 0, 0.6f), 0.8f); background.InsertColorNode(new Color(1f, 0, 1f), 0.9f); background.InsertColorNode(new Color(1f, 0.9f, 1f), 1f); stripe.InsertColorNode(new Color(0.9f,0.9f,0.45f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_SPECGLOSSMAP"); mat.DisableKeyword("_EMISSION"); break; case 1: // White-blue rubber, silver metal wire period = 60; width = 8; Settings.mappingDistance = 4; Settings.ScrollSpeed = 0.05f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(Color.white, 0.0f); background.InsertColorNode(new Color(0.5f, 0.75f, 1f), 0.3f); background.InsertColorNode(Color.blue, 0.7f); background.InsertColorNode(Color.blue, 0.8f); background.InsertColorNode(new Color(0.5f, 0.75f, 1f), 0.9f); background.InsertColorNode(Color.white, 1f); stripe.InsertColorNode(new Color(0.5f,0.5f,0.5f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.43f, 0.43f, 0.43f, 0.6f), 0); stripe.InsertColorNode(new Color(0.9f, 0.9f, 0.9f, 0.85f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.25f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.75f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_EMISSION"); break; case 2: // Dark green shell, light green fluorescence period = 60; width = 8; Settings.mappingDistance = 4; Settings.ScrollSpeed = 0.08f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.081f, 0.1137f, 0.06f), 0f); stripe.InsertColorNode(new Color(0f, 0f, 0f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0f, 0f, 0f, 0f), 0); stripe.InsertColorNode(new Color(0.6f, 1f, 0.4f, 1f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_EmissionMap", tex); mat.SetColor("_EmissionColor", new Color(0.9f, 0.9f, 0.9f)); mat.EnableKeyword("_EMISSION"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.15f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.85f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_SPECGLOSSMAP"); break; case 3: // Gold, bright lamp period = 60; width = 10; Settings.mappingDistance = 4; Settings.ScrollSpeed = 0.05f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.7f, 0.3f), 0f); stripe.InsertColorNode(new Color(0.125f, 0.125f, 0.1f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.7f, 0.3f, 0.75f), 0); stripe.InsertColorNode(new Color(0.3f, 0.3f, 0.3f, 0.4f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0f, 0f, 0f, 0f), 0); stripe.InsertColorNode(new Color(1f, 1f, 0.8f, 1f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_EmissionMap", tex); mat.SetColor("_EmissionColor", new Color(0f, 0f, 0f)); mat.EnableKeyword("_EMISSION"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.15f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.85f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); break; case 4: // Grey stone, lava band period = 60; width = 10; Settings.mappingDistance = 4; Settings.ScrollSpeed = 0.05f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.25f, 0.25f, 0.25f), 0f); stripe.InsertColorNode(new Color(0.05f, 0.05f, 0.05f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0f, 0f, 0f, 0.25f), 0); stripe.InsertColorNode(new Color(0.25f, 0.25f, 0.25f, 0.5f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0f, 0f, 0f, 0f), 0); stripe.InsertColorNode(new Color(0.85f, 0.7f, 0.1f, 1f), 0.1f); stripe.InsertColorNode(new Color(1f, 0.05f, 0f, 1f), 0.3f); stripe.InsertColorNode(new Color(0f, 0f, 0f, 1f), 0.5f); stripe.InsertColorNode(new Color(0f, 0f, 0f, 1f), 0.6f); stripe.InsertColorNode(new Color(1f, 0.05f, 0f, 1f), 0.8f); stripe.InsertColorNode(new Color(0.85f, 0.7f, 0.1f, 1f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_EmissionMap", tex); mat.SetColor("_EmissionColor", new Color(1f, 1f, 1f)); mat.EnableKeyword("_EMISSION"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.15f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.85f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); break; case 5: // White plaster, black porcelain background = new ColorMixer(); stripe = new ColorMixer(); period = 60; width = 30; Settings.mappingDistance = 4; Settings.ScrollSpeed = 0.05f; background.InsertColorNode(Color.white, 0f); stripe.InsertColorNode(Color.black, 0f); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.2f, 0.2f, 0.2f, 0.5f), 0); stripe.InsertColorNode(new Color(0.3f, 0.3f, 0.3f, 0.85f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.1f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.1f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.9f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.1f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_EMISSION"); break; case 6: // Yellow-red-black rubber + light period = 82; width = 12; Settings.mappingDistance = 3; Settings.ScrollSpeed = 0.066f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(Color.yellow, 0.1f); background.InsertColorNode(Color.red, 0.4f); background.InsertColorNode(Color.black, 0.7f); background.InsertColorNode(Color.black, 0.8f); background.InsertColorNode(Color.red, 0.9f); background.InsertColorNode(Color.yellow, 1f); tex = MeshFactory.CreateStripedTexture(2048, period, 0, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(Color.black, 0f); stripe.InsertColorNode(Color.yellow, 0.1f); stripe.InsertColorNode(Color.red, 0.4f); stripe.InsertColorNode(Color.black, 0.7f); stripe.InsertColorNode(Color.black, 0.8f); stripe.InsertColorNode(Color.red, 0.9f); stripe.InsertColorNode(Color.yellow, 1f); tex = MeshFactory.CreateStripedTexture(2048, period, width-2, 21, background, stripe); mat.SetTexture("_EmissionMap", tex); mat.SetColor("_EmissionColor", new Color(0.5f, 0.5f, 0.5f)); mat.EnableKeyword("_EMISSION"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.1f, 0f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.2f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.8f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.1f, 1f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_SPECGLOSSMAP"); break; case 7: // White-yellow-orange plaster, black stripe period = 82; width = 11; Settings.mappingDistance = 3; Settings.ScrollSpeed = 0.066f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 1f, 0.8f), 0.1f); background.InsertColorNode(new Color(1f, 1f, 0f), 0.3f); background.InsertColorNode(new Color(1f, 0.3f, 0f), 0.7f); background.InsertColorNode(new Color(1f, 0.3f, 0f), 0.8f); background.InsertColorNode(new Color(1f, 1f, 0f), 0.93f); background.InsertColorNode(new Color(1f, 1f, 0.8f), 1f); stripe.InsertColorNode(new Color(0.1f, 0.1f, 0.1f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.33f, 0.33f, 0.33f, 0.33f), 0); stripe.InsertColorNode(new Color(0.4f, 0.4f, 0.4f, 0.5f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 1f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 0f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_EMISSION"); break; case 8: // White bone, metal band period = 82; width = 22; Settings.mappingDistance = 3; Settings.ScrollSpeed = 0.066f; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0.6f, 0.6f, 0.6f), 0f); stripe.InsertColorNode(new Color(0f, 0f, 0f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.mainTexture = tex; background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(0f, 0f, 0f, 0.4f), 0); stripe.InsertColorNode(new Color(0.7f, 0.7f, 0.7f, 0.8f), 0); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe); mat.SetTexture("_SpecGlossMap", tex); mat.EnableKeyword("_SPECGLOSSMAP"); background = new ColorMixer(); stripe = new ColorMixer(); background.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 0f), 0); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.1f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.5f, 0.5f), 0.9f); stripe.InsertColorNode(new Color(1f, 0.5f, 0.2f, 1f), 1); tex = MeshFactory.CreateStripedTexture(2048, period, width, 20, background, stripe, true); mat.SetTexture("_BumpMap", tex); mat.EnableKeyword("_NORMALMAP"); mat.DisableKeyword("_EMISSION"); break; } }