public override void Initialize(Renderer renderer) { base.Initialize(renderer); //Prepare the render state used by the grid/axis var rs = new RenderState(); rs.DepthTest = true; rs.DepthMask = true; //Define the memory layout of the vertex declaration vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position); vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.VertexColor); //compile shader from SPIR-V source code and specify var src = new SPIRVSource() { VertexShader = Shaders.GridVertex, FragmentShader = Shaders.GridFragment }; shader = renderer.RenderFactory.CreateShaderProgram(src); //bake the graphic render pipeline pipeline = renderer.RenderFactory.CreatePipeline(shader, rs, vd, DrawOperation.Lines); ms = new MemoryStream(16 * 4); w = new BinaryWriter(ms); }
public override void Initialize(Renderer renderer) { //compile the shader var src = new SPIRVSource() { VertexShader = Shaders.BackgroundVertex, FragmentShader = Shaders.BackgroundFragment, }; shader = renderer.RenderFactory.CreateShaderProgram(src); //prepare the render state var rs = new RenderState(); rs.CullFace = false; rs.DepthMask = false; //Bake the render pipeline //This entity rendering does not need a vertex buffer //so the vertex declaration is an empty definition here var vd = new VertexDeclaration(); pipeline = renderer.RenderFactory.CreatePipeline(shader, rs, vd, DrawOperation.Triangles); //The data used by the shader's push constant float[] data = { 1000, 0, 0, 0, //height 0.22f, 0.2f, 0.13f, 1.0f, //upper color 0.2f, 0.3f, 0.3f, 1.0f //lower color }; constants = new byte[data.Length * 4]; Buffer.BlockCopy(data, 0, constants, 0, constants.Length); }
/// <summary> /// Initialize the renderer /// </summary> /// <param name="renderer"></param> public override void Initialize(Renderer renderer) { base.Initialize(renderer); //create the shader program from the precompiled SPIR-V byte code var src = new SPIRVSource() { VertexShader = Shaders.NormalsVertex, FragmentShader = Shaders.NormalsFragment }; shader = renderer.RenderFactory.CreateShaderProgram(src); //default render state var rs = new RenderState(); //Define the memory layout of the vertex var vd = new VertexDeclaration(); vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position); //create the pipeline and vertex buffer pipeline = renderer.RenderFactory.CreatePipeline(shader, rs, vd, DrawOperation.Lines); buffer = renderer.RenderFactory.CreateVertexBuffer(vd); }
public override void Initialize(Renderer renderer) { //compile the shader var src = new SPIRVSource() { VertexShader = Shaders.BackgroundVertex, FragmentShader = Shaders.BackgroundFragment, }; shader = renderer.RenderFactory.CreateShaderProgram(src); //prepare the render state var rs = new RenderState(); rs.CullFace = false; rs.DepthMask = false; //Bake the render pipeline //This entity rendering does not need a vertex buffer //so the vertex declaration is an empty definition here var vd = new VertexDeclaration(); pipeline = renderer.RenderFactory.CreatePipeline(shader, rs, vd, DrawOperation.Triangles); }