図面に 3D 面、メッシュ、サーフェス、またはソリッドが含まれている場合は、レイアウトを出力するときに 3D オブジェクトをどのように表示するかをコントロールできます。ビューポートでは、表示スタイル、レンダリング プリセット、ShadePlotStype 列挙型で定義された他の値の 1 つを使用するように設定できます。シェーディングおよびレンダリング ビューポートのプレビュー、印刷、ファイルへの出力では、完全なシェーディングおよびレンダリングが行われます。Viewport オブジェクトの SetShadePlot メソッドと ShadePlot プロパティは、シェーディング ビューポートの印刷オプションをクエリーおよび設定するために使用されます。
レイアウトを出力するときには、レイアウトの ShadePlot プロパティを使用して Layout オブジェクトのすべてのビューポートの ShadePlot プロパティをオーバーライドし、ShadePlotResLevel プロパティを使用してシェーディングの品質をコントロールできます。
この例では、2 つの新しいビューポート(矩形のビューポートと矩形でないビューポート)を作成し、一方には表示スタイルを、もう一方にはレンダリング プリセットを割り当てます。ヘルプ機能を使用して、ビューポートに割り当てることができるレンダリング プリセットを作成します。
' Standard .NET namespaces Imports System.Runtime.InteropServices ' Main AutoCAD namespaces Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.GraphicsInterface Imports Autodesk.AutoCAD ' Used to set a viewport current <DllImport("accore.dll", CallingConvention:=CallingConvention.Cdecl, _ EntryPoint:="?acedSetCurrentVPort@@YA?AW4ErrorStatus@Acad@@PEBVAcDbViewport@@@Z")> _ Public Shared Function acedSetCurrentVPort(ByVal AcDbVport As IntPtr) As IntPtr End Function ' Used to create a rectangular and nonrectangular viewports <CommandMethod("CreatViewportsAndSetShadePlot")> _ Public Sub CreatViewportsAndSetShadePlot() ' Get the current document and database, and start a transaction Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() ' Open the Block table for read Dim acBlkTbl As BlockTable = acTrans.GetObject(acCurDb.BlockTableId, _ OpenMode.ForRead) ' Open the Block table record Paper space for write Dim acBlkTblRec As BlockTableRecord = _ acTrans.GetObject(acBlkTbl(BlockTableRecord.PaperSpace), _ OpenMode.ForWrite) ' Switch to the previous Paper space layout Application.SetSystemVariable("TILEMODE", 0) acDoc.Editor.SwitchToPaperSpace() ' Remove any viewports that already exist For Each objId As ObjectId In acBlkTblRec Dim dbObj As DBObject = acTrans.GetObject(objId, OpenMode.ForRead) ' Remove any viewports in the block If TypeOf dbObj Is DatabaseServices.Viewport Then dbObj.UpgradeOpen() dbObj.Erase(True) End If Next ' Create a Viewport Using acVport1 As DatabaseServices.Viewport = New DatabaseServices.Viewport() ' Set the center point and size of the viewport acVport1.CenterPoint = New Point3d(3.75, 4, 0) acVport1.Width = 7.5 acVport1.Height = 7.5 ' Lock the viewport acVport1.Locked = True ' Set the scale to 1" = 4' acVport1.CustomScale = 48 ' Set visual style Dim vStyles As DBDictionary = _ acTrans.GetObject(acCurDb.VisualStyleDictionaryId, _ OpenMode.ForRead) acVport1.SetShadePlot(ShadePlotType.VisualStyle, _ vStyles.GetAt("Sketchy")) ' Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acVport1) acTrans.AddNewlyCreatedDBObject(acVport1, True) ' Change the view direction and enable the viewport acVport1.ViewDirection = New Vector3d(-1, -1, 1) acVport1.On = True ' Create a rectangular viewport to change to a non-rectangular viewport Using acVport2 As DatabaseServices.Viewport = New DatabaseServices.Viewport() acVport2.CenterPoint = New Point3d(9, 6.5, 0) acVport2.Width = 2.5 acVport2.Height = 2.5 ' Set the scale to 1" = 8' acVport2.CustomScale = 96 ' Set render preset Dim namedObjs As DBDictionary = _ acTrans.GetObject(acCurDb.NamedObjectsDictionaryId, _ OpenMode.ForRead) ' Check to see if the Render Settings dictionary already exists Dim renderSettings As DBDictionary If namedObjs.Contains("ACAD_RENDER_PLOT_SETTINGS") = True Then renderSettings = acTrans.GetObject( _ namedObjs.GetAt("ACAD_RENDER_PLOT_SETTINGS"), _ OpenMode.ForWrite) Else ' If it does not exist, create it and add it to the drawing namedObjs.UpgradeOpen() renderSettings = New DBDictionary namedObjs.SetAt("ACAD_RENDER_PLOT_SETTINGS", renderSettings) acTrans.AddNewlyCreatedDBObject(renderSettings, True) End If ' Create the new render preset, based on the settings ' of the Medium render preset Using renderSetting As New MentalRayRenderSettings GetDefaultRenderPreset(renderSetting, "Medium") renderSetting.Name = "Medium" renderSettings.SetAt("Medium", renderSetting) acTrans.AddNewlyCreatedDBObject(renderSetting, True) acVport2.SetShadePlot(ShadePlotType.RenderPreset, _ renderSetting.ObjectId) End Using ' Create a circle Using acCirc As Circle = New Circle() acCirc.Center = acVport2.CenterPoint acCirc.Radius = 1.25 ' Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acCirc) acTrans.AddNewlyCreatedDBObject(acCirc, True) ' Clip the viewport using the circle acVport2.NonRectClipEntityId = acCirc.ObjectId acVport2.NonRectClipOn = True End Using ' Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acVport2) acTrans.AddNewlyCreatedDBObject(acVport2, True) ' Change the view direction acVport2.ViewDirection = New Vector3d(0, 0, 1) ' Enable the viewport acVport2.On = True End Using ' Activate model space acDoc.Editor.SwitchToModelSpace() ' Set the new viewport current via an imported ObjectARX function acedSetCurrentVPort(acVport1.UnmanagedObject) End Using ' Save the new objects to the database acTrans.Commit() End Using End Sub ' Method used to populate a MentalRayRenderSettings object with the ' same settings used by the standard render presets Private Shared Sub GetDefaultRenderPreset( _ ByRef renderPreset As MentalRayRenderSettings, _ ByVal name As String) ' Set the values common to multiple default render presets renderPreset.BackFacesEnabled = False renderPreset.DiagnosticBackgroundEnabled = False renderPreset.DiagnosticBSPMode = _ DiagnosticBSPMode.Depth renderPreset.DiagnosticGridMode = _ New MentalRayRenderSettingsTraitsDiagnosticGridModeParameter( _ DiagnosticGridMode.Object, 10.0) renderPreset.DiagnosticMode = _ DiagnosticMode.Off renderPreset.DiagnosticPhotonMode = _ DiagnosticPhotonMode.Density renderPreset.DisplayIndex = 0 renderPreset.EnergyMultiplier = 1.0 renderPreset.ExportMIEnabled = False renderPreset.ExportMIFileName = "" renderPreset.FGRayCount = 100 ' FGSampleRadius cannot be set, it returns invalid input renderPreset.FGSampleRadiusState = _ New MentalRayRenderSettingsTraitsBoolParameter( _ False, False, False) renderPreset.FinalGatheringEnabled = False renderPreset.FinalGatheringMode = _ FinalGatheringMode.FinalGatherOff renderPreset.GIPhotonsPerLight = 1000 renderPreset.GISampleCount = 500 renderPreset.GISampleRadius = 1.0 renderPreset.GISampleRadiusEnabled = False renderPreset.GlobalIlluminationEnabled = False renderPreset.LightLuminanceScale = 1500.0 renderPreset.MaterialsEnabled = True renderPreset.MemoryLimit = 1048 renderPreset.PhotonTraceDepth = _ New MentalRayRenderSettingsTraitsTraceParameter( _ 5, 5, 5) renderPreset.PreviewImageFileName = "" renderPreset.RayTraceDepth = _ New MentalRayRenderSettingsTraitsTraceParameter( _ 3, 3, 3) renderPreset.RayTracingEnabled = False renderPreset.Sampling = _ New MentalRayRenderSettingsTraitsIntegerRangeParameter( _ -2, -1) renderPreset.SamplingContrastColor = _ New MentalRayRenderSettingsTraitsFloatParameter( _ 0.1, 0.1, 0.1, 0.1) renderPreset.SamplingFilter = _ New MentalRayRenderSettingsTraitsSamplingParameter( _ Filter.Box, 1.0, 1.0) renderPreset.ShadowMapsEnabled = False renderPreset.ShadowMode = ShadowMode.Simple renderPreset.ShadowSamplingMultiplier = _ ShadowSamplingMultiplier.SamplingMultiplierZero renderPreset.ShadowsEnabled = True renderPreset.TextureSampling = False renderPreset.TileOrder = TileOrder.Hilbert renderPreset.TileSize = 32 Select Case name.ToUpper() ' Assigns the values to match the Draft render preset Case "DRAFT" renderPreset.Description = _ "The lowest rendering quality which entails no raytracing, " & _ "no texture filtering and force 2-sided is inactive." renderPreset.Name = "Draft" Case ("LOW") renderPreset.Description = _ "Rendering quality is improved over Draft. " & _ "Low anti-aliasing and a raytracing depth of 3 " & _ "reflection/refraction are processed." renderPreset.Name = "Low" renderPreset.RayTracingEnabled = True renderPreset.Sampling = _ New MentalRayRenderSettingsTraitsIntegerRangeParameter( _ -1, 0) renderPreset.SamplingContrastColor = _ New MentalRayRenderSettingsTraitsFloatParameter( _ 0.1, 0.1, 0.1, 0.1) renderPreset.SamplingFilter = _ New MentalRayRenderSettingsTraitsSamplingParameter( _ Filter.Triangle, 2.0, 2.0) renderPreset.ShadowSamplingMultiplier = _ ShadowSamplingMultiplier.SamplingMultiplierOneFourth Case "MEDIUM" renderPreset.BackFacesEnabled = True renderPreset.Description = _ "Rendering quality is improved over Low to include " & _ "texture filtering and force 2-sided is active. " & _ "Moderate anti-aliasing and a raytracing depth of " & _ "5 reflections/refractions are processed." renderPreset.FGRayCount = 200 renderPreset.FinalGatheringMode = _ FinalGatheringMode.FinalGatherAuto renderPreset.GIPhotonsPerLight = 10000 renderPreset.Name = "Medium" renderPreset.RayTraceDepth = _ New MentalRayRenderSettingsTraitsTraceParameter( _ 5, 5, 5) renderPreset.RayTracingEnabled = True renderPreset.Sampling = _ New MentalRayRenderSettingsTraitsIntegerRangeParameter( _ 0, 1) renderPreset.SamplingContrastColor = _ New MentalRayRenderSettingsTraitsFloatParameter( _ 0.05, 0.05, 0.05, 0.05) renderPreset.SamplingFilter = _ New MentalRayRenderSettingsTraitsSamplingParameter( _ Filter.Gauss, 3.0, 3.0) renderPreset.ShadowSamplingMultiplier = _ ShadowSamplingMultiplier.SamplingMultiplierOneHalf renderPreset.TextureSampling = True Case "HIGH" renderPreset.BackFacesEnabled = True renderPreset.Description = _ "Rendering quality is improved over Medium. " & _ "High anti-aliasing and a raytracing depth of 7 " & _ "reflections/refractions are processed." renderPreset.FGRayCount = 500 renderPreset.FinalGatheringMode = _ FinalGatheringMode.FinalGatherAuto renderPreset.GIPhotonsPerLight = 10000 renderPreset.Name = "High" renderPreset.RayTraceDepth = _ New MentalRayRenderSettingsTraitsTraceParameter( _ 7, 7, 7) renderPreset.RayTracingEnabled = True renderPreset.Sampling = _ New MentalRayRenderSettingsTraitsIntegerRangeParameter( _ 0, 2) renderPreset.SamplingContrastColor = _ New MentalRayRenderSettingsTraitsFloatParameter( _ 0.05, 0.05, 0.05, 0.05) renderPreset.SamplingFilter = _ New MentalRayRenderSettingsTraitsSamplingParameter( _ Filter.Mitchell, 4.0, 4.0) renderPreset.ShadowSamplingMultiplier = _ ShadowSamplingMultiplier.SamplingMultiplierOne renderPreset.TextureSampling = True Case "PRESENTATION" renderPreset.BackFacesEnabled = True renderPreset.Description = _ "Rendering quality is improved over High. " & _ "Very high anti-aliasing and a raytracing depth of 9 " & _ "reflections/refractions are processed." renderPreset.FGRayCount = 1000 renderPreset.FinalGatheringMode = _ FinalGatheringMode.FinalGatherAuto renderPreset.GIPhotonsPerLight = 10000 renderPreset.Name = "Presentation" renderPreset.RayTraceDepth = _ New MentalRayRenderSettingsTraitsTraceParameter( _ 9, 9, 9) renderPreset.RayTracingEnabled = True renderPreset.Sampling = _ New MentalRayRenderSettingsTraitsIntegerRangeParameter( _ 1, 2) renderPreset.SamplingContrastColor = _ New MentalRayRenderSettingsTraitsFloatParameter( _ 0.05, 0.05, 0.05, 0.05) renderPreset.SamplingFilter = _ New MentalRayRenderSettingsTraitsSamplingParameter( _ Filter.Lanczos, 4.0, 4.0) renderPreset.ShadowSamplingMultiplier = _ ShadowSamplingMultiplier.SamplingMultiplierOne renderPreset.TextureSampling = True End Select End Sub
// Standard .NET namespaces using System; using System.Runtime.InteropServices; // Main AutoCAD namespaces using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.GraphicsInterface; using Autodesk.AutoCAD; // Used to set a viewport current [DllImport("accore.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?acedSetCurrentVPort@@YA?AW4ErrorStatus@Acad@@PEBVAcDbViewport@@@Z")] extern static private int acedSetCurrentVPort(IntPtr AcDbVport); // Used to create a rectangular and nonrectangular viewports [CommandMethod("CreatViewportsAndSetShadePlot")] public void CreatViewportsAndSetShadePlot() { // Get the current document and database, and start a transaction Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { // Open the Block table for read BlockTable acBlkTbl= acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable; // Open the Block table record Paper space for write BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.PaperSpace], OpenMode.ForWrite) as BlockTableRecord; // Switch to the previous Paper space layout Application.SetSystemVariable("TILEMODE", 0); acDoc.Editor.SwitchToPaperSpace(); // Remove any viewports that already exist foreach (ObjectId objId in acBlkTblRec) { DBObject dbObj = acTrans.GetObject(objId, OpenMode.ForRead) as DBObject; // Remove any viewports in the block Autodesk.AutoCAD.DatabaseServices.Viewport acVport = dbObj as Autodesk.AutoCAD.DatabaseServices.Viewport; if (acVport != null) { dbObj.UpgradeOpen(); dbObj.Erase(true); } } // Create a Viewport using (Autodesk.AutoCAD.DatabaseServices.Viewport acVport1 = new Autodesk.AutoCAD.DatabaseServices.Viewport()) { // Set the center point and size of the viewport acVport1.CenterPoint = new Point3d(3.75, 4, 0); acVport1.Width = 7.5; acVport1.Height = 7.5; // Lock the viewport acVport1.Locked = true; // Set the scale to 1" = 4' acVport1.CustomScale = 48; // Set visual style DBDictionary vStyles = acTrans.GetObject(acCurDb.VisualStyleDictionaryId, OpenMode.ForRead) as DBDictionary; acVport1.SetShadePlot(ShadePlotType.VisualStyle, vStyles.GetAt("Sketchy")); // Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acVport1); acTrans.AddNewlyCreatedDBObject(acVport1, true); // Change the view direction and enable the viewport acVport1.ViewDirection = new Vector3d(-1, -1, 1); acVport1.On = true; // Create a rectangular viewport to change to a non-rectangular viewport using (Autodesk.AutoCAD.DatabaseServices.Viewport acVport2 = new Autodesk.AutoCAD.DatabaseServices.Viewport()) { acVport2.CenterPoint = new Point3d(9, 6.5, 0); acVport2.Width = 2.5; acVport2.Height = 2.5; // Set the scale to 1" = 8' acVport2.CustomScale = 96; // Set render preset DBDictionary namedObjs = acTrans.GetObject(acCurDb.NamedObjectsDictionaryId, OpenMode.ForRead) as DBDictionary; // Check to see if the Render Settings dictionary already exists DBDictionary renderSettings; if (namedObjs.Contains("ACAD_RENDER_PLOT_SETTINGS") == true) { renderSettings = acTrans.GetObject( namedObjs.GetAt("ACAD_RENDER_PLOT_SETTINGS"), OpenMode.ForWrite) as DBDictionary; } else { // If it does not exist, create it and add it to the drawing namedObjs.UpgradeOpen(); renderSettings = new DBDictionary(); namedObjs.SetAt("ACAD_RENDER_PLOT_SETTINGS", renderSettings); acTrans.AddNewlyCreatedDBObject(renderSettings, true); } // Create the new render preset, based on the settings // of the Medium render preset MentalRayRenderSettings renderSetting = new MentalRayRenderSettings(); GetDefaultRenderPreset(ref renderSetting, "Medium"); renderSetting.Name = "Medium"; renderSettings.SetAt("Medium", renderSetting); acTrans.AddNewlyCreatedDBObject(renderSetting, true); acVport2.SetShadePlot(ShadePlotType.RenderPreset, renderSetting.ObjectId); renderSetting.Dispose(); // Create a circle using (Circle acCirc = new Circle()) { acCirc.Center = acVport2.CenterPoint; acCirc.Radius = 1.25; // Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acCirc); acTrans.AddNewlyCreatedDBObject(acCirc, true); // Clip the viewport using the circle acVport2.NonRectClipEntityId = acCirc.ObjectId; acVport2.NonRectClipOn = true; } // Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acVport2); acTrans.AddNewlyCreatedDBObject(acVport2, true); // Change the view direction acVport2.ViewDirection = new Vector3d(0, 0, 1); // Enable the viewport acVport2.On = true; } // Activate model space acDoc.Editor.SwitchToModelSpace(); // Set the new viewport current via an imported ObjectARX function acedSetCurrentVPort(acVport1.UnmanagedObject); } // Save the new objects to the database acTrans.Commit(); } } // Method used to populate a MentalRayRenderSettings object with the // same settings used by the standard render presets private static void GetDefaultRenderPreset( ref MentalRayRenderSettings renderPreset, string name) { // Set the values common to multiple default render presets renderPreset.BackFacesEnabled = false; renderPreset.DiagnosticBackgroundEnabled = false; renderPreset.DiagnosticBSPMode = DiagnosticBSPMode.Depth; renderPreset.DiagnosticGridMode = new MentalRayRenderSettingsTraitsDiagnosticGridModeParameter( DiagnosticGridMode.Object, (float)10.0); renderPreset.DiagnosticMode = DiagnosticMode.Off; renderPreset.DiagnosticPhotonMode = DiagnosticPhotonMode.Density; renderPreset.DisplayIndex = 0; renderPreset.EnergyMultiplier = (float)1.0; renderPreset.ExportMIEnabled = false; renderPreset.ExportMIFileName = ""; renderPreset.FGRayCount = 100; // FGSampleRadius cannot be set, it returns invalid input renderPreset.FGSampleRadiusState = new MentalRayRenderSettingsTraitsBoolParameter( false, false, false); renderPreset.FinalGatheringEnabled = false; renderPreset.FinalGatheringMode = FinalGatheringMode.FinalGatherOff; renderPreset.GIPhotonsPerLight = 1000; renderPreset.GISampleCount = 500; renderPreset.GISampleRadius = 1.0; renderPreset.GISampleRadiusEnabled = false; renderPreset.GlobalIlluminationEnabled = false; renderPreset.LightLuminanceScale = 1500.0; renderPreset.MaterialsEnabled = true; renderPreset.MemoryLimit = 1048; renderPreset.PhotonTraceDepth = new MentalRayRenderSettingsTraitsTraceParameter( 5, 5, 5); renderPreset.PreviewImageFileName = ""; renderPreset.RayTraceDepth = new MentalRayRenderSettingsTraitsTraceParameter( 3, 3, 3); renderPreset.RayTracingEnabled = false; renderPreset.Sampling = new MentalRayRenderSettingsTraitsIntegerRangeParameter( -2, -1); renderPreset.SamplingContrastColor = new MentalRayRenderSettingsTraitsFloatParameter( (float)0.1, (float)0.1, (float)0.1, (float)0.1); renderPreset.SamplingFilter = new MentalRayRenderSettingsTraitsSamplingParameter( Filter.Box, 1.0, 1.0); renderPreset.ShadowMapsEnabled = false; renderPreset.ShadowMode = ShadowMode.Simple; renderPreset.ShadowSamplingMultiplier = ShadowSamplingMultiplier.SamplingMultiplierZero; renderPreset.ShadowsEnabled = true; renderPreset.TextureSampling = false; renderPreset.TileOrder = TileOrder.Hilbert; renderPreset.TileSize = 32; switch (name.ToUpper()) { // Assigns the values to match the Draft render preset case "DRAFT": renderPreset.Description = "The lowest rendering quality which entails no raytracing, " + "no texture filtering and force 2-sided is inactive."; renderPreset.Name = "Draft"; break; case "LOW": renderPreset.Description = "Rendering quality is improved over Draft. " + "Low anti-aliasing and a raytracing depth of 3 " + "reflection/refraction are processed."; renderPreset.Name = "Low"; renderPreset.RayTracingEnabled = true; renderPreset.Sampling = new MentalRayRenderSettingsTraitsIntegerRangeParameter( -1, 0); renderPreset.SamplingContrastColor = new MentalRayRenderSettingsTraitsFloatParameter( (float)0.1, (float)0.1, (float)0.1, (float)0.1); renderPreset.SamplingFilter = new MentalRayRenderSettingsTraitsSamplingParameter( Filter.Triangle, 2.0, 2.0); renderPreset.ShadowSamplingMultiplier = ShadowSamplingMultiplier.SamplingMultiplierOneFourth; break; case "MEDIUM": renderPreset.BackFacesEnabled = true; renderPreset.Description = "Rendering quality is improved over Low to include " + "texture filtering and force 2-sided is active. " + "Moderate anti-aliasing and a raytracing depth of " + "5 reflections/refractions are processed."; renderPreset.FGRayCount = 200; renderPreset.FinalGatheringMode = FinalGatheringMode.FinalGatherAuto; renderPreset.GIPhotonsPerLight = 10000; renderPreset.Name = "Medium"; renderPreset.RayTraceDepth = new MentalRayRenderSettingsTraitsTraceParameter( 5, 5, 5); renderPreset.RayTracingEnabled = true; renderPreset.Sampling = new MentalRayRenderSettingsTraitsIntegerRangeParameter( 0, 1); renderPreset.SamplingContrastColor = new MentalRayRenderSettingsTraitsFloatParameter( (float)0.05, (float)0.05, (float)0.05, (float)0.05); renderPreset.SamplingFilter = new MentalRayRenderSettingsTraitsSamplingParameter( Filter.Gauss, 3.0, 3.0); renderPreset.ShadowSamplingMultiplier = ShadowSamplingMultiplier.SamplingMultiplierOneHalf; renderPreset.TextureSampling = true; break; case "HIGH": renderPreset.BackFacesEnabled = true; renderPreset.Description = "Rendering quality is improved over Medium. " + "High anti-aliasing and a raytracing depth of 7 " + "reflections/refractions are processed."; renderPreset.FGRayCount = 500; renderPreset.FinalGatheringMode = FinalGatheringMode.FinalGatherAuto; renderPreset.GIPhotonsPerLight = 10000; renderPreset.Name = "High"; renderPreset.RayTraceDepth = new MentalRayRenderSettingsTraitsTraceParameter( 7, 7, 7); renderPreset.RayTracingEnabled = true; renderPreset.Sampling = new MentalRayRenderSettingsTraitsIntegerRangeParameter( 0, 2); renderPreset.SamplingContrastColor = new MentalRayRenderSettingsTraitsFloatParameter( (float)0.05, (float)0.05, (float)0.05, (float)0.05); renderPreset.SamplingFilter = new MentalRayRenderSettingsTraitsSamplingParameter( Filter.Mitchell, 4.0, 4.0); renderPreset.ShadowSamplingMultiplier = ShadowSamplingMultiplier.SamplingMultiplierOne; renderPreset.TextureSampling = true; break; case "PRESENTATION": renderPreset.BackFacesEnabled = true; renderPreset.Description = "Rendering quality is improved over High. " + "Very high anti-aliasing and a raytracing depth of 9 " + "reflections/refractions are processed."; renderPreset.FGRayCount = 1000; renderPreset.FinalGatheringMode = FinalGatheringMode.FinalGatherAuto; renderPreset.GIPhotonsPerLight = 10000; renderPreset.Name = "Presentation"; renderPreset.RayTraceDepth = new MentalRayRenderSettingsTraitsTraceParameter( 9, 9, 9); renderPreset.RayTracingEnabled = true; renderPreset.Sampling = new MentalRayRenderSettingsTraitsIntegerRangeParameter( 1, 2); renderPreset.SamplingContrastColor = new MentalRayRenderSettingsTraitsFloatParameter( (float)0.05, (float)0.05, (float)0.05, (float)0.05); renderPreset.SamplingFilter = new MentalRayRenderSettingsTraitsSamplingParameter( Filter.Lanczos, 4.0, 4.0); renderPreset.ShadowSamplingMultiplier = ShadowSamplingMultiplier.SamplingMultiplierOne; renderPreset.TextureSampling = true; break; } }