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); }
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); }