コード例 #1
0
        protected override void OnEntityComponentAdding(Entity entity, [NotNull] DecalComponent component, [NotNull] AssociatedData data)
        {
            var model = new Model();
            // We create the cube via the *ProceduralModel class rather than GeometricPrimitive.*.New
            // because there are additional vertext data that gets created through this which are required by the Material
            var procCube = new CubeProceduralModel();
            // Set up a new material with our decal shader.
            var shader = new ComputeShaderClassColor
            {
                MixinReference = "DecalShader"      // This is referring to our shader at Effects\DecalShader.xksl
            };

            var materialDescription = new MaterialDescriptor
            {
                Attributes =
                {
                    DiffuseModel = new MaterialDiffuseLambertModelFeature(),
                    Diffuse      = new MaterialDiffuseMapFeature(shader),
                    Transparency = new MaterialTransparencyBlendFeature(),
                    CullMode     = CullMode.Back,
                }
            };

            procCube.MaterialInstance.IsShadowCaster = false;
            procCube.Generate(Services, model);

            var material = Material.New(_graphicsDevice, materialDescription);

            UpdateMaterialParameters(component, data.TransformComponent, material);
            data.Material = material;
            data.Model    = model;
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProceduralModelAsset"/> class.
 /// </summary>
 public ProceduralModelAsset()
 {
     Type = new CubeProceduralModel();
 }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProceduralModelAsset"/> class.
 /// </summary>
 public ProceduralModelAsset()
 {
     Type = new CubeProceduralModel();
     SerializedVersion = AssetFormatVersion;
 }