private bool SetupCamera(BrActor *node) { if (node == null || node->Type != BrActorTypes.BR_ACTOR_CAMERA) { return(false); } var cam = (BrCamera *)node->TypeData; projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(cam->FieldOfView.ToDegrees().ToFloat()), cam->Aspect.ToFloat(), cam->Near.ToFloat(), cam->Far.ToFloat()); view = Matrix.Invert(Helper.XNAMatrixFromBrMatrix34(&node->Transform.Matrix)); return(true); }
private void RenderModel(BrActor *node, BrModel *model, BrMaterial *material, Matrix world, BrRenderStyles renderStyle) { // TODO: Use renderStyle to affect the way we render BasicEffect.World = world; BasicEffect.DiffuseColor = Color.White.ToVector3(); // RandomColor().ToVector3(); var m = ResolveModel(model); foreach (var p in BasicEffect.CurrentTechnique.Passes) { p.Apply(); m.Render(model); } }
private void SetupLights(BrActor *node) { if (node == null) { return; } if (node->Type == BrActorTypes.BR_ACTOR_LIGHT) { var light = (BrLight *)node->TypeData; // TODO: Implement lights } SetupLights(node->FirstChild); SetupLights(node->Next); }
private void RenderNode(BrActor *node, Matrix world) { if (node == null) { return; } var newWorld = Helper.XNAMatrixFromBrMatrix34(&node->Transform.Matrix) * world; if (node->Type == BrActorTypes.BR_ACTOR_MODEL && node->Model != null) { RenderModel(node, node->Model, node->Material, newWorld, node->RenderStyle); } RenderNode(node->FirstChild, newWorld); RenderNode(node->Next, world); }