Exemplo n.º 1
0
        /// <summary>
        /// Initialize buffers
        /// </summary>
        /// <param name="name">Buffer name</param>
        /// <param name="geometry">Geometry to use</param>
        /// <param name="reverse">Reverse faces</param>
        protected void InitializeBuffers(string name, CubemapDescription.CubeMapGeometry geometry, bool reverse)
        {
            Vector3[] vData;
            uint[]    iData;
            if (geometry == CubemapDescription.CubeMapGeometry.Box)
            {
                GeometryUtil.CreateBox(1, 10, 10, out vData, out iData);
            }
            else if (geometry == CubemapDescription.CubeMapGeometry.Sphere)
            {
                GeometryUtil.CreateSphere(1, 10, 10, out vData, out iData);
            }
            else
            {
                throw new ArgumentException("Bad geometry enum type");
            }

            var vertices = new List <VertexPosition>();

            foreach (var v in vData)
            {
                vertices.Add(new VertexPosition()
                {
                    Position = v
                });
            }

            if (reverse)
            {
                iData = GeometryUtil.ChangeCoordinate(iData);
            }

            this.vertexBuffer = this.BufferManager.Add(name, vertices.ToArray(), false, 0);
            this.indexBuffer  = this.BufferManager.Add(name, iData, false);
        }