Skip to content
On this page

Simple Quad Reduction pipeline

This example shows how to create a new QuadReductionPipeline and how to set basic parameters for reduction and material baking.

MaxScript
-- create a QuadReductionPipeline object
    quadReductionPipeline = sgsdk_CreatePipeline "QuadReductionPipeline"

    -- set DefaultTangentCalculatorType to Autodesk3dsMax (1)
    bResult = sgsdk_SetSetting quadReductionPipeline "GlobalSettings/DefaultTangentCalculatorType" 1
    defaultTangentCalculatorType = sgsdk_GetSetting quadReductionPipeline "GlobalSettings/DefaultTangentCalculatorType"
    print ("DefaultTangentCalculatorType: " + defaultTangentCalculatorType as string + "\n")

    -- set the triangle ratio to 50%
    bResult = sgsdk_SetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatio" 0.5
    reductionTargetPolygonRatio = sgsdk_GetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatio"
    print ("ReductionTargetPolygonRatio: " + reductionTargetPolygonRatio as string + "\n")

    -- set the reduction target to triangle ratio
    bResult = sgsdk_SetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatioEnabled" true
    reductionTargetPolygonRatioEnabled = sgsdk_GetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatioEnabled"
    print ("ReductionTargetPolygonRatioEnabled: " + reductionTargetPolygonRatioEnabled as string + "\n")

    -- disable triangle count reduction target
    bResult = sgsdk_SetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonCountEnabled" false
    reductionTargetPolygonCountEnabled = sgsdk_GetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonCountEnabled"
    print ("ReductionTargetPolygonCountEnabled: " + reductionTargetPolygonCountEnabled as string + "\n")

    -- disable max deviation reduction target
    bResult = sgsdk_SetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetMaxDeviationEnabled" false
    reductionTargetMaxDeviationEnabled = sgsdk_GetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetMaxDeviationEnabled"
    print ("ReductionTargetMaxDeviationEnabled: " + reductionTargetMaxDeviationEnabled as string + "\n")

    -- disable onscreensize reduction target
    bResult = sgsdk_SetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetOnScreenSizeEnabled" false
    reductionTargetOnScreenSizeEnabled = sgsdk_GetSetting quadReductionPipeline "QuadReductionProcessor/QuadReductionSettings/ReductionTargetOnScreenSizeEnabled"
    print ("ReductionTargetOnScreenSizeEnabled: " + reductionTargetOnScreenSizeEnabled as string + "\n")

    -- more settings can be set for the Reduction pipeline,
    -- see Pipeline documentation and/or inspect the generated file
    -- that is saved out by this script!

    -- save the generated Pipeline object to file for later use
    bResult = sgsdk_SavePipeline quadReductionPipeline "D:/Pipelines/QuadReduction.json"

    -- clear all pipelines
    sgsdk_ClearPipelines()
python
from pymxs import runtime as rt

# create a QuadReductionPipeline object
quadReductionPipeline = rt.sgsdk_CreatePipeline('QuadReductionPipeline')

# set DefaultTangentCalculatorType to Autodesk3dsMax (1)
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'GlobalSettings/DefaultTangentCalculatorType', 1)
defaultTangentCalculatorType = rt.sgsdk_GetSetting(quadReductionPipeline, 'GlobalSettings/DefaultTangentCalculatorType')
print ('DefaultTangentCalculatorType: ' + str(defaultTangentCalculatorType) + '\n')

# set the triangle ratio to 50%
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatio', 0.5)
reductionTargetPolygonRatio = rt.sgsdk_GetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatio')
print ('ReductionTargetPolygonRatio: ' + str(reductionTargetPolygonRatio) + '\n')

# set the reduction target to ReductionTargetPolygonRatio
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatioEnabled', True)
reductionTargetPolygonRatioEnabled = rt.sgsdk_GetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonRatioEnabled')
print ('ReductionTargetPolygonRatioEnabled: ' + str(reductionTargetPolygonRatioEnabled) + '\n')

# disable triangle count reduction target
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonCountEnabled', False)
reductionTargetPolygonCountEnabled = rt.sgsdk_GetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetPolygonCountEnabled')
print ('ReductionTargetPolygonCountEnabled: ' + str(reductionTargetPolygonCountEnabled) + '\n')

# disable max deviation reduction target
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetMaxDeviationEnabled', False)
reductionTargetMaxDeviationEnabled = rt.sgsdk_GetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetMaxDeviationEnabled')
print ('ReductionTargetMaxDeviationEnabled: ' + str(reductionTargetMaxDeviationEnabled) + '\n')

# disable onscreensize reduction target
bResult = rt.sgsdk_SetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetOnScreenSizeEnabled', False)
reductionTargetOnScreenSizeEnabled = rt.sgsdk_GetSetting(quadReductionPipeline, 'QuadReductionProcessor/QuadReductionSettings/ReductionTargetOnScreenSizeEnabled')
print ('ReductionTargetOnScreenSizeEnabled: ' + str(reductionTargetOnScreenSizeEnabled) + '\n')

# more settings can be set for the Reduction pipeline,
# see Pipeline documentation and/or inspect the generated file
# that is saved out by this script!

# save the generated Pipeline object to file for later use
bResult = rt.sgsdk_SavePipeline(quadReductionPipeline, 'D:/Pipelines/QuadReduction.json')

# clear all pipelines
rt.sgsdk_ClearPipelines()

Next steps

Get to know how to use the Reduction Pipeline: