/// <summary> /// Render flabellum in modern opengl. /// </summary> /// <returns></returns> public static FlabellumRenderer Create() { var vertexShader = new VertexShader(vertexCode, "inPositoin", "inColor"); var fragmentShader = new FragmentShader(fragmentCode); var provider = new ShaderArray(vertexShader, fragmentShader); var map = new AttributeMap(); map.Add("inPosition", Flabellum.strPosition); map.Add("inColor", Flabellum.strColor); var renderer = new FlabellumRenderer(new Flabellum(), provider, map); renderer.Initialize(); return(renderer); }
/// <summary> /// Render propeller in legacy opengl. /// </summary> public PropellerRenderer() { this.ModelSize = new vec3(xLength * 2, yLength * 2, zLength * 2); this.Children.Add(new LegacyBoundingBoxNode(this.ModelSize)); var xflabellum = new FlabellumRenderer() { WorldPosition = new vec3(2, 0, 0) }; xflabellum.Children.Add(new LegacyBoundingBoxNode(xflabellum.ModelSize)); var nxflabellum = new FlabellumRenderer() { WorldPosition = new vec3(-2, 0, 0), RotationAngle = 180, }; nxflabellum.Children.Add(new LegacyBoundingBoxNode(nxflabellum.ModelSize)); var zflabellum = new FlabellumRenderer() { WorldPosition = new vec3(0, 0, -2), RotationAngle = 90, }; zflabellum.Children.Add(new LegacyBoundingBoxNode(zflabellum.ModelSize)); var nzflabellum = new FlabellumRenderer() { WorldPosition = new vec3(0, 0, 2), RotationAngle = 270, }; nzflabellum.Children.Add(new LegacyBoundingBoxNode(nzflabellum.ModelSize)); this.Children.Add(xflabellum); this.Children.Add(nxflabellum); this.Children.Add(zflabellum); this.Children.Add(nzflabellum); }