Esempio n. 1
0
        /// <summary>
        /// Create a label renderer.
        /// </summary>
        /// <param name="maxCharCount">Max char count to display for this label. Careful to set this value because greater <paramref name="maxCharCount"/> means more space ocupied in GPU nemory.</param>
        /// <param name="labelHeight">Label height(in pixels)</param>
        /// <param name="fontTexture">Use which font to render text?</param>
        /// <returns></returns>
        public static LabelRenderer Create(int maxCharCount = 64, int labelHeight = 32, IFontTexture fontTexture = null)
        {
            if (fontTexture == null)
            {
                fontTexture = FontTexture.Default;
            }

            var model = new TextModel(maxCharCount);

            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources\Label.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources\Label.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", TextModel.strPosition);
            map.Add("in_UV", TextModel.strUV);

            var blendState = new BlendState(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.One);

            var renderer = new LabelRenderer(model, provider, map, blendState);

            renderer.blendState  = blendState;
            renderer.fontTexture = fontTexture;
            renderer.LabelHeight = labelHeight;

            return(renderer);
        }
Esempio n. 2
0
        /// <summary>
        /// Create a text renderer.
        /// </summary>
        /// <param name="maxCharCount">Max char count to display for this label. Careful to set this value because greater <paramref name="maxCharCount"/> means more space ocupied in GPU nemory.</param>
        /// <param name="labelHeight">Label height(in pixels)</param>
        /// <param name="fontTexture">Use which font to render text?</param>
        /// <returns></returns>
        public static TextRenderer Create(int maxCharCount = 64, int labelHeight = 32, IFontTexture fontTexture = null)
        {
            if (fontTexture == null)
            {
                fontTexture = FontTexture.Default;
            }                                                              // FontResource.Default; }

            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources.TextModel.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources.TextModel.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("position", TextModel.strPosition);
            map.Add("uv", TextModel.strUV);
            var model    = new TextModel(maxCharCount);
            var renderer = new TextRenderer(model, provider, map);

            renderer.fontTexture = fontTexture;

            return(renderer);
        }
Esempio n. 3
0
 public OrderIndependentTransparencyRenderer(IBufferable model, vec3 lengths,
                                             string positionName, string normalName)
 {
     {
         var map = new AttributeMap();
         map.Add("position", positionName);
         map.Add("normal", normalName);
         var build_lists = new ShaderCode[2];
         build_lists[0] = new ShaderCode(File.ReadAllText(@"shaders\OIT\build_lists.vert"), ShaderType.VertexShader);
         build_lists[1] = new ShaderCode(File.ReadAllText(@"shaders\OIT\build_lists.frag"), ShaderType.FragmentShader);
         var provider = new ShaderCodeArray(build_lists);
         this.buildListsRenderer = new PickableRenderer(model, provider, map, positionName);
     }
     {
         var map = new AttributeMap();
         map.Add("position", positionName);
         var resolve_lists = new ShaderCode[2];
         resolve_lists[0] = new ShaderCode(File.ReadAllText(@"shaders\OIT\resolve_lists.vert"), ShaderType.VertexShader);
         resolve_lists[1] = new ShaderCode(File.ReadAllText(@"shaders\OIT\resolve_lists.frag"), ShaderType.FragmentShader);
         var provider = new ShaderCodeArray(resolve_lists);
         this.resolve_lists = new PickableRenderer(model, provider, map, positionName);
     }
     {
         this.depthTestState = new DepthTestState(false);
         this.cullFaceState  = new CullFaceState(false);
     }
     this.ModelSize = lengths;
 }
Esempio n. 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="anchor"></param>
        /// <param name="margin"></param>
        /// <param name="size"></param>
        /// <param name="zNear"></param>
        /// <param name="zFar"></param>
        /// <param name="fontTexture"></param>
        /// <param name="maxCharCount"></param>
        public UIText(
            System.Windows.Forms.AnchorStyles anchor, System.Windows.Forms.Padding margin,
            System.Drawing.Size size, int zNear, int zFar, IFontTexture fontTexture = null, int maxCharCount = 100)
            : base(anchor, margin, size, zNear, zFar)
        {
            if (fontTexture == null)
            {
                this.fontTexture = FontTexture.Default;
            }                                          // FontResource.Default; }
            else
            {
                this.fontTexture = fontTexture;
            }

            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources.TextModel.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources.TextModel.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("position", TextModel.strPosition);
            map.Add("uv", TextModel.strUV);
            var model    = new TextModel(maxCharCount);
            var renderer = new Renderer(model, provider, map);

            this.textModel = model;
            this.Renderer  = renderer;
        }
