private void ControllerDraw(Controller3D mc, ulong unused) { items.Get <GLMatrixCalcUniformBlock>("MCUB").Set(gl3dcontroller.MatrixCalc); // set the matrix unform block to the controller 3d matrix calc. if (noisebox != null) { noisebox.InstanceCount = volumetricblock.Set(gl3dcontroller.MatrixCalc, boundingbox, 10.0f); // set up the volumentric uniform } dataoutbuffer.ZeroBuffer(); atomicbuffer.ZeroBuffer(); rObjects.Render(glwfc.RenderState, gl3dcontroller.MatrixCalc); GL.MemoryBarrier(MemoryBarrierFlags.AllBarrierBits); Vector4[] databack = dataoutbuffer.ReadVector4s(0, 10); //System.Diagnostics.Debug.WriteLine("avg {0} txtavg {1}", databack[0].ToStringVec(), databack[1].ToStringVec()); for (int i = 0; i < databack.Length; i += 1) { // System.Diagnostics.Debug.WriteLine("db " + databack[i].ToStringVec()); } this.Text = "Looking at " + gl3dcontroller.MatrixCalc.LookAt + " eye@ " + gl3dcontroller.MatrixCalc.EyePosition + " dir " + gl3dcontroller.PosCamera.CameraDirection + " Dist " + gl3dcontroller.MatrixCalc.EyeDistance + " Zoom " + gl3dcontroller.PosCamera.ZoomFactor; }