Small example component illustrating how to manipulate a Model's texture.
using System.Linq;
using Sandbox;
public class ModelBlur : Component {
/// <summary>
/// Mandate that this component is attached to a GameObject with a ModelRenderer.
/// If not, one will be created automatically.
/// </summary>
[RequireComponent]
public ModelRenderer ModelRenderer { get; private set; }
protected override void OnEnabled() {
// Grab the first material from the model renderer
var modelMaterial = ModelRenderer.Model.Materials.FirstOrDefault();
if ( modelMaterial is null ) return;
// Grab the first texture from the material, apply a blur effect
var textureBitmap = modelMaterial.FirstTexture.GetBitmap(0);
textureBitmap.Blur(8);
// Create a copy of the material and set the blurred texture
var clonedMaterial = modelMaterial.CreateCopy();
clonedMaterial.Set( "color", textureBitmap.ToTexture() );
// Apply the cloned material with the blurred texture to the model renderer's MaterialOverride
ModelRenderer.MaterialOverride = clonedMaterial;
}
protected override void OnDisabled() {
ModelRenderer.MaterialOverride = null;
}
}
using System.Linq; using Sandbox; public class ModelBlur : Component { /// <summary> /// Mandate that this component is attached to a GameObject with a ModelRenderer. /// If not, one will be created automatically. /// </summary> [RequireComponent] public ModelRenderer ModelRenderer { get; private set; } protected override void OnEnabled() { // Grab the first material from the model renderer var modelMaterial = ModelRenderer.Model.Materials.FirstOrDefault(); if ( modelMaterial is null ) return; // Grab the first texture from the material, apply a blur effect var textureBitmap = modelMaterial.FirstTexture.GetBitmap(0); textureBitmap.Blur(8); // Create a copy of the material and set the blurred texture var clonedMaterial = modelMaterial.CreateCopy(); clonedMaterial.Set( "color", textureBitmap.ToTexture() ); // Apply the cloned material with the blurred texture to the model renderer's MaterialOverride ModelRenderer.MaterialOverride = clonedMaterial; } protected override void OnDisabled() { ModelRenderer.MaterialOverride = null; } }