Esempio n. 5
0
        public static SimpleComputeRenderer Create()
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\SimpleComputeRenderer\compute.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\SimpleComputeRenderer\compute.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("position", SimpleCompute.strPosition);
            return(new SimpleComputeRenderer(new SimpleCompute(), provider, map));
        }
Esempio n. 6
0
        public static GroundRenderer Create(GroundModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\Ground.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\Ground.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", GroundModel.strPosition);
            var renderer = new GroundRenderer(model, provider, map);

            return(renderer);
        }
Esempio n. 7
0
        public static BillboardRenderer Create(IBufferable model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\billboard.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\billboard.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Positions", BillboardModel.strPosition);
            var billboardRenderer = new BillboardRenderer(model, provider, map);

            return(billboardRenderer);
        }
Esempio n. 8
0
        public static ZeroAttributeRenderer Create()
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\ZeroAttributeRenderer\ZeroAttribute.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\ZeroAttributeRenderer\ZeroAttribute.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();// no items in this map.
            var model    = new ZeroAttributeModel(DrawMode.TriangleStrip, 0, 4);
            var renderer = new ZeroAttributeRenderer(model, provider, map, new PointSpriteState());

            renderer.ModelSize = new vec3(2.05f, 2.05f, 0.01f);

            return(renderer);
        }
Esempio n. 9
0
        public static WellRenderer Create(WellModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\Well.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\Well.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", WellModel.strPosition);
            map.Add("in_Brightness", WellModel.strBrightness);
            var renderer = new WellRenderer(model, provider, map);

            return(renderer);
        }
Esempio n. 10
0
        // you can replace PointCloudModel with IBufferable in the method's parameter.
        public static RandomPointsRenderer Create(RandomPointsModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\RandomPoints.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\RandomPoints.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new CSharpGL.AttributeMap();

            map.Add("in_Position", RandomPointsModel.position);
            var renderer = new RandomPointsRenderer(model, provider, map);

            renderer.ModelSize = model.Lengths;
            //renderer.stateList.Add(new PointSizeState(10));
            return(renderer);
        }
Esempio n. 11
0
        internal static SimpleRenderer Create(IBufferable model, vec3 lengths, string positionNameInIBufferable)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(@"Resources\Simple.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(@"Resources\Simple.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", "position");
            map.Add("in_Color", "color");
            var renderer = new SimpleRenderer(model, provider, map, positionNameInIBufferable);

            renderer.ModelSize = lengths;
            return(renderer);
        }
Esempio n. 12
0
        public static QuadStripColoredRenderer Create(QuadStripColoredModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\QuadStripColor.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\QuadStripColor.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", QuadStripColoredModel.position);
            map.Add("in_Color", QuadStripColoredModel.color);
            var renderer = new QuadStripColoredRenderer(model, provider, map);

            renderer.quadCount = model.quadCount;
            return(renderer);
        }
Esempio n. 13
0
        public static QuadStripRenderer Create(QuadStripModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\QuadStripTexture.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\QuadStripTexture.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", QuadStripModel.position);
            map.Add("in_TexCoord", QuadStripModel.texCoord);

            var renderer = new QuadStripRenderer(model, provider, map);

            return(renderer);
        }
Esempio n. 14
0
        public static LinesRenderer Create(LinesModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\Lines.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\Lines.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", LinesModel.position);
            var renderer = new LinesRenderer(model, provider, map);

            renderer.markerCount = model.markerCount;

            return(renderer);
        }
Esempio n. 15
0
        public static HemisphereLightingRenderer Create()
        {
            var model       = new Teapot();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("inPosition", Teapot.strPosition);
            map.Add("inNormal", Teapot.strNormal);
            var renderer = new HemisphereLightingRenderer(model, provider, map, Teapot.strPosition);

            renderer.ModelSize = model.Size;
            return(renderer);
        }
Esempio n. 16
0
        public static PointSpriteRenderer Create(int particleCount)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\PointSprite.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\PointSprite.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("position", PointSpriteModel.strposition);
            var model    = new PointSpriteModel(particleCount);
            var renderer = new PointSpriteRenderer(model, provider, map);

            renderer.ModelSize = model.Lengths;

            return(renderer);
        }
