Beispiel #1
0
        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));
        }
Beispiel #2
0
        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.");
        }
Beispiel #4
0
 public void AddModel(InstancedModel model)
 {
     AddModel(model, ShaderManager.CreateProgram(model,
         GetVertexShaderGLSL(), GetFragmentShaderGLSL(), Lights));
 }
Beispiel #5
0
 public Renderable(InstancedModel m, ShaderProgram prog, int a, int v, int p)
 {
     model = m;
     program = prog;
     ambientLightUniform = a;
     viewUniform = v;
     projUniform = p;
 }