Esempio n. 1
0
        private static SceneObject ProcessOBJ(ObjContext objContext)
        {
            if (objContext == null)
            {
                throw new ArgumentNullException("objContext");
            }

            SceneObjectGeometry sceneObject = new SceneObjectGeometry();

            // Program shader to all objects
            // sceneObject.ProgramTag = ShadersLibrary.Instance.CreateProgramTag("OpenGL.Standard+LambertVertex", new ShaderCompilerContext("GLO_DEBUG_NORMAL"));
            sceneObject.ProgramTag = ShadersLibrary.Instance.CreateProgramTag("OpenGL.Standard+PhongFragment");
            // sceneObject.ProgramTag = ShadersLibrary.Instance.CreateProgramTag("OpenGL.Standard+LambertVertex");

            foreach (ObjGroup objGroup in objContext.Groups)
            {
                foreach (ObjGeometry objGeometry in objGroup.MergeGeometries())
                {
                    VertexArrays     vertexArray = objGeometry.CreateArrays(objContext);
                    GraphicsStateSet objectState = new GraphicsStateSet();

                    objectState.DefineState(objGeometry.CreateMaterialState());

                    sceneObject.AddGeometry(vertexArray, objectState);
                }
            }

            return(sceneObject);
        }
Esempio n. 2
0
        private GraphicsStateSet CreateBBoxState(BoundingBox bbox)
        {
            GraphicsStateSet bboxState          = new GraphicsStateSet();
            TransformState   bboxTransformState = new TransformState();

            bboxTransformState.LocalModel.Translate(bbox.Position);
            bboxTransformState.LocalModel.Scale(bbox.Size);
            bboxState.DefineState(bboxTransformState);

            return(bboxState);
        }