public override void CreateRenderData(out MyRenderVoxelMaterialData renderData) { base.CreateRenderData(out renderData); renderData.ColorMetalXZnY = this.ColorMetalXZnY; renderData.ColorMetalY = this.ColorMetalY; renderData.NormalGlossXZnY = this.NormalGlossXZnY; renderData.NormalGlossY = this.NormalGlossY; renderData.ExtXZnY = this.ExtXZnY; renderData.ExtY = this.ExtY; renderData.ColorMetalXZnYFar1 = this.ColorMetalXZnYFar1; renderData.ColorMetalYFar1 = this.ColorMetalYFar1; renderData.NormalGlossXZnYFar1 = this.NormalGlossXZnYFar1; renderData.NormalGlossYFar1 = this.NormalGlossYFar1; renderData.ExtXZnYFar1 = this.ExtXZnYFar1; renderData.ExtYFar1 = this.ExtYFar1; renderData.ColorMetalXZnYFar2 = this.ColorMetalXZnYFar2; renderData.ColorMetalYFar2 = this.ColorMetalYFar2; renderData.NormalGlossXZnYFar2 = this.NormalGlossXZnYFar2; renderData.NormalGlossYFar2 = this.NormalGlossYFar2; renderData.ExtXZnYFar2 = this.ExtXZnYFar2; renderData.ExtYFar2 = this.ExtYFar2; renderData.Scale = this.Scale; renderData.ScaleFar1 = this.ScaleFar1; renderData.ScaleFar2 = this.ScaleFar2; renderData.ExtensionTextureArray1 = this.FoliageTextureArray1; renderData.ExtensionTextureArray2 = this.FoliageTextureArray2; renderData.ExtensionDensity = this.FoliageDensity; renderData.ExtensionScale = this.FoliageScale; renderData.ExtensionRandomRescaleMult = this.FoliageRandomRescaleMult; }
internal static void Add(ref MyRenderVoxelMaterialData materialData) { // Check if not yet assigned MyDebug.AssertRelease(!m_materials.ContainsKey(materialData.Index)); // Create and add into array MyRenderVoxelMaterial voxelMaterial = new MyRenderVoxelMaterial(materialData); m_materials[materialData.Index] = voxelMaterial; }
public virtual void CreateRenderData(out MyRenderVoxelMaterialData renderData) { renderData = new MyRenderVoxelMaterialData() { Index = this.Index, DiffuseXZ = this.DiffuseXZ, NormalXZ = this.NormalXZ, DiffuseY = this.DiffuseY, NormalY = this.NormalY, SpecularPower = this.SpecularPower, SpecularShininess = this.SpecularShininess }; }
// Parameter 'useTwoTexturesPerMaterial' tells us if we use two textures per material. One texture for axis XZ and second for axis Y. // Use it for rock/stone materials. Don't use it for gold/silver, because there you don't need to make difference between side and bottom materials. // Using this we save texture memory, but pixel shader still used differenced textures (two samplers looking to same texture) public MyRenderVoxelMaterial(MyRenderVoxelMaterialData data) { // SpecularPower must be > 0, because pow() makes NaN results if called with zero MyDebug.AssertRelease(data.SpecularPower > 0); m_diffuseXZ = data.DiffuseXZ; m_diffuseY = data.DiffuseY; m_normalXZ = data.NormalXZ; m_normalY = data.NormalY; SpecularIntensity = data.SpecularShininess; SpecularPower = data.SpecularPower; m_materialIndex = data.Index; }
// Parameter 'useTwoTexturesPerMaterial' tells us if we use two textures per material. One texture for axis XZ and second for axis Y. // Use it for rock/stone materials. Don't use it for gold/silver, because there you don't need to make difference between side and bottom materials. // Using this we save texture memory, but pixel shader still used differenced textures (two samplers looking to same texture) public MyRenderVoxelMaterial(MyRenderVoxelMaterialData data) { // SpecularPower must be > 0, because pow() makes NaN results if called with zero MyDebug.AssertRelease(data.SpecularPower > 0); m_diffuseXZ = data.DiffuseXZ; m_diffuseY = data.DiffuseY; m_normalXZ = data.NormalXZ; m_normalY = data.NormalY; SpecularIntensity = data.SpecularShininess; SpecularPower = data.SpecularPower; m_materialIndex = data.Index; DistancesAndScale = data.DistanceAndScale; DistancesAndScaleFar = data.DistanceAndScaleFar; ExtensionDetailScale = data.ExtensionDetailScale; DistancesAndScaleFar3 = data.DistanceAndScaleFar3; Far3Color = data.Far3Color; }
public override void CreateRenderData(out MyRenderVoxelMaterialData renderData) { base.CreateRenderData(out renderData); renderData.ColorMetalXZnY = this.ColorMetalXZnY; FillString(ref renderData.ColorMetalY, ref this.ColorMetalY, ref ColorMetalXZnY); renderData.NormalGlossXZnY = this.NormalGlossXZnY; FillString(ref renderData.NormalGlossY, ref this.NormalGlossY, ref NormalGlossXZnY); renderData.ExtXZnY = this.ExtXZnY; FillString(ref renderData.ExtY, ref this.ExtY, ref ExtXZnY); FillString(ref renderData.ColorMetalXZnYFar1, ref ColorMetalXZnYFar1, ref ColorMetalXZnY); FillString(ref renderData.ColorMetalYFar1, ref ColorMetalYFar1, ref renderData.ColorMetalXZnYFar1); FillString(ref renderData.NormalGlossXZnYFar1, ref this.NormalGlossXZnYFar1, ref NormalGlossXZnY); FillString(ref renderData.NormalGlossYFar1, ref NormalGlossYFar1, ref renderData.NormalGlossXZnYFar1); FillString(ref renderData.ExtXZnYFar1, ref this.ExtXZnYFar1, ref ExtXZnY); FillString(ref renderData.ExtYFar1, ref ExtYFar1, ref renderData.ExtXZnYFar1); FillString(ref renderData.ColorMetalXZnYFar2, ref ColorMetalXZnYFar2, ref renderData.ColorMetalXZnYFar1); FillString(ref renderData.ColorMetalYFar2, ref ColorMetalYFar2, ref renderData.ColorMetalXZnYFar2); FillString(ref renderData.NormalGlossXZnYFar2, ref this.NormalGlossXZnYFar2, ref renderData.NormalGlossXZnYFar1); FillString(ref renderData.NormalGlossYFar2, ref NormalGlossYFar2, ref renderData.NormalGlossXZnYFar2); FillString(ref renderData.ExtXZnYFar2, ref this.ExtXZnYFar2, ref renderData.ExtXZnYFar1); FillString(ref renderData.ExtYFar2, ref ExtYFar2, ref renderData.ExtXZnYFar2); renderData.DistanceAndScale = new Vector4(InitialScale, InitialDistance, ScaleMultiplier, DistanceMultiplier); renderData.DistanceAndScaleFar = new Vector4(Far1Scale, Far1Distance, Far2Scale, Far2Distance); renderData.DistanceAndScaleFar3 = new Vector2(Far3Scale, Far3Distance); renderData.Far3Color = Far3Color; renderData.ExtensionDetailScale = ExtensionDetailScale; renderData.ExtensionTextureArray1 = this.FoliageTextureArray1; renderData.ExtensionTextureArray2 = this.FoliageTextureArray2; renderData.FoliageColorTextureArray = this.FoliageColorTextureArray; renderData.FoliageNormalTextureArray = this.FoliageNormalTextureArray; renderData.ExtensionDensity = this.FoliageDensity; renderData.ExtensionScale = this.FoliageScale; renderData.ExtensionRandomRescaleMult = this.FoliageRandomRescaleMult; renderData.ExtensionType = this.FoliageType; }
public override void CreateRenderData(out MyRenderVoxelMaterialData renderData) { base.CreateRenderData(out renderData); renderData.ColorMetalXZnY = this.ColorMetalXZnY; FillString(ref renderData.ColorMetalY, ref this.ColorMetalY, ref ColorMetalXZnY); renderData.NormalGlossXZnY = this.NormalGlossXZnY; FillString(ref renderData.NormalGlossY, ref this.NormalGlossY, ref NormalGlossXZnY); renderData.ExtXZnY = this.ExtXZnY; FillString(ref renderData.ExtY, ref this.ExtY, ref ExtXZnY); FillString(ref renderData.ColorMetalXZnYFar1, ref ColorMetalXZnYFar1, ref ColorMetalXZnY); FillString(ref renderData.ColorMetalYFar1, ref ColorMetalYFar1, ref renderData.ColorMetalXZnYFar1); FillString(ref renderData.NormalGlossXZnYFar1, ref this.NormalGlossXZnYFar1, ref NormalGlossXZnY); FillString(ref renderData.NormalGlossYFar1, ref NormalGlossYFar1, ref renderData.NormalGlossXZnYFar1); FillString(ref renderData.ExtXZnYFar1, ref this.ExtXZnYFar1, ref ExtXZnY); FillString(ref renderData.ExtYFar1, ref ExtYFar1, ref renderData.ExtXZnYFar1); FillString(ref renderData.ColorMetalXZnYFar2, ref ColorMetalXZnYFar2, ref renderData.ColorMetalXZnYFar1); FillString(ref renderData.ColorMetalYFar2, ref ColorMetalYFar2, ref renderData.ColorMetalXZnYFar2); FillString(ref renderData.NormalGlossXZnYFar2, ref this.NormalGlossXZnYFar2, ref renderData.NormalGlossXZnYFar1); FillString(ref renderData.NormalGlossYFar2, ref NormalGlossYFar2, ref renderData.NormalGlossXZnYFar2); FillString(ref renderData.ExtXZnYFar2, ref this.ExtXZnYFar2, ref renderData.ExtXZnYFar1); FillString(ref renderData.ExtYFar2, ref ExtYFar2, ref renderData.ExtXZnYFar2); renderData.Scale = this.Scale; renderData.ScaleFar1 = this.ScaleFar1; renderData.ScaleFar2 = this.ScaleFar2; renderData.ScaleFar3 = this.ScaleFar3; renderData.ScaleFar4 = this.ScaleFar4; renderData.ExtensionTextureArray1 = this.FoliageTextureArray1; renderData.ExtensionTextureArray2 = this.FoliageTextureArray2; renderData.ExtensionDensity = this.FoliageDensity; renderData.ExtensionScale = this.FoliageScale; renderData.ExtensionRandomRescaleMult = this.FoliageRandomRescaleMult; }