Esempio n. 17
0
        public static BufferBlockRenderer Create()
        {
            //var model = new Teapot();
            //var model = new ZeroAttributeModel(DrawMode.Triangles, 0, vertexCount);
            var model       = new BufferBlockModel();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\BufferBlockRenderer\BufferBlock.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\BufferBlockRenderer\BufferBlock.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();// no vertex attribute.
            var renderer = new BufferBlockRenderer(model, provider, map);

            renderer.ModelSize = new vec3(2, 2, 2);// model.Lengths;

            return(renderer);
        }
        public static OrderDependentTransparencyRenderer Create(IBufferable model, vec3 lengths, string position, string color)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\ODT\Transparent.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\ODT\Transparent.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", position);
            map.Add("in_Color", color);
            var renderer = new OrderDependentTransparencyRenderer(model, provider, map, position, new BlendState(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.OneMinusSourceAlpha));

            renderer.ModelSize = lengths;

            return(renderer);
        }
Esempio n. 19
0
        public static SimplexNoiseRenderer Create()
        {
            var model       = new Sphere(1, 180, 360);
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\SimplexNoise.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\SimplexNoise.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", Sphere.strPosition);
            var renderer = new SimplexNoiseRenderer(model, provider, map, Sphere.strPosition);

            renderer.ModelSize = model.Lengths;

            return(renderer);
        }
        public static CatesianGridRenderer Create(vec3 originalWorldPosition, CatesianGrid grid, Texture codedColorSampler)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\HexahedronGrid.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\HexahedronGrid.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", CatesianGrid.strPosition);
            map.Add("in_uv", CatesianGrid.strColor);
            var renderer = new CatesianGridRenderer(originalWorldPosition, grid, provider, map, codedColorSampler);

            renderer.ModelSize     = (grid.DataSource.SourceActiveBounds.MaxPosition - grid.DataSource.SourceActiveBounds.MinPosition).Abs();
            renderer.WorldPosition = -grid.DataSource.Position;
            return(renderer);
        }
Esempio n. 21
0
        public static TrefoilKnotRenderer Create(TrefoilKnotModel model)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\TrefoilKnotRenderer\TrefoilKnot.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\TrefoilKnotRenderer\TrefoilKnot.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", TrefoilKnotModel.strPosition);
            map.Add("in_TexCoord", TrefoilKnotModel.strTexCoord);
            var renderer = new TrefoilKnotRenderer(model, provider, map, TrefoilKnotModel.strPosition);

            renderer.ModelSize = model.Lengths;

            return(renderer);
        }
Esempio n. 22
0
        public static UniformStructRenderer Create()
        {
            var model       = new Teapot();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\UniformStructRenderer\UniformStruct.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\UniformStructRenderer\UniformStruct.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("vPos", Teapot.strPosition);
            map.Add("vColor", Teapot.strColor);
            var renderer = new UniformStructRenderer(model, provider, map);

            renderer.ModelSize = model.Size;

            return(renderer);
        }
Esempio n. 23
0
        public static EmitNormalLineRenderer Create(IBufferable model, string position, string normal, vec3 lengths)
        {
            var shaderCodes = new ShaderCode[3];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\EmitNormalLineRenderer\EmitNormalLine.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\EmitNormalLineRenderer\EmitNormalLine.geom"), ShaderType.GeometryShader);
            shaderCodes[2] = new ShaderCode(File.ReadAllText(@"shaders\EmitNormalLineRenderer\EmitNormalLine.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", position);
            map.Add("in_Normal", normal);
            var renderer = new EmitNormalLineRenderer(model, provider, map, position);

            renderer.ModelSize = lengths;

            return(renderer);
        }
Esempio n. 24
0
        public static WaterBackgroundRenderer Create(int waterPlaneLength)
        {
            var model       = new Sphere(waterPlaneLength / 2.0f + 0.5f, 20, 80);
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\water\Background.vert.glsl"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\water\Background.frag.glsl"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("a_vertex", PlaneModel.strPosition);
            //map.Add("a_normal", PlaneModel.strNormal);
            var renderer = new WaterBackgroundRenderer(model, provider, map, new FrontFaceState(FrontFaceMode.CW));

            renderer.ModelSize = new vec3(waterPlaneLength + 1, waterPlaneLength + 1, waterPlaneLength + 1);

            return(renderer);
        }
Esempio n. 25
0
        public static GreyFilterRenderer Create()
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\GreyFilterRenderer\GreyFilter.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\GreyFilterRenderer\GreyFilter.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("a_vertex", GreyFilterModel.strPosition);
            map.Add("a_texCoord", GreyFilterModel.strTexCoord);
            var model    = new GreyFilterModel();
            var renderer = new GreyFilterRenderer(model, provider, map, new PointSpriteState());

            renderer.ModelSize = model.Lengths;

            return(renderer);
        }
