/// <summary> /// /// </summary> /// <returns></returns> public static SimpleComputeNode Create() { var model = new SimpleCompute(); RenderMethodBuilder reset, compute, render; { var cs = new CSharpGL.ComputeShader(resetCompute); var map = new AttributeMap(); var provider = new ShaderArray(cs); reset = new RenderMethodBuilder(provider, map); } { var cs = new CSharpGL.ComputeShader(computeShader); var map = new AttributeMap(); var provider = new ShaderArray(cs); compute = new RenderMethodBuilder(provider, map); } { var vs = new VertexShader(renderVert); var fs = new FragmentShader(renderFrag); var provider = new ShaderArray(vs, fs); var map = new AttributeMap(); map.Add("position", SimpleCompute.strPosition); render = new RenderMethodBuilder(provider, map); } var node = new SimpleComputeNode(model, reset, compute, render); node.Initialize(); return(node); }
private void FormMain_Load(object sender, EventArgs e) { var position = new vec3(0, 0, 1); var center = new vec3(0, 0, 0); var up = new vec3(0, 1, 0); var camera = new Camera(position, center, up, CameraType.Perspecitive, this.winGLCanvas1.Width, this.winGLCanvas1.Height); this.scene = new Scene(camera, this.winGLCanvas1); { var node = SimpleComputeNode.Create(); this.scene.RootElement = node; this.propGrid.SelectedObject = node; } var list = new ActionList(); var transformAction = new TransformAction(scene); list.Add(transformAction); var renderAction = new RenderAction(scene); list.Add(renderAction); this.actionList = list; }