private SceneNodeBase GetRootNode() { var rootNode = new GroupNode(); { var node = CameraNode.Create(); node.Scale = new vec3(1, 1, 1) * 0.2f; rootNode.Children.Add(node); } { var node = CubeNode.Create(); node.WorldPosition = new vec3(0, 0, -3.5f); node.RotationAxis = new vec3(1, 1, 1); node.RotationAngle = 17; rootNode.Children.Add(node); } { var node = RectNode.Create(); node.WorldPosition = new vec3(0, 0, -0.5f); node.Scale = new vec3(1, 1, 1) * 2; rootNode.Children.Add(node); } { var node = LineNode.Create(new vec3(0, 0, -6)); rootNode.Children.Add(node); } { var groundNode = GroundNode.Create(); //rootNode.Children.Add(groundNode); } return(rootNode); }
public static CubeNode Create() { // vertex buffer and index buffer. var model = new CubeModel(); // vertex shader and fragment shader. var vs = new VertexShader(vertexCode); var fs = new FragmentShader(fragmentCode); var array = new ShaderArray(vs, fs); // which vertex buffer maps to which attribute in shader. var map = new AttributeMap(); map.Add("inPosition", CubeModel.strPosition); // build a render method. var builder = new RenderMethodBuilder(array, map); // create node. var node = new CubeNode(model, builder); // initialize node. node.Initialize(); return(node); }