public void AddModel(InstancedModel model, ShaderProgram program) { var programHandle = program.GetHandle(); GL.UseProgram(programHandle); model.SaveAs(programHandle); int ambLU = GL.GetUniformLocation(programHandle, "ambientLight"); int viewU = GL.GetUniformLocation(programHandle, "viewMatrix"); int projU = GL.GetUniformLocation(programHandle, "projMatrix"); _renderables.Add(new Renderable(model, program, ambLU, viewU, projU)); }
private void AddSkybox() { Console.Write("Creating skybox...\n"); var positiveX = Image.FromFile(Options.GetInstance().PathToImageA);//, false, true); var negativeX = Image.FromFile(Options.GetInstance().PathToImageA);//, true, false); var positiveY = Image.FromFile(Options.GetInstance().PathToImageB);//, false, true); var negativeY = Image.FromFile(Options.GetInstance().PathToImageB);//, true, false); var positiveZ = Image.FromFile(Options.GetInstance().PathToImageC);//, false, true); var negativeZ = Image.FromFile(Options.GetInstance().PathToImageC);//, true, false); List<OptionalDataBuffer> list = new List<OptionalDataBuffer>() { new TexturedCube(positiveX, negativeX, positiveY, negativeY, positiveZ, negativeZ) }; var matrix = Matrix.Scaling(new Vector3(4096)); var model = new InstancedModel(SkyboxMesh, matrix, list); _scene.AddModel(model); //add to Scene and save Console.Write("... done creating skybox.\n"); }
private void AddAllBonds() { var BONDS = _trajectory.GetTopology().GetBonds(); Console.WriteLine("Trajectory consists of {0} bonds.", BONDS.Count); Console.WriteLine("Adding Bonds to Scene..."); List<OptionalDataBuffer> list = new List<OptionalDataBuffer>(){new ColorBuffer(BOND_COLOR, 6)}; _bondInstance = new InstancedModel(GetBondMesh(), list); var snapshotZero = _trajectory.GetSnapshot(0); foreach (var bond in BONDS) { var positionA = snapshotZero.GetPosition(bond.First); var positionB = snapshotZero.GetPosition(bond.Second); _bondInstance.AddInstance(GenerateBondMatrix(positionA, positionB)); } _scene.AddModel(_bondInstance); Console.WriteLine("... done adding bonds for that trajectory."); }
public void AddModel(InstancedModel model) { AddModel(model, ShaderManager.CreateProgram(model, GetVertexShaderGLSL(), GetFragmentShaderGLSL(), Lights)); }
public Renderable(InstancedModel m, ShaderProgram prog, int a, int v, int p) { model = m; program = prog; ambientLightUniform = a; viewUniform = v; projUniform = p; }