Esempio n. 26
0
        private Renderer InitBackfaceRenderer()
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\RaycastVolumeRenderer\backface.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\RaycastVolumeRenderer\backface.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("position", RaycastModel.strposition);
            map.Add("boundingBox", RaycastModel.strcolor);
            var backfaceRenderer = new Renderer(model, provider, map);

            backfaceRenderer.Initialize();
            backfaceRenderer.StateList.Add(new CullFaceState(CullFaceMode.Front, true));

            return(backfaceRenderer);
        }
Esempio n. 27
0
        public static InnerImageProcessingRenderer Create(string textureFilename = @"Textures\edgeDetection.bmp")
        {
            var model = new ImageProcessingModel();

            ShaderCode[] simpleShader = new ShaderCode[2];
            simpleShader[0] = new ShaderCode(File.ReadAllText(@"shaders\ImageProcessingRenderer\ImageProcessing.vert"), ShaderType.VertexShader);
            simpleShader[1] = new ShaderCode(File.ReadAllText(@"shaders\ImageProcessingRenderer\ImageProcessing.frag"), ShaderType.FragmentShader);
            var provider        = new ShaderCodeArray(simpleShader);
            var propertyNameMap = new AttributeMap();

            propertyNameMap.Add("vert", "position");
            propertyNameMap.Add("uv", "uv");
            var renderer = new InnerImageProcessingRenderer(
                model, provider, propertyNameMap, ImageProcessingModel.strposition);

            renderer.textureFilename = textureFilename;

            return(renderer);
        }
Esempio n. 28
0
        public static WaterTextureRenderer Create(int waterPlaneLength)
        {
            var model       = new PlaneModel(waterPlaneLength / 2);
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\water\WaterTexture.vert.glsl"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\water\WaterTexture.frag.glsl"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("a_vertex", PlaneModel.strPosition);
            map.Add("a_texCoord", PlaneModel.strTexCoord);
            var renderer = new WaterTextureRenderer(model, provider, map, new FrontFaceState(FrontFaceMode.CCW), new ClearColorState(Color.Black, 0), new ViewportState(0, 0, TEXTURE_SIZE, TEXTURE_SIZE));

            renderer.ModelSize        = new vec3(waterPlaneLength, 0, waterPlaneLength);
            renderer.waterPlaneLength = waterPlaneLength;

            return(renderer);
        }
Esempio n. 29
0
        public static WaterRenderer Create(int waterPlaneLength)
        {
            var model       = new WaterPlaneModel(waterPlaneLength);
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\water\Water.vert.glsl"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\water\Water.frag.glsl"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("a_vertex", WaterPlaneModel.strPosition);
            var renderer = new WaterRenderer(model, provider, map, new FrontFaceState(FrontFaceMode.CCW));

            renderer.waterTextureRenderer = WaterTextureRenderer.Create(waterPlaneLength);
            renderer.backgroundRenderer   = WaterBackgroundRenderer.Create(waterPlaneLength);
            renderer.ModelSize            = new vec3(waterPlaneLength + 1, waterPlaneLength + 1, waterPlaneLength + 1);
            renderer.waterPlaneLength     = waterPlaneLength;

            return(renderer);
        }
 protected override void DoInitialize()
 {
     {
         IBufferable model       = new ParticleModel();
         var         shaderCodes = new ShaderCode[2];
         shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\ParticleSimulatorRenderer\particleSimulator.vert"), ShaderType.VertexShader);
         shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\ParticleSimulatorRenderer\particleSimulator.frag"), ShaderType.FragmentShader);
         var provider = new ShaderCodeArray(shaderCodes);
         var map      = new AttributeMap();
         map.Add("position", ParticleModel.strPosition);
         var particleRenderer = new ParticleRenderer(model, provider, map, new DepthTestState(false), new BlendState(BlendingSourceFactor.One, BlendingDestinationFactor.One));
         particleRenderer.Initialize();
         this.particleRenderer = particleRenderer;
     }
     {
         var particleComputeRenderer = new ParticleComputeRenderer(
             this.particleRenderer.PositionBuffer,
             this.particleRenderer.VelocityBuffer);
         particleComputeRenderer.Initialize();
         this.particleComputeRenderer = particleComputeRenderer;
     }
 }