Пример #1
0
        public ShadowCaster(
            RenderContext rc,
            AssetDatabase ad,
            VertexPositionNormalTexture[] vertices,
            ushort[] indices,
            TextureData texture)
        {
            _meshData       = new SimpleMeshDataProvider(vertices, indices);
            _textureData    = texture;
            _centeredBounds = BoundingSphere.CreateFromPoints(vertices);

            InitializeContextObjects(ad, rc);
        }
Пример #2
0
        public ShadowCaster(
            RenderContext rc,
            AssetDatabase ad,
            VertexPositionNormalTexture[] vertices,
            int[] indices,
            MaterialAsset regularPassMaterial,
            TextureData overrideTexture = null)
        {
            _meshData = new SimpleMeshDataProvider(vertices, indices);

            _shadowPassMaterialAsset  = ad.LoadAsset <MaterialAsset>("MaterialAsset/ShadowCaster_ShadowMap.json");
            _regularPassMaterialAsset = regularPassMaterial;
            _overrideTextureData      = overrideTexture;

            _worldProvider = new DynamicDataProvider <Matrix4x4>();
            _inverseTransposeWorldProvider = new DependantDataProvider <Matrix4x4>(_worldProvider, Utilities.CalculateInverseTranspose);
            _perObjectProviders            = new ConstantBufferDataProvider[] { _worldProvider, _inverseTransposeWorldProvider };

            _centeredBounds = BoundingSphere.CreateFromPoints(vertices);

            InitializeContextObjects(ad, rc);
        }