private object ResolveMaterial(string materialPath)
    {
        using var material = _materials.LoadMaterial(materialPath);
        if (material.Resource == null)
        {
            Logger.Error("Unable to load material {0}", materialPath);
            return(-1);
        }

        return(material);
    }
示例#2
0
    public FrogGrappleController(RenderingDevice device,
                                 MdfMaterialFactory mdfFactory)
    {
        mDevice        = device;
        mBufferBinding = device.CreateMdfBufferBinding();

        mTongueMaterial = mdfFactory.LoadMaterial("art/meshes/Monsters/GiantFrog/tongue.mdf");

        mVertexBuffer = device.CreateEmptyVertexBuffer(TongueVertex.Size * VertexCount, debugName: "FrogTongue");

        CreateIndexBuffer();

        mBufferBinding.AddBuffer(mVertexBuffer, 0, TongueVertex.Size)
        .AddElement(VertexElementType.Float4, VertexElementSemantic.Position)
        .AddElement(VertexElementType.Float4, VertexElementSemantic.Normal)
        .AddElement(VertexElementType.Float2, VertexElementSemantic.TexCoord);
    }
    protected LineSegmentRenderer(RenderingDevice device, MdfMaterialFactory materialFactory, PerlinNoise noise,
                                  int maxLineSegments, string debugName)
    {
        _noise   = noise;
        Vertices = new Vertex[maxLineSegments * 2];
        Jitter   = new float[maxLineSegments];

        _device   = device;
        _material = materialFactory.LoadMaterial("art/meshes/lightning.mdf",
                                                 material => material.perVertexColor = true);

        _indexBuffer    = CreateIndexBuffer(_device, maxLineSegments, debugName);
        _capIndexBuffer = CreateIndexBuffer2(_device, debugName);
        _vertexBuffer   =
            _device.CreateEmptyVertexBuffer(Vertex.Size * Vertices.Length, debugName: debugName);
        _bufferBinding = _device.CreateMdfBufferBinding(true).Ref();
        _bufferBinding.Resource.AddBuffer <Vertex>(_vertexBuffer.Resource, 0)
        .AddElement(VertexElementType.Float3, VertexElementSemantic.Position)
        .AddElement(VertexElementType.Float3, VertexElementSemantic.Normal)
        .AddElement(VertexElementType.Color, VertexElementSemantic.Color)
        .AddElement(VertexElementType.Float2, VertexElementSemantic.TexCoord);
    }
示例#4
0
    public MapObjectRenderer(
        RenderingDevice device,
        MdfMaterialFactory mdfFactory,
        AasRenderer aasRenderer)
    {
        mDevice      = device;
        mAasRenderer = aasRenderer;

        mHighlightMaterial  = mdfFactory.LoadMaterial("art/meshes/hilight.mdf");
        mBlobShadowMaterial = mdfFactory.LoadMaterial("art/meshes/shadow.mdf");
        mOccludedMaterial   = mdfFactory.LoadMaterial("art/meshes/occlusion.mdf");

        mGrappleController = new FrogGrappleController(device, mdfFactory);

        Globals.ConfigManager.OnConfigChanged += UpdateShadowType;
        UpdateShadowType();

        // Load the weapon glow effect files
        mGlowMaterials[0] = mdfFactory.LoadMaterial("art/meshes/wg_magic.mdf");
        mGlowMaterials[1] = mdfFactory.LoadMaterial("art/meshes/wg_acid.mdf");
        mGlowMaterials[2] = mdfFactory.LoadMaterial("art/meshes/wg_bane.mdf");
        mGlowMaterials[3] = mdfFactory.LoadMaterial("art/meshes/wg_chaotic.mdf");
        mGlowMaterials[4] = mdfFactory.LoadMaterial("art/meshes/wg_cold.mdf");
        mGlowMaterials[5] = mdfFactory.LoadMaterial("art/meshes/wg_fire.mdf");
        mGlowMaterials[6] = mdfFactory.LoadMaterial("art/meshes/wg_holy.mdf");
        mGlowMaterials[7] = mdfFactory.LoadMaterial("art/meshes/wg_law.mdf");
        mGlowMaterials[8] = mdfFactory.LoadMaterial("art/meshes/wg_shock.mdf");
        mGlowMaterials[9] = mdfFactory.LoadMaterial("art/meshes/wg_unholy.mdf");
    }