public void LoadVolumeData() { volumetricModel = new VolumetricModel(VolumetricRenderer.Game, "Content\\Models\\" + volumeFile, (int)volumeFileSize.X, (int)volumeFileSize.Y, (int)volumeFileSize.Z); volumetricModel.effectAssetName = "Shaders\\effects"; volumetricModel.StepScale = 1.4f; //1.4f gives us a ray through the whole volume when viewed along a diagonal volumetricModel.scale = 5.0f; volumetricModel.drawWireframeBox = true; Debug.Execute(delegate() { volumetricModel.drawWireframeBox = true; }); volumetricModel.TransferPoints = new TransferControlPoints(3, 6); // Add the color transfer points. volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 0); volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 1); volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 255); //// Add the alpha transfer points. volumetricModel.TransferPoints.AddAlphaControlPoint(0f, 0); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, (byte)(isoValue - 2)); volumetricModel.TransferPoints.AddAlphaControlPoint(alphaValue, isoValue); volumetricModel.TransferPoints.AddAlphaControlPoint(alphaValue, (byte)(isoValue + range)); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, (byte)(isoValue + range + 2)); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, 255); // Create the transfer function. volumetricModel.CreateTransferFunction(); VolumetricRenderer.Game.Components.Add(volumetricModel); // The volumetric model takes awhile to load (mostly due to VolumetricModel.CreateTextureData()) // so reset the elapsed time so that our screen transition works properly. VolumetricRenderer.Game.ResetElapsedTime(); }
public void LoadVolumeData() { volumetricModel = new VolumetricModel(VolumetricRenderer.Game, "Content\\Models\\" + volumeFile, (int)volumeFileSize.X, (int)volumeFileSize.Y, (int)volumeFileSize.Z); volumetricModel.effectAssetName = "Shaders\\effects"; volumetricModel.StepScale = 1.4f; //1.4f gives us a ray through the whole volume when viewed along a diagonal volumetricModel.scale = 5.0f; volumetricModel.drawWireframeBox = true; Debug.Execute(delegate() { volumetricModel.drawWireframeBox = true; }); volumetricModel.TransferPoints = new TransferControlPoints(3, 6); // Add the color transfer points. volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 0); volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 1); volumetricModel.TransferPoints.AddRGBControlPoint(Color.Red, 255); //// Add the alpha transfer points. volumetricModel.TransferPoints.AddAlphaControlPoint(0f, 0); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, (byte)(isoValue - 2)); volumetricModel.TransferPoints.AddAlphaControlPoint(alphaValue, isoValue); volumetricModel.TransferPoints.AddAlphaControlPoint(alphaValue, (byte)(isoValue + range)); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, (byte)(isoValue + range + 2)); volumetricModel.TransferPoints.AddAlphaControlPoint(0f, 255); // Create the transfer function. volumetricModel.CreateTransferFunction(); VolumetricRenderer.Game.Components.Add(volumetricModel); // The volumetric model takes awhile to load (mostly due to VolumetricModel.CreateTextureData()) // so reset the elapsed time so that our screen transition works properly. VolumetricRenderer.Game.ResetElapsedTime(); }