Merge branch 'development' into animation/rhhong/RenderUtilOptions
Signed-off-by: rhhong <rhhong@amazon.com>
This commit is contained in:
@@ -1,18 +1,5 @@
|
||||
<settings>
|
||||
<r_PostProcessEffects value="1"/>
|
||||
<r_HDREyeAdaptationSpeed value="100000000"/>
|
||||
<r_MotionBlur value="0"/>
|
||||
<e_ScreenShotQuality value="0"/>
|
||||
<e_ViewDistRatio value="100000000"/>
|
||||
<r_DisplayInfo value="0"/>
|
||||
<e_StreamCgfPoolSize value="128" />
|
||||
<e_ViewDistRatioVegetation value="100"/>
|
||||
<e_Lods value="0"/>
|
||||
<e_Vegetation value="0"/>
|
||||
<e_TerrainOcclusionCulling value="0"/>
|
||||
<e_OcclusionVolumes value="0"/>
|
||||
<e_shadows value="0"/>
|
||||
<e_portals value="3"/>
|
||||
<e_fog value="0"/>
|
||||
<r_hdrdebug value="0"/>
|
||||
</settings>
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
<Tool Title="| Draw Helpers" Command="p_draw_helpers" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| AI Debug Draw" Command="ai_DebugDraw" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| Toggle Music" Command="s_MusicEnable" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| Toggle Sound" Command="s_SoundEnable" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| Toggle ForcefeedBack" Command="i_forcefeedback" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| Freeze Camera " Command="e_CameraFreeze" EditorCmd="" ToggleVar="1"/>
|
||||
<Tool Title="| Log Verbosity 0" Command="log_Verbosity 0" EditorCmd="" ToggleVar="0"/>
|
||||
<Tool Title="| SaveLevelStats" Command="savelevelstats" EditorCmd="" ToggleVar="0"/>
|
||||
|
||||
@@ -1,16 +1,5 @@
|
||||
ConsoleHide
|
||||
g_godMode=1
|
||||
sys_warnings=0
|
||||
con_showonload=1
|
||||
i_forcefeedback=0
|
||||
g_infiniteammo=1
|
||||
e_ObjectLayersActivation=0
|
||||
e_ObjectLayersActivationPhysics=0
|
||||
g_flashrenderingduringloading=0
|
||||
sys_maxfps=0
|
||||
r_vsync=0
|
||||
p_max_substeps=1
|
||||
demo_file=autotest
|
||||
demo_num_runs=0
|
||||
demo_quit=1
|
||||
demo_ai=1
|
||||
|
||||
@@ -1,15 +1,5 @@
|
||||
ConsoleHide
|
||||
g_godMode=1
|
||||
g_infiniteammo=1
|
||||
r_displayinfo=1
|
||||
s_profiling=1
|
||||
sys_maxfps=0
|
||||
e_ObjectLayersActivation=0
|
||||
e_ObjectLayersActivationPhysics=0
|
||||
|
||||
demo_file=autotest
|
||||
demo_num_runs=2
|
||||
demo_quit=1
|
||||
demo_savestats=1
|
||||
demo_profile=-1
|
||||
demo
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
ConsoleHide
|
||||
g_godMode=1
|
||||
g_infiniteammo=1
|
||||
r_displayinfo=1
|
||||
s_profiling=1
|
||||
sys_maxfps=0
|
||||
demo_file=playthru
|
||||
demo_num_runs=2
|
||||
demo_quit=1
|
||||
demo_savestats=1
|
||||
demo_profile=-1
|
||||
demo
|
||||
demo
|
||||
|
||||
@@ -11,113 +11,16 @@
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
sys_spec_ObjectDetail=7
|
||||
sys_spec_Shading=7
|
||||
sys_spec_VolumetricEffects=7
|
||||
sys_spec_Shadows=7
|
||||
sys_spec_Texture=7
|
||||
sys_spec_Physics=7
|
||||
sys_spec_PostProcessing=7
|
||||
sys_spec_Particles=7
|
||||
sys_spec_Sound=7
|
||||
sys_spec_Water=7
|
||||
sys_spec_GameEffects=7
|
||||
sys_spec_light=7
|
||||
|
||||
[1]
|
||||
sys_spec_ObjectDetail=1
|
||||
sys_spec_Shading=1
|
||||
sys_spec_VolumetricEffects=1
|
||||
sys_spec_Shadows=1
|
||||
sys_spec_Texture=1
|
||||
sys_spec_Physics=1
|
||||
sys_spec_PostProcessing=1
|
||||
sys_spec_Particles=1
|
||||
sys_spec_Sound=1
|
||||
sys_spec_Water=1
|
||||
sys_spec_GameEffects=1
|
||||
sys_spec_light=1
|
||||
|
||||
[2]
|
||||
sys_spec_ObjectDetail=2
|
||||
sys_spec_Shading=2
|
||||
sys_spec_VolumetricEffects=2
|
||||
sys_spec_Shadows=2
|
||||
sys_spec_Texture=2
|
||||
sys_spec_Physics=2
|
||||
sys_spec_PostProcessing=2
|
||||
sys_spec_Particles=2
|
||||
sys_spec_Sound=2
|
||||
sys_spec_Water=2
|
||||
sys_spec_GameEffects=2
|
||||
sys_spec_light=2
|
||||
|
||||
[3]
|
||||
sys_spec_ObjectDetail=3
|
||||
sys_spec_Shading=3
|
||||
sys_spec_VolumetricEffects=3
|
||||
sys_spec_Shadows=3
|
||||
sys_spec_Texture=3
|
||||
sys_spec_Physics=3
|
||||
sys_spec_PostProcessing=3
|
||||
sys_spec_Particles=3
|
||||
sys_spec_Sound=3
|
||||
sys_spec_Water=3
|
||||
sys_spec_GameEffects=3
|
||||
sys_spec_light=3
|
||||
|
||||
[4]
|
||||
sys_spec_ObjectDetail=4
|
||||
sys_spec_Shading=4
|
||||
sys_spec_VolumetricEffects=4
|
||||
sys_spec_Shadows=4
|
||||
sys_spec_Texture=4
|
||||
sys_spec_Physics=4
|
||||
sys_spec_PostProcessing=4
|
||||
sys_spec_Particles=4
|
||||
sys_spec_Sound=4
|
||||
sys_spec_Water=4
|
||||
sys_spec_GameEffects=4
|
||||
sys_spec_light=4
|
||||
|
||||
[5]
|
||||
sys_spec_ObjectDetail=5
|
||||
sys_spec_Shading=5
|
||||
sys_spec_VolumetricEffects=5
|
||||
sys_spec_Shadows=5
|
||||
sys_spec_Texture=5
|
||||
sys_spec_Physics=5
|
||||
sys_spec_PostProcessing=5
|
||||
sys_spec_Particles=5
|
||||
sys_spec_Sound=5
|
||||
sys_spec_Water=5
|
||||
sys_spec_GameEffects=5
|
||||
sys_spec_light=5
|
||||
|
||||
[6]
|
||||
sys_spec_ObjectDetail=6
|
||||
sys_spec_Shading=6
|
||||
sys_spec_VolumetricEffects=6
|
||||
sys_spec_Shadows=6
|
||||
sys_spec_Texture=6
|
||||
sys_spec_Physics=6
|
||||
sys_spec_PostProcessing=6
|
||||
sys_spec_Particles=6
|
||||
sys_spec_Sound=6
|
||||
sys_spec_Water=6
|
||||
sys_spec_GameEffects=6
|
||||
sys_spec_light=6
|
||||
|
||||
[8]
|
||||
sys_spec_ObjectDetail=8
|
||||
sys_spec_Shading=8
|
||||
sys_spec_VolumetricEffects=8
|
||||
sys_spec_Shadows=8
|
||||
sys_spec_Texture=8
|
||||
sys_spec_Physics=8
|
||||
sys_spec_PostProcessing=8
|
||||
sys_spec_Particles=8
|
||||
sys_spec_Sound=8
|
||||
sys_spec_Water=8
|
||||
sys_spec_GameEffects=8
|
||||
sys_spec_light=8
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
mfx_Timeout = 0.01
|
||||
|
||||
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
ca_AttachmentCullingRation=360
|
||||
es_DebrisLifetimeScale=1
|
||||
e_CoverageBufferReproj=6
|
||||
e_DecalsAllowGameDecals=1
|
||||
e_DecalsLifeTimeScale=2
|
||||
e_DecalsOverlapping=1
|
||||
e_Dissolve=2
|
||||
e_LightQuality=3
|
||||
e_LodMin=0
|
||||
e_LodRatio=20
|
||||
e_MaxViewDistSpecLerp=1
|
||||
e_MergedMeshesInstanceDist=1.0
|
||||
e_MergedMeshesPool=8192
|
||||
e_ObjQuality=3
|
||||
e_OcclusionCullingViewDistRatio=1
|
||||
e_ProcVegetation=1
|
||||
e_StatObjBufferRenderTasks=1
|
||||
e_StreamCgf=0
|
||||
e_TerrainLodRatio=1
|
||||
e_TerrainOcclusionCullingMaxDist=200
|
||||
e_Tessellation=0
|
||||
e_VegetationMinSize=0
|
||||
e_ViewDistMin=10
|
||||
e_ViewDistRatio=100
|
||||
e_ViewDistRatioCustom=100
|
||||
e_ViewDistRatioDetail=100
|
||||
e_ViewDistRatioLights=50
|
||||
e_ViewDistRatioVegetation=100
|
||||
r_DrawNearZRange=0.12
|
||||
r_FlaresTessellationRatio=1
|
||||
r_SilhouettePOM=0
|
||||
r_usezpass=2
|
||||
|
||||
[1]
|
||||
ca_AttachmentCullingRation=145
|
||||
es_DebrisLifetimeScale=0.6
|
||||
e_DecalsLifeTimeScale=1
|
||||
e_Dissolve=0
|
||||
e_LightQuality=1
|
||||
e_LodRatio=10
|
||||
e_MaxViewDistSpecLerp=0.5
|
||||
e_ObjQuality=1
|
||||
e_TerrainOcclusionCullingMaxDist=130
|
||||
e_VegetationMinSize=0.5
|
||||
e_ViewDistRatioCustom=60
|
||||
e_ViewDistRatioDetail=25
|
||||
e_ViewDistRatioLights=25
|
||||
e_ViewDistRatioVegetation=21
|
||||
r_FlaresTessellationRatio=0.25
|
||||
r_usezpass=1
|
||||
e_ProcVegetation=0
|
||||
e_ViewDistRatio=50
|
||||
|
||||
[2]
|
||||
ca_AttachmentCullingRation=145
|
||||
es_DebrisLifetimeScale=0.6
|
||||
e_DecalsLifeTimeScale=1
|
||||
e_Dissolve=0
|
||||
e_LightQuality=2
|
||||
e_LodRatio=10
|
||||
e_MaxViewDistSpecLerp=0.5
|
||||
e_ObjQuality=2
|
||||
e_TerrainOcclusionCullingMaxDist=130
|
||||
e_VegetationMinSize=0.5
|
||||
e_ViewDistRatioCustom=60
|
||||
e_ViewDistRatioDetail=25
|
||||
e_ViewDistRatioLights=25
|
||||
e_ViewDistRatioVegetation=50
|
||||
r_FlaresTessellationRatio=0.25
|
||||
r_usezpass=1
|
||||
e_ProcVegetation=1
|
||||
e_ViewDistRatio=50
|
||||
|
||||
[3]
|
||||
ca_AttachmentCullingRation=145
|
||||
es_DebrisLifetimeScale=0.6
|
||||
e_DecalsLifeTimeScale=1
|
||||
e_Dissolve=0
|
||||
e_LightQuality=3
|
||||
e_LodRatio=10
|
||||
e_MaxViewDistSpecLerp=0.5
|
||||
e_ObjQuality=3
|
||||
e_TerrainOcclusionCullingMaxDist=130
|
||||
e_VegetationMinSize=0.5
|
||||
e_ViewDistRatioCustom=60
|
||||
e_ViewDistRatioDetail=25
|
||||
e_ViewDistRatioLights=25
|
||||
e_ViewDistRatioVegetation=50
|
||||
r_FlaresTessellationRatio=0.25
|
||||
r_usezpass=1
|
||||
e_ProcVegetation=1
|
||||
e_ViewDistRatio=75
|
||||
|
||||
[4]
|
||||
ca_AttachmentCullingRation=145
|
||||
es_DebrisLifetimeScale=0.6
|
||||
e_DecalsLifeTimeScale=1
|
||||
e_Dissolve=0
|
||||
e_LightQuality=4
|
||||
e_LodRatio=10
|
||||
e_MaxViewDistSpecLerp=0.5
|
||||
e_ObjQuality=4
|
||||
e_TerrainOcclusionCullingMaxDist=130
|
||||
e_VegetationMinSize=0.5
|
||||
e_ViewDistRatioCustom=60
|
||||
e_ViewDistRatioDetail=25
|
||||
e_ViewDistRatioLights=25
|
||||
e_ViewDistRatioVegetation=50
|
||||
r_FlaresTessellationRatio=0.25
|
||||
r_usezpass=1
|
||||
e_ProcVegetation=1
|
||||
e_ViewDistRatio=75
|
||||
|
||||
[5]
|
||||
ca_AttachmentCullingRation=145
|
||||
es_DebrisLifetimeScale=0.6
|
||||
e_DecalsLifeTimeScale=1
|
||||
e_LightQuality=1
|
||||
e_LodRatio=10
|
||||
e_MaxViewDistSpecLerp=0.5
|
||||
e_ObjQuality=1
|
||||
e_TerrainOcclusionCullingMaxDist=130
|
||||
e_VegetationMinSize=0.5
|
||||
e_ViewDistRatio=50
|
||||
e_ViewDistRatioCustom=60
|
||||
e_ViewDistRatioDetail=25
|
||||
e_ViewDistRatioLights=25
|
||||
e_ViewDistRatioVegetation=50
|
||||
r_FlaresTessellationRatio=0.25
|
||||
|
||||
[6]
|
||||
ca_AttachmentCullingRation=300
|
||||
es_DebrisLifetimeScale=0.8
|
||||
e_LightQuality=2
|
||||
e_LodRatio=15
|
||||
e_ObjQuality=2
|
||||
e_ViewDistRatio=75
|
||||
e_ViewDistRatioDetail=35
|
||||
e_ViewDistRatioVegetation=75
|
||||
|
||||
[8]
|
||||
ca_AttachmentCullingRation=400
|
||||
e_LightQuality=4
|
||||
e_LodRatio=40
|
||||
e_MergedMeshesInstanceDist=2.0
|
||||
e_MergedMeshesPool=16384
|
||||
e_ObjQuality=4
|
||||
e_TerrainLodRatio=0.5
|
||||
e_Tessellation=1
|
||||
e_ViewDistRatio=125
|
||||
e_ViewDistRatioCustom=125
|
||||
e_ViewDistRatioDetail=125
|
||||
e_ViewDistRatioLights=75
|
||||
e_ViewDistRatioVegetation=125
|
||||
r_DrawNearZRange = 0.08
|
||||
r_SilhouettePOM=1
|
||||
@@ -1,94 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_ParticlesGI=1
|
||||
e_ParticlesPreload=0
|
||||
e_ParticlesMaxScreenFill=128
|
||||
e_ParticlesMinDrawPixels=1
|
||||
e_ParticlesMotionBlur=0
|
||||
e_ParticlesObjectCollisions=2
|
||||
e_ParticlesQuality=3
|
||||
e_ParticlesSortQuality=0
|
||||
e_ParticlesPoolSize=16384
|
||||
r_ParticlesHalfRes=0
|
||||
r_ParticlesTessellation=1
|
||||
r_ParticlesInstanceVertices=1
|
||||
r_ParticlesGpuMaxEmitCount=10000
|
||||
|
||||
[1]
|
||||
e_ParticlesGI=0
|
||||
e_ParticlesPreload=1
|
||||
e_ParticlesMaxScreenFill=16
|
||||
e_ParticlesMinDrawPixels=2
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=2
|
||||
e_ParticlesPoolSize=4096
|
||||
r_ParticlesHalfRes=1
|
||||
r_ParticlesTessellation=0
|
||||
r_ParticlesInstanceVertices=0
|
||||
r_ParticlesGpuMaxEmitCount=10
|
||||
|
||||
|
||||
[2]
|
||||
e_ParticlesGI=0
|
||||
e_ParticlesPreload=1
|
||||
e_ParticlesMaxScreenFill=16
|
||||
e_ParticlesMinDrawPixels=2
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=2
|
||||
e_ParticlesPoolSize=4096
|
||||
r_ParticlesHalfRes=1
|
||||
r_ParticlesTessellation=0
|
||||
r_ParticlesInstanceVertices=0
|
||||
r_ParticlesGpuMaxEmitCount=100
|
||||
|
||||
|
||||
[3]
|
||||
e_ParticlesGI=0
|
||||
e_ParticlesPreload=1
|
||||
e_ParticlesMaxScreenFill=16
|
||||
e_ParticlesMinDrawPixels=2
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=2
|
||||
e_ParticlesPoolSize=4096
|
||||
r_ParticlesHalfRes=1
|
||||
r_ParticlesTessellation=0
|
||||
r_ParticlesInstanceVertices=0
|
||||
r_ParticlesGpuMaxEmitCount=500
|
||||
|
||||
|
||||
[4]
|
||||
e_ParticlesGI=0
|
||||
e_ParticlesPreload=1
|
||||
e_ParticlesMaxScreenFill=16
|
||||
e_ParticlesMinDrawPixels=2
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=2
|
||||
e_ParticlesPoolSize=4096
|
||||
r_ParticlesHalfRes=1
|
||||
r_ParticlesTessellation=0
|
||||
r_ParticlesInstanceVertices=0
|
||||
r_ParticlesGpuMaxEmitCount=1000
|
||||
|
||||
|
||||
[5]
|
||||
e_ParticlesMaxScreenFill=32
|
||||
e_ParticlesMinDrawPixels=1.5
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=1
|
||||
r_ParticlesHalfRes=1
|
||||
r_ParticlesTessellation=0
|
||||
r_ParticlesGpuMaxEmitCount=3000
|
||||
|
||||
[6]
|
||||
e_ParticlesMaxScreenFill=64
|
||||
e_ParticlesObjectCollisions=1
|
||||
e_ParticlesQuality=2
|
||||
r_ParticlesGpuMaxEmitCount=5000
|
||||
|
||||
[8]
|
||||
e_ParticlesMaxScreenFill=160
|
||||
e_ParticlesMotionBlur=1
|
||||
e_ParticlesQuality=4
|
||||
r_ParticlesGpuMaxEmitCount=1048576
|
||||
@@ -1,100 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
es_MaxPhysDist=100
|
||||
es_MaxPhysDistInvisible=25
|
||||
e_CullVegActivation=50
|
||||
e_FoliageWindActivationDist=25
|
||||
e_PhysMinCellSize=4
|
||||
e_PhysOceanCell=0.5
|
||||
e_PhysProxyTriLimit=10000
|
||||
g_breakage_mem_limit=0
|
||||
g_breakage_particles_limit=160
|
||||
g_no_secondary_breaking=0
|
||||
g_tree_cut_reuse_dist=0
|
||||
p_gravity_z=-13
|
||||
p_max_entity_cells=300000
|
||||
p_max_MC_iters=6000
|
||||
p_max_object_splashes=3
|
||||
p_max_substeps=5
|
||||
p_max_substeps_large_group=5
|
||||
p_num_bodies_large_group=100
|
||||
p_splash_dist0=7
|
||||
p_splash_dist1=30
|
||||
p_splash_force0=10
|
||||
p_splash_force1=100
|
||||
p_splash_vel0=4.5
|
||||
p_splash_vel1=10
|
||||
v_vehicle_quality=4
|
||||
|
||||
[1]
|
||||
es_MaxPhysDistInvisible=15
|
||||
e_CullVegActivation=30
|
||||
e_FoliageWindActivationDist=10
|
||||
e_PhysMinCellSize=16
|
||||
e_PhysOceanCell=1
|
||||
g_breakage_mem_limit=2000
|
||||
g_breakage_particles_limit=40
|
||||
g_no_secondary_breaking=1
|
||||
g_tree_cut_reuse_dist=1
|
||||
p_max_entity_cells=75000
|
||||
p_max_MC_iters=2000
|
||||
p_max_substeps=2
|
||||
|
||||
[2]
|
||||
es_MaxPhysDistInvisible=15
|
||||
e_CullVegActivation=30
|
||||
e_FoliageWindActivationDist=10
|
||||
e_PhysMinCellSize=16
|
||||
e_PhysOceanCell=1
|
||||
g_breakage_mem_limit=2000
|
||||
g_breakage_particles_limit=40
|
||||
g_no_secondary_breaking=1
|
||||
g_tree_cut_reuse_dist=1
|
||||
p_max_entity_cells=75000
|
||||
p_max_MC_iters=2000
|
||||
p_max_substeps=2
|
||||
|
||||
[3]
|
||||
es_MaxPhysDistInvisible=15
|
||||
e_CullVegActivation=30
|
||||
e_FoliageWindActivationDist=10
|
||||
e_PhysMinCellSize=16
|
||||
e_PhysOceanCell=1
|
||||
g_breakage_mem_limit=2000
|
||||
g_breakage_particles_limit=40
|
||||
g_no_secondary_breaking=1
|
||||
g_tree_cut_reuse_dist=1
|
||||
p_max_entity_cells=75000
|
||||
p_max_MC_iters=2000
|
||||
p_max_substeps=2
|
||||
|
||||
[4]
|
||||
es_MaxPhysDistInvisible=15
|
||||
e_CullVegActivation=30
|
||||
e_FoliageWindActivationDist=10
|
||||
e_PhysMinCellSize=16
|
||||
e_PhysOceanCell=1
|
||||
g_breakage_mem_limit=2000
|
||||
g_breakage_particles_limit=40
|
||||
g_no_secondary_breaking=1
|
||||
g_tree_cut_reuse_dist=1
|
||||
p_max_entity_cells=75000
|
||||
p_max_MC_iters=2000
|
||||
p_max_substeps=2
|
||||
|
||||
[5]
|
||||
es_MaxPhysDist=50
|
||||
es_MaxPhysDistInvisible=15
|
||||
e_CullVegActivation=30
|
||||
e_FoliageWindActivationDist=10
|
||||
e_PhysOceanCell=1
|
||||
g_breakage_particles_limit=80
|
||||
g_tree_cut_reuse_dist=0.35
|
||||
p_max_MC_iters=4000
|
||||
p_max_substeps=2
|
||||
|
||||
[6]
|
||||
|
||||
[8]
|
||||
@@ -1,114 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
r_PostProcessEffects=1
|
||||
q_ShaderHDR=2
|
||||
q_ShaderPostProcess=2
|
||||
r_ChromaticAberration=0
|
||||
r_ColorGradingChartsCache=0
|
||||
r_DepthOfField=2
|
||||
r_Flares=1
|
||||
r_HDRBloomQuality=2
|
||||
r_MotionBlur=2
|
||||
r_MotionBlurMaxViewDist=100000
|
||||
r_MotionBlurQuality=1
|
||||
r_MotionBlurShutterSpeed=125
|
||||
r_Rain=2
|
||||
r_RainMaxViewDist_Deferred=150
|
||||
r_Sharpening=0
|
||||
r_Snow=2
|
||||
r_SunShafts=2
|
||||
r_TranspDepthFixup=1
|
||||
r_ToneMapTechnique=0
|
||||
r_ToneMapExposureType=0
|
||||
r_HDRBloom=1
|
||||
r_ColorGrading=1
|
||||
r_ColorSpace=0
|
||||
|
||||
[1]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=1
|
||||
r_ColorGrading=0
|
||||
r_DepthOfField=0
|
||||
r_Flares=0
|
||||
r_HDRBloom=0
|
||||
r_HDRBloomQuality=0
|
||||
r_MotionBlur=0
|
||||
r_MotionBlurMaxViewDist=16
|
||||
r_MotionBlurQuality=0
|
||||
r_Rain=1
|
||||
r_RainMaxViewDist_Deferred=40
|
||||
r_Snow=1
|
||||
r_SunShafts=0
|
||||
r_TranspDepthFixup=0
|
||||
r_ToneMapTechnique=3
|
||||
r_ToneMapExposureType=1
|
||||
r_ColorSpace=2
|
||||
|
||||
|
||||
[2]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=1
|
||||
r_ColorGradingChartsCache=4
|
||||
r_DepthOfField=1
|
||||
r_Flares=0
|
||||
r_HDRBloomQuality=0
|
||||
r_MotionBlur=0
|
||||
r_MotionBlurMaxViewDist=16
|
||||
r_MotionBlurQuality=0
|
||||
r_Rain=1
|
||||
r_RainMaxViewDist_Deferred=40
|
||||
r_Snow=1
|
||||
r_SunShafts=1
|
||||
r_TranspDepthFixup=0
|
||||
|
||||
|
||||
[3]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=2
|
||||
r_ColorGradingChartsCache=4
|
||||
r_DepthOfField=1
|
||||
r_HDRBloomQuality=1
|
||||
r_MotionBlur=0
|
||||
r_MotionBlurMaxViewDist=16
|
||||
r_MotionBlurQuality=0
|
||||
r_Rain=1
|
||||
r_RainMaxViewDist_Deferred=40
|
||||
r_Snow=1
|
||||
r_SunShafts=1
|
||||
r_TranspDepthFixup=0
|
||||
|
||||
[4]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=2
|
||||
r_ColorGradingChartsCache=4
|
||||
r_DepthOfField=1
|
||||
r_HDRBloomQuality=1
|
||||
r_MotionBlur=0
|
||||
r_MotionBlurMaxViewDist=16
|
||||
r_MotionBlurQuality=0
|
||||
r_Rain=1
|
||||
r_RainMaxViewDist_Deferred=40
|
||||
r_Snow=1
|
||||
r_SunShafts=1
|
||||
r_TranspDepthFixup=0
|
||||
|
||||
[5]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=1
|
||||
r_ColorGradingChartsCache=4
|
||||
r_MotionBlurMaxViewDist=16
|
||||
r_MotionBlurQuality=0
|
||||
r_RainMaxViewDist_Deferred=40
|
||||
r_TranspDepthFixup=0
|
||||
|
||||
[6]
|
||||
q_ShaderHDR=1
|
||||
q_ShaderPostProcess=1
|
||||
r_RainMaxViewDist_Deferred=100
|
||||
|
||||
[8]
|
||||
q_ShaderHDR=3
|
||||
q_ShaderPostProcess=3
|
||||
r_MotionBlurQuality=2
|
||||
@@ -1,98 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
q_ShaderGeneral=2
|
||||
q_ShaderMetal=2
|
||||
q_ShaderGlass=2
|
||||
q_ShaderVegetation=2
|
||||
q_ShaderIce=2
|
||||
q_ShaderTerrain=2
|
||||
q_ShaderShadow=2
|
||||
q_ShaderFX=2
|
||||
q_ShaderSky=2
|
||||
q_Renderer=2
|
||||
|
||||
[1]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=1
|
||||
|
||||
[2]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=1
|
||||
|
||||
[3]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=2
|
||||
|
||||
[4]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=2
|
||||
|
||||
[5]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=1
|
||||
|
||||
[6]
|
||||
q_ShaderGeneral=1
|
||||
q_ShaderMetal=1
|
||||
q_ShaderGlass=1
|
||||
q_ShaderVegetation=1
|
||||
q_ShaderIce=1
|
||||
q_ShaderTerrain=1
|
||||
q_ShaderShadow=1
|
||||
q_ShaderFX=1
|
||||
q_ShaderSky=1
|
||||
q_Renderer=1
|
||||
|
||||
[8]
|
||||
q_ShaderGeneral=3
|
||||
q_ShaderMetal=3
|
||||
q_ShaderGlass=3
|
||||
q_ShaderVegetation=3
|
||||
q_ShaderIce=3
|
||||
q_ShaderTerrain=3
|
||||
q_ShaderShadow=3
|
||||
q_ShaderFX=3
|
||||
q_ShaderSky=3
|
||||
q_Renderer=3
|
||||
@@ -1,120 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_CacheNearestCubePicking=1
|
||||
e_DynamicLightsMaxEntityLights=16
|
||||
e_GI=1
|
||||
e_LightVolumes=1
|
||||
e_SkyUpdateRate=1
|
||||
e_TerrainAo=0
|
||||
e_VegetationUseTerrainColor=1
|
||||
r_DeferredShadingDepthBoundsTest=1
|
||||
r_DeferredShadingTiled=2
|
||||
r_DeferredShadingTiledHairQuality=1
|
||||
r_deferredShadingFilterGBuffer=0
|
||||
r_DeferredShadingSSS=1
|
||||
r_AntialiasingMode=3
|
||||
r_DetailDistance=8
|
||||
r_EnvTexUpdateInterval=0.05
|
||||
r_Refraction=1
|
||||
r_RefractionPartialResolves=2
|
||||
r_ssdo=1
|
||||
r_ssdoHalfRes=2
|
||||
r_ssdoColorBleeding=1
|
||||
r_SSReflections=1
|
||||
r_SSReflHalfRes=1
|
||||
r_VisAreaClipLightsPerPixel=1
|
||||
sys_spec_Quality=7
|
||||
|
||||
[1]
|
||||
e_DynamicLightsMaxEntityLights=2
|
||||
e_GI=0
|
||||
e_SkyUpdateRate=0.5
|
||||
e_VegetationUseTerrainColor=0
|
||||
r_DeferredShadingTiled=0
|
||||
r_DeferredShadingTiledHairQuality=0
|
||||
r_DeferredShadingSSS=0
|
||||
r_AntialiasingMode=0
|
||||
r_DetailDistance=4
|
||||
r_EnvTexUpdateInterval=0.075
|
||||
r_Refraction=0
|
||||
r_RefractionPartialResolves=0
|
||||
r_ssdo=0
|
||||
r_ssdoHalfRes=1
|
||||
r_ssdoColorBleeding=0
|
||||
r_SSReflections=0
|
||||
sys_spec_Quality=1
|
||||
|
||||
[2]
|
||||
e_DynamicLightsMaxEntityLights=2
|
||||
e_GI=0
|
||||
e_SkyUpdateRate=0.5
|
||||
e_VegetationUseTerrainColor=0
|
||||
r_DeferredShadingTiled=0
|
||||
r_DeferredShadingTiledHairQuality=0
|
||||
r_DeferredShadingSSS=0
|
||||
r_AntialiasingMode=0
|
||||
r_DetailDistance=4
|
||||
r_EnvTexUpdateInterval=0.075
|
||||
r_RefractionPartialResolves=0
|
||||
r_ssdo=0
|
||||
r_ssdoHalfRes=1
|
||||
r_ssdoColorBleeding=0
|
||||
r_SSReflections=0
|
||||
sys_spec_Quality=2
|
||||
|
||||
[3]
|
||||
e_DynamicLightsMaxEntityLights=2
|
||||
e_GI=0
|
||||
e_SkyUpdateRate=0.5
|
||||
e_VegetationUseTerrainColor=0
|
||||
r_DeferredShadingTiled=0
|
||||
r_DeferredShadingTiledHairQuality=0
|
||||
r_DeferredShadingSSS=0
|
||||
r_AntialiasingMode=0
|
||||
r_DetailDistance=4
|
||||
r_EnvTexUpdateInterval=0.075
|
||||
r_RefractionPartialResolves=0
|
||||
r_ssdo=0
|
||||
r_ssdoColorBleeding=0
|
||||
r_SSReflections=0
|
||||
sys_spec_Quality=3
|
||||
|
||||
[4]
|
||||
e_DynamicLightsMaxEntityLights=2
|
||||
e_GI=0
|
||||
e_SkyUpdateRate=0.5
|
||||
e_VegetationUseTerrainColor=0
|
||||
r_DeferredShadingTiled=0
|
||||
r_DeferredShadingTiledHairQuality=0
|
||||
r_DeferredShadingSSS=0
|
||||
r_AntialiasingMode=0
|
||||
r_DetailDistance=4
|
||||
r_EnvTexUpdateInterval=0.075
|
||||
r_RefractionPartialResolves=0
|
||||
r_ssdo=1
|
||||
r_ssdoHalfRes=1
|
||||
r_ssdoColorBleeding=0
|
||||
r_SSReflections=0
|
||||
sys_spec_Quality=4
|
||||
|
||||
[5]
|
||||
e_DynamicLightsMaxEntityLights=7
|
||||
e_GI=0
|
||||
e_SkyUpdateRate=0.5
|
||||
r_DetailDistance=4
|
||||
r_EnvTexUpdateInterval=0.075
|
||||
r_SSReflections=0
|
||||
r_DeferredShadingTiledHairQuality=0
|
||||
r_DeferredShadingSSS=0
|
||||
sys_spec_Quality=5
|
||||
|
||||
[6]
|
||||
e_DynamicLightsMaxEntityLights=11
|
||||
sys_spec_Quality=6
|
||||
|
||||
[8]
|
||||
r_DeferredShadingTiledHairQuality=2
|
||||
r_SSReflHalfRes=0
|
||||
sys_spec_Quality=8
|
||||
@@ -1,116 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_GsmLodsNum=5
|
||||
e_GsmRange=3
|
||||
e_ParticlesShadows=1
|
||||
e_Shadows=1
|
||||
e_ShadowsBlendCascades=1
|
||||
e_ShadowsClouds=1
|
||||
e_ShadowsCastViewDistRatio=1
|
||||
e_ShadowsLodBiasFixed=0
|
||||
e_ShadowsMaxTexRes=1024
|
||||
e_ShadowsOnAlphaBlend=0
|
||||
e_ShadowsPoolSize=4096
|
||||
e_ShadowsResScale=4
|
||||
e_ShadowsTessellateCascades=1
|
||||
e_ShadowsTessellateDLights=0
|
||||
e_ShadowsUpdateViewDistRatio=256
|
||||
r_DrawNearShadows=1
|
||||
r_FogShadows=2
|
||||
r_FogShadowsWater=0
|
||||
r_ShadowJittering=2.5
|
||||
r_ShadowPoolMaxFrames=30
|
||||
r_ShadowPoolMaxTimeslicedUpdatesPerFrame=100
|
||||
r_ShadowsPCFiltering=1
|
||||
r_ShadowsCache=4
|
||||
r_ShadowsCacheFormat=1
|
||||
r_ShadowsCacheResolutions=6324,4214
|
||||
r_ShadowsUseClipVolume=1
|
||||
e_ObjShadowCastSpec=3
|
||||
|
||||
[1]
|
||||
e_GsmLodsNum=3
|
||||
e_ParticlesShadows=0
|
||||
e_ShadowsBlendCascades=0
|
||||
e_ShadowsCastViewDistRatio=0.8
|
||||
e_ShadowsLodBiasFixed=1
|
||||
e_ShadowsMaxTexRes=512
|
||||
r_DrawNearShadows=0
|
||||
r_FogShadows=0
|
||||
r_ShadowJittering=0
|
||||
r_ShadowsCacheFormat=0
|
||||
r_ShadowsCacheResolutions=3162,2107
|
||||
e_ObjShadowCastSpec=1
|
||||
e_ShadowsPoolSize=1024
|
||||
|
||||
[2]
|
||||
e_GsmLodsNum=4
|
||||
e_ParticlesShadows=0
|
||||
e_ShadowsBlendCascades=0
|
||||
e_ShadowsCastViewDistRatio=0.8
|
||||
e_ShadowsLodBiasFixed=1
|
||||
e_ShadowsMaxTexRes=512
|
||||
r_DrawNearShadows=0
|
||||
r_FogShadows=0
|
||||
r_ShadowJittering=0
|
||||
r_ShadowsCacheFormat=0
|
||||
r_ShadowsCacheResolutions=3162,2107
|
||||
e_ObjShadowCastSpec=1
|
||||
e_ShadowsPoolSize=1024
|
||||
|
||||
[3]
|
||||
e_GsmLodsNum=4
|
||||
e_ParticlesShadows=0
|
||||
e_ShadowsBlendCascades=0
|
||||
e_ShadowsCastViewDistRatio=0.8
|
||||
e_ShadowsLodBiasFixed=1
|
||||
e_ShadowsMaxTexRes=512
|
||||
r_DrawNearShadows=0
|
||||
r_FogShadows=0
|
||||
r_ShadowJittering=0
|
||||
r_ShadowsCacheFormat=0
|
||||
r_ShadowsCacheResolutions=3162,2107
|
||||
e_ObjShadowCastSpec=1
|
||||
e_ShadowsPoolSize=1024
|
||||
|
||||
[4]
|
||||
e_GsmLodsNum=4
|
||||
e_ParticlesShadows=0
|
||||
e_ShadowsBlendCascades=0
|
||||
e_ShadowsCastViewDistRatio=0.8
|
||||
e_ShadowsLodBiasFixed=1
|
||||
e_ShadowsMaxTexRes=512
|
||||
r_DrawNearShadows=0
|
||||
r_FogShadows=0
|
||||
r_ShadowJittering=0
|
||||
r_ShadowsCacheFormat=0
|
||||
r_ShadowsCacheResolutions=3162,2107
|
||||
e_ObjShadowCastSpec=1
|
||||
e_ShadowsPoolSize=1024
|
||||
|
||||
[5]
|
||||
e_GsmLodsNum=4
|
||||
e_ParticlesShadows=0
|
||||
e_ShadowsBlendCascades=0
|
||||
e_ShadowsCastViewDistRatio=0.8
|
||||
e_ShadowsLodBiasFixed=1
|
||||
e_ShadowsMaxTexRes=512
|
||||
r_FogShadows=0
|
||||
r_ShadowJittering=1
|
||||
e_ObjShadowCastSpec=1
|
||||
r_ShadowsCacheResolutions=3162,2107
|
||||
|
||||
[6]
|
||||
r_ShadowJittering=1
|
||||
e_ObjShadowCastSpec=2
|
||||
|
||||
[8]
|
||||
r_FogShadows=1
|
||||
r_FogShadowsWater=1
|
||||
r_ShadowPoolMaxFrames=0
|
||||
r_ShadowPoolMaxTimeslicedUpdatesPerFrame=100
|
||||
e_ObjShadowCastSpec=4
|
||||
r_ShadowsCache=5
|
||||
r_ShadowsCacheResolutions=4214
|
||||
@@ -1,17 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
[1]
|
||||
|
||||
[2]
|
||||
|
||||
[3]
|
||||
|
||||
[4]
|
||||
|
||||
[5]
|
||||
|
||||
[6]
|
||||
|
||||
[8]
|
||||
@@ -1,94 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_TerrainTextureStreamingPoolItemsNum=64
|
||||
r_DynTexAtlasCloudsMaxSize=32
|
||||
r_DynTexAtlasSpritesMaxSize=32
|
||||
r_DynTexMaxSize=80
|
||||
r_EnvCMResolution=2
|
||||
r_EnvTexResolution=3
|
||||
r_ImposterRatio=1
|
||||
r_TexAtlasSize=2048
|
||||
r_TexMaxAnisotropy=4
|
||||
r_TexMinAnisotropy=4
|
||||
r_TexNoAnisoAlphaTest=0
|
||||
|
||||
[1]
|
||||
e_TerrainTextureStreamingPoolItemsNum=16
|
||||
r_DynTexAtlasCloudsMaxSize=8
|
||||
r_DynTexAtlasSpritesMaxSize=8
|
||||
r_DynTexMaxSize=20
|
||||
r_EnvCMResolution=0
|
||||
r_EnvTexResolution=1
|
||||
r_ImposterRatio=2
|
||||
r_TexAtlasSize=512
|
||||
r_TexMaxAnisotropy=2
|
||||
r_TexMinAnisotropy=2
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[2]
|
||||
e_TerrainTextureStreamingPoolItemsNum=16
|
||||
r_DynTexAtlasCloudsMaxSize=8
|
||||
r_DynTexAtlasSpritesMaxSize=8
|
||||
r_DynTexMaxSize=20
|
||||
r_EnvCMResolution=0
|
||||
r_EnvTexResolution=1
|
||||
r_ImposterRatio=2
|
||||
r_TexAtlasSize=512
|
||||
r_TexMaxAnisotropy=2
|
||||
r_TexMinAnisotropy=2
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[3]
|
||||
e_TerrainTextureStreamingPoolItemsNum=16
|
||||
r_DynTexAtlasCloudsMaxSize=8
|
||||
r_DynTexAtlasSpritesMaxSize=8
|
||||
r_DynTexMaxSize=20
|
||||
r_EnvCMResolution=0
|
||||
r_EnvTexResolution=1
|
||||
r_ImposterRatio=2
|
||||
r_TexAtlasSize=512
|
||||
r_TexMaxAnisotropy=2
|
||||
r_TexMinAnisotropy=2
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[4]
|
||||
e_TerrainTextureStreamingPoolItemsNum=16
|
||||
r_DynTexAtlasCloudsMaxSize=8
|
||||
r_DynTexAtlasSpritesMaxSize=8
|
||||
r_DynTexMaxSize=20
|
||||
r_EnvCMResolution=0
|
||||
r_EnvTexResolution=1
|
||||
r_ImposterRatio=2
|
||||
r_TexAtlasSize=512
|
||||
r_TexMaxAnisotropy=2
|
||||
r_TexMinAnisotropy=2
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[5]
|
||||
r_DynTexAtlasCloudsMaxSize=24
|
||||
r_DynTexAtlasSpritesMaxSize=16
|
||||
r_DynTexMaxSize=50
|
||||
r_EnvCMResolution=0
|
||||
r_EnvTexResolution=1
|
||||
r_ImposterRatio=2
|
||||
r_TexAtlasSize=512
|
||||
r_TexMaxAnisotropy=2
|
||||
r_TexMinAnisotropy=2
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[6]
|
||||
r_DynTexAtlasCloudsMaxSize=24
|
||||
r_DynTexAtlasSpritesMaxSize=16
|
||||
r_DynTexMaxSize=60
|
||||
r_EnvCMResolution=1
|
||||
r_EnvTexResolution=2
|
||||
r_ImposterRatio=1.5
|
||||
r_TexMaxAnisotropy=8
|
||||
r_TexMinAnisotropy=8
|
||||
r_TexNoAnisoAlphaTest=1
|
||||
|
||||
[8]
|
||||
r_TexMaxAnisotropy=16
|
||||
r_TexMinAnisotropy=16
|
||||
@@ -1,52 +0,0 @@
|
||||
[default]
|
||||
; dummy default for this CVarGroup (will be auto initialized during streaming system init or overridden by user via system.cfg)
|
||||
= 0
|
||||
|
||||
; VRAM 1.0 GB
|
||||
r_TexturesStreaming=1
|
||||
r_TexturesStreamingMipBias=0
|
||||
r_TexturesstreamingMinUsableMips=8
|
||||
r_TexturesStreamingSkipMips=2
|
||||
r_TexturesStreamPoolSize=256
|
||||
|
||||
[1]
|
||||
; VRAM 1.0 GB
|
||||
r_TexturesStreaming=0
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=384
|
||||
|
||||
[2]
|
||||
; VRAM 1.0 GB
|
||||
r_TexturesStreaming=0
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=384
|
||||
|
||||
[3]
|
||||
; VRAM 1.0 GB
|
||||
r_TexturesStreaming=0
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=384
|
||||
|
||||
[4]
|
||||
; VRAM 1.0 GB
|
||||
r_TexturesStreaming=0
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=384
|
||||
|
||||
[5]
|
||||
; VRAM 1.0 GB
|
||||
|
||||
[6]
|
||||
; VRAM 1.5 GB
|
||||
r_TexturesStreamingSkipMips=1
|
||||
r_TexturesStreamPoolSize=512
|
||||
|
||||
[7]
|
||||
; VRAM 2.0 GB
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=640
|
||||
|
||||
[8]
|
||||
; VRAM 3.0 GB
|
||||
r_TexturesStreamingSkipMips=0
|
||||
r_TexturesStreamPoolSize=1536
|
||||
@@ -1,26 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_Clouds=1
|
||||
r_Beams=1
|
||||
|
||||
[1]
|
||||
r_Beams=0
|
||||
|
||||
[2]
|
||||
r_Beams=0
|
||||
|
||||
[3]
|
||||
r_Beams=0
|
||||
|
||||
[4]
|
||||
r_Beams=0
|
||||
|
||||
[5]
|
||||
r_Beams=0
|
||||
|
||||
[6]
|
||||
r_Beams=0
|
||||
|
||||
[8]
|
||||
@@ -1,81 +0,0 @@
|
||||
[default]
|
||||
; default of this CVarGroup
|
||||
= 7
|
||||
|
||||
e_WaterOceanFFT=1
|
||||
e_WaterTessellationAmount=10
|
||||
e_WaterTessellationSwathWidth=10
|
||||
q_ShaderWater=2
|
||||
r_WaterCaustics=1
|
||||
r_WaterReflections=1
|
||||
r_WaterReflectionsQuality=4
|
||||
r_WaterReflectionsMinVisiblePixelsUpdate=0.05
|
||||
r_WaterTessellationHW=0
|
||||
r_WaterUpdateDistance=0.2
|
||||
r_WaterUpdateFactor=0.0
|
||||
r_WaterVolumeCaustics=0
|
||||
r_WaterVolumeCausticsDensity=256
|
||||
r_WaterVolumeCausticsMaxDist=35
|
||||
r_WaterVolumeCausticsRes=1024
|
||||
r_WaterVolumeCausticsSnapFactor=1
|
||||
|
||||
[1]
|
||||
e_WaterTessellationAmount=20
|
||||
q_ShaderWater=1
|
||||
r_WaterReflectionsQuality=0
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.1
|
||||
r_WaterVolumeCausticsDensity=64
|
||||
r_WaterVolumeCausticsMaxDist=20
|
||||
r_WaterVolumeCausticsRes=384
|
||||
|
||||
[2]
|
||||
e_WaterTessellationAmount=20
|
||||
q_ShaderWater=1
|
||||
r_WaterReflectionsQuality=0
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.1
|
||||
r_WaterVolumeCausticsDensity=64
|
||||
r_WaterVolumeCausticsMaxDist=20
|
||||
r_WaterVolumeCausticsRes=384
|
||||
|
||||
[3]
|
||||
e_WaterTessellationAmount=20
|
||||
q_ShaderWater=1
|
||||
r_WaterReflectionsQuality=0
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.05
|
||||
r_WaterVolumeCausticsDensity=64
|
||||
r_WaterVolumeCausticsMaxDist=20
|
||||
r_WaterVolumeCausticsRes=384
|
||||
|
||||
[4]
|
||||
e_WaterTessellationAmount=20
|
||||
q_ShaderWater=1
|
||||
r_WaterReflectionsQuality=4
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.01
|
||||
r_WaterVolumeCausticsDensity=64
|
||||
r_WaterVolumeCausticsMaxDist=20
|
||||
r_WaterVolumeCausticsRes=384
|
||||
|
||||
[5]
|
||||
e_WaterTessellationAmount=20
|
||||
q_ShaderWater=1
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.1
|
||||
r_WaterVolumeCausticsDensity=64
|
||||
r_WaterVolumeCausticsMaxDist=20
|
||||
r_WaterVolumeCausticsRes=384
|
||||
|
||||
[6]
|
||||
r_WaterUpdateDistance=1
|
||||
r_WaterUpdateFactor=0.05
|
||||
r_WaterVolumeCausticsDensity=128
|
||||
r_WaterVolumeCausticsMaxDist=25
|
||||
r_WaterVolumeCausticsRes=512
|
||||
|
||||
[8]
|
||||
e_WaterTessellationAmount=85
|
||||
r_WaterTessellationHW=1
|
||||
r_WaterVolumeCaustics=1
|
||||
@@ -1,4 +1 @@
|
||||
ai_DebugDraw = 1
|
||||
ai_DebugDrawNavigation = 1
|
||||
ai_DrawPath all
|
||||
ai_debugMNMAgentType MediumSizedCharacters
|
||||
@@ -1,7 +1,6 @@
|
||||
; Setup useful cvars for artists profiling GPU cost
|
||||
; Once in level (e.g. map c3mp_rooftop_gardens from the frontend/cmdline), in the console:
|
||||
; exec artprof.cfg
|
||||
; Be sure also to set r_shadersAsyncActivation=0 in your user.cfg (or copy artprof_user.cfg -> user.cfg)
|
||||
|
||||
; used to allow loading of loose shaders
|
||||
sys_pakPriority=0
|
||||
@@ -9,19 +8,8 @@ sys_pakPriority=0
|
||||
; because it's annoying and not relevant for artists
|
||||
sys_pakLogInvalidFileAccess=0
|
||||
|
||||
; disable fog volumes and particles as they can be misleading with r_measureOverdraw 4
|
||||
e_fogVolumes=0
|
||||
e_particles=0
|
||||
|
||||
; for convenience
|
||||
g_infiniteSuitEnergy=1
|
||||
g_infiniteAmmo=1
|
||||
g_timelimit=0
|
||||
|
||||
bind o "r_measureOverdraw 0"
|
||||
bind p "r_measureOverdraw 4"
|
||||
bind k "r_artProfile 0"
|
||||
bind l "r_artProfile 1"
|
||||
|
||||
; loading into an MP level with the map command stops you looking up and down unless you have a weapon
|
||||
i_giveitem scar
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
; disable async shader activation as it crashes when r_shadersAllowCompilation=1
|
||||
r_shadersAsyncActivation=0
|
||||
|
||||
; enable shader compiliation for r_measureOverdraw 4
|
||||
r_shadersAllowCompilation=1
|
||||
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
demo_restart_level = 2
|
||||
g_godMode=1
|
||||
g_infiniteammo=1
|
||||
r_displayinfo=1
|
||||
demo_file = autotest
|
||||
demo_ai = 1
|
||||
demo_num_runs = 4
|
||||
demo_quit = 1
|
||||
hud_startPaused=0
|
||||
sys_maxfps=0
|
||||
e_ObjectLayersActivation=0
|
||||
sys_flash = 0
|
||||
r_vsync = 0
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
demo_restart_level = 1
|
||||
g_godMode = 1
|
||||
g_infiniteammo = 1
|
||||
r_displayinfo = 2
|
||||
demo_file = timedemo_short
|
||||
demo_ai = 0
|
||||
demo_num_runs = 2
|
||||
demo_quit = 1
|
||||
-- hud_startPaused = 0
|
||||
sys_maxfps = -1
|
||||
-- e_ObjectLayersActivation = 0
|
||||
-- sys_flash = 0
|
||||
r_vsync = 0
|
||||
r_vsync = 0
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
r_ColorGradingChartsCache = 0
|
||||
r_waterupdateFactor = 0
|
||||
r_PostProcessHUD3DCache = 0
|
||||
e_gsmcache = 0
|
||||
r_ConditionalRendering = 0
|
||||
e_gicache = 0
|
||||
@@ -1,77 +0,0 @@
|
||||
ag_turnSpeedParamScale=0.0
|
||||
aim_assistFalloffDistance=200
|
||||
aim_assistInputForFullFollow_Ironsight=0.20
|
||||
aim_assistMaxDistance=255
|
||||
aim_assistMaxDistance_ironsight=255
|
||||
aim_assistMinTurnScale=0.5
|
||||
aim_assistMinTurnScale_ironsight=0.5
|
||||
aim_assistSlowDisableDistance=255
|
||||
aim_assistSlowFalloffStartDistance=200
|
||||
aim_assistSlowThresholdOuter=2.5
|
||||
aim_assiststrength=0.7
|
||||
aim_assiststrength_ironsight=0.75
|
||||
br_breakmaxworldsize=511
|
||||
cl_sensitivityControllerMP=0.6
|
||||
cl_shallowWaterSpeedMulPlayer=1.0
|
||||
controller_multiplier_x=3
|
||||
controller_multiplier_z=4
|
||||
g_actorViewDistRatio=255
|
||||
|
||||
-- This forces broken trees to have spherical inertia, which makes them harder to rotate around their vertical axis.
|
||||
g_breakageMinAxisInertia=1.0
|
||||
g_glassAutoShatterMinArea=0.5
|
||||
|
||||
g_distanceForceNoIk=35
|
||||
g_fpDbaManagementEnable=0
|
||||
g_godMode=0
|
||||
g_highlightingMaxDistanceToHighlightSquared=625
|
||||
g_hitDeathReactions_streaming=2
|
||||
g_mp_as_DefendersMaxHealth=150
|
||||
g_multiplayerDefault=1
|
||||
|
||||
-- Overriden in GameSDK\Difficulty\*.cfg
|
||||
g_playerLowHealthThreshold=20
|
||||
g_playerMidHealthThreshold=60
|
||||
|
||||
g_spawn_vistable_numLineTestsPerFrame=3
|
||||
g_telemetryConfig="MP"
|
||||
g_telemetrySampleRateBandwidth=3
|
||||
g_telemetrySampleRateMemory=2
|
||||
g_telemetrySampleRatePerformance=1
|
||||
g_VTOLInsideBoundsScaleX=0.6
|
||||
g_VTOLInsideBoundsScaleY=1
|
||||
net_breakage_sync_entities=0
|
||||
net_enable_tfrc=0
|
||||
net_log=1
|
||||
|
||||
-- Make consoles match the PC gravity
|
||||
p_gravity_z="-13"
|
||||
|
||||
-- Sanity check for physics RepositionEntity
|
||||
p_max_entity_cells=10000
|
||||
|
||||
pl_impulseEnabled=1
|
||||
pl_jump_maxTimerValue=0.0
|
||||
pl_jump_quickPressThresh=0.12
|
||||
pl_melee.angle_limit_from_behind=70
|
||||
pl_melee.impulses_enable=1
|
||||
pl_melee.melee_snap_angle_limit=45
|
||||
pl_melee.melee_snap_end_position_range=1.5
|
||||
pl_melee.melee_snap_move_speed_multiplier=10
|
||||
pl_melee.melee_snap_target_select_range=3.5
|
||||
pl_melee.mp_knockback_strength_hor=2
|
||||
pl_melee.mp_melee_system=1
|
||||
pl_melee.mp_victim_screenfx_blendout_duration=0.25
|
||||
pl_melee.mp_victim_screenfx_duration=0.1
|
||||
pl_nanovision_timetodrain=8
|
||||
pl_nanovision_timetorecharge=16
|
||||
pl_pickAndThrow.chargedThrowAutoAimConeSize=10
|
||||
pl_pickAndThrow.complexMelee_snap_angle_limit=25
|
||||
pl_sliding_control_mp.deceleration_speed=4
|
||||
pl_sliding_control_mp.max_downhill_acceleration=15
|
||||
pl_sliding_control_mp.min_speed=4
|
||||
pl_sliding_control_mp.min_speed_threshold=5
|
||||
pl_stealthKill_aimVsSpineLerp=0.65
|
||||
pl_stealthKill_useExtendedRange=1
|
||||
p_splash_vel0=0.5
|
||||
sv_bandwidth=2147483647
|
||||
@@ -1,29 +0,0 @@
|
||||
e_GI=0
|
||||
r_DeferredShadingIndexedAmbient=0
|
||||
e_ParticlesObjectCollisions=0
|
||||
g_distanceForceNoLegRaycasts=0.00001
|
||||
g_telemetryDisplaySessionId=1
|
||||
g_breakageNoDebrisCollisions=1
|
||||
|
||||
; Breakage throttling
|
||||
; These are explained in ActionGame.cpp
|
||||
;
|
||||
g_glassAutoShatterOnExplosions=1
|
||||
g_glassNoDecals=1
|
||||
g_glassMaxPanesToBreakPerFrame=2
|
||||
g_breakageTreeMax=100
|
||||
g_breakageTreeInc=101
|
||||
g_breakageTreeDec=25
|
||||
g_breakageTreeIncGlass=51
|
||||
|
||||
sys_PakInMemoryPakSizeLimit=25
|
||||
|
||||
r_TexturesStreamPoolSecondarySize=35
|
||||
r_MotionBlur=1
|
||||
|
||||
e_CoverageBufferReproj=2
|
||||
|
||||
osm_enabled = 1
|
||||
|
||||
g_waterHitOnly = 1
|
||||
p_max_object_splashes=1
|
||||
|
||||
@@ -1,63 +1,3 @@
|
||||
-- added this lines for proper 360 deg panorama renderings
|
||||
|
||||
e_ScreenShotFileFormat = jpg
|
||||
demo_fixed_timestep = 60
|
||||
s_SoundEnable = 0
|
||||
r_DisplayInfo = 0
|
||||
e_PanoramaScreenShotHeight = 720
|
||||
e_PanoramaScreenShotWidth = 10053
|
||||
c_shakeMult = 0
|
||||
demo_ai = 1
|
||||
r_MotionBlur = 0
|
||||
|
||||
-- enables full water reflection
|
||||
-- e_DebugMask = 2 -- e_DebugMask not allowed here
|
||||
|
||||
-- set weapong lighting effect to 0 to prevent flickering bug because of too much dynamic lights in the scene
|
||||
|
||||
|
||||
sys_spec = 2
|
||||
r_WaterRefractions = 1
|
||||
r_WaterReflections = 1
|
||||
r_WaterUpdateFactor = 0.01
|
||||
r_WaterReflections_ForceParticles = 0
|
||||
|
||||
r_EnvCMResolution = 2
|
||||
r_EnvTexResolution = 3
|
||||
r_EnvTexUpdateInterval = 0.05
|
||||
e_Decals = 1
|
||||
e_DecalsLifeTimeScale = 2
|
||||
ca_EnableDecals = 1
|
||||
e_LodRatio = 10
|
||||
e_ViewDistRatio = 55
|
||||
e_Lods = 1
|
||||
e_VegetationMinSize = 0
|
||||
r_CloudsUpdateAlways = 0
|
||||
|
||||
e_DynamicLightsMaxEntityLights = 3
|
||||
r_DepthOfField = 1
|
||||
--r_MotionBlur = 1
|
||||
r_Flares = 1
|
||||
r_checkSunVis = 1
|
||||
r_Coronas = 1
|
||||
r_CoronaFade = 0.1625
|
||||
r_UseEdgeAA = 1
|
||||
e_Clouds = 1
|
||||
|
||||
r_TexResolution = 0
|
||||
r_TexBumpResolution = 0
|
||||
r_DetailTextures = 1
|
||||
r_DetailNumLayers = 1
|
||||
r_DetailDistance = 8
|
||||
|
||||
e_ParticlesLod = 0.9
|
||||
|
||||
r_ShadowBlur = 3
|
||||
e_ShadowsMaxTexRes = 1024
|
||||
r_ShadowJittering = 1
|
||||
e_Shadows = 1
|
||||
e_VegetationBending = 1
|
||||
ai_UpdateAllAlways = 1
|
||||
r_refraction = 1
|
||||
r_sunshafts = 1
|
||||
r_ImposterRatio = 1
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
ai_CompatibilityMode=crysis2
|
||||
ai_BurstWhileMovingDestinationRange=9999.0
|
||||
|
||||
g_telemetryConfig=SP
|
||||
|
||||
net_inactivitytimeout=3600
|
||||
net_inactivitytimeoutDevmode=3600
|
||||
|
||||
pl_movement.nonCombat_heavy_weapon_speed_scale=1.0
|
||||
|
||||
-- BLM - Don't override game rules. The template project only has DummyRules.
|
||||
-- Furthermore, multiplayer.cfg doesn't set sv_gamerules, so the inconsistency
|
||||
-- is likely to create bugs.
|
||||
--sv_gamerules=SinglePlayer
|
||||
ca_StreamCHR=1
|
||||
@@ -1,24 +0,0 @@
|
||||
r_UseZPass = 1
|
||||
r_GeomInstancing = 1
|
||||
|
||||
e_Fog = 1
|
||||
e_Clouds = 1
|
||||
e_Decals = 1
|
||||
e_TerrainDetailMaterials = 1
|
||||
e_Dissolve = 1
|
||||
e_TerrainAo = 1
|
||||
|
||||
r_WaterReflections = 1
|
||||
|
||||
e_Shadows = 1
|
||||
e_VegetationBending = 1
|
||||
|
||||
r_PostProcessEffects = 1
|
||||
r_Flares = 1
|
||||
r_Beams = 1
|
||||
r_Glow = 1
|
||||
|
||||
r_DetailTextures = 1
|
||||
|
||||
r_refraction = 1
|
||||
r_sunshafts = 1
|
||||
@@ -1,24 +0,0 @@
|
||||
r_UseZPass = 0
|
||||
r_GeomInstancing = 0
|
||||
|
||||
e_Fog = 0
|
||||
e_Clouds = 0
|
||||
e_Decals = 0
|
||||
e_TerrainDetailMaterials = 0
|
||||
e_Dissolve = 0
|
||||
e_TerrainAo = 0
|
||||
|
||||
r_WaterReflections = 0
|
||||
|
||||
e_Shadows = 0
|
||||
e_VegetationBending = 0
|
||||
|
||||
r_PostProcessEffects = 0
|
||||
r_Flares = 0
|
||||
r_Beams = 0
|
||||
r_Glow = 0
|
||||
|
||||
r_DetailTextures = 0
|
||||
|
||||
r_refraction = 0
|
||||
r_sunshafts = 0
|
||||
@@ -1,76 +1,8 @@
|
||||
sys_spec_Full=2
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Disable gmem for this device because it causes a crash
|
||||
r_EnableGMEMPath=0
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
-- This allows the generation of reflections for the ocean water. Without it, the water looks really dark.
|
||||
e_recursion=1
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
e_ViewDistRatioVegetation=21
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_HDRBloom=0
|
||||
r_SunShafts=0
|
||||
r_ToneMapTechnique=3
|
||||
r_ToneMapExposureType=1
|
||||
r_ColorSpace=2
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
------------------------
|
||||
-- sys_spec_textureresolution
|
||||
------------------------
|
||||
r_TexturesstreamingMinUsableMips=7
|
||||
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,65 +1,7 @@
|
||||
sys_spec_Full=3
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Enable framebufferfetch(256bpp) or pls if applicable
|
||||
r_EnableGMEMPath=2
|
||||
|
||||
-- Skip the native upscale as a second upscale already occurs
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
r_ClearGMEMGBuffer=1
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,61 +1,8 @@
|
||||
sys_spec_Full=3
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Disabling gmem for this configuration
|
||||
r_EnableGMEMPath=0
|
||||
|
||||
-- Skip the native upscale as a second upscale already occurs
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
|
||||
|
||||
@@ -1,76 +1,7 @@
|
||||
sys_spec_Full=1
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Enable framebufferfetch(256bpp) or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale already occurs
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
-- This allows the generation of reflections for the ocean water. Without it, the water looks really dark.
|
||||
e_recursion=0
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
|
||||
-- Water occlusion queries crash in some OpenGL ES 3.0 devices
|
||||
e_HwOcclusionCullingWater = 0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_textureresolution
|
||||
------------------------
|
||||
r_TexturesstreamingMinUsableMips=6
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
r_ClearGMEMGBuffer=1
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,81 +1,7 @@
|
||||
sys_spec_Full=2
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Enable framebufferfetch(256bpp) or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale already occurs
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
-- This allows the generation of reflections for the ocean water. Without it, the water looks really dark.
|
||||
e_recursion=1
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
e_ViewDistRatioVegetation=21
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_HDRBloom=0
|
||||
r_SunShafts=0
|
||||
r_ToneMapExposureType=1
|
||||
r_ColorSpace=2
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
------------------------
|
||||
-- sys_spec_textureresolution
|
||||
------------------------
|
||||
r_TexturesstreamingMinUsableMips=7
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
r_ClearGMEMGBuffer=1
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,60 +1,5 @@
|
||||
sys_spec_Full=4
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=0
|
||||
|
||||
-- Enable framebufferfetch(256bpp) or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale already occurs
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
sys_job_system_max_worker=2
|
||||
sys_streaming_in_blocks=1
|
||||
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
e_CheckOcclusion=1
|
||||
|
||||
r_Fur=0
|
||||
az_Asset_EnableAsyncMeshLoading=0
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=33554432
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_objectdetail
|
||||
------------------------
|
||||
e_Dissolve=2
|
||||
e_LodRatio=5
|
||||
e_ViewDistRatioDetail=19
|
||||
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_VisAreaClipLightsPerPixel=0
|
||||
|
||||
r_ClearGMEMGBuffer=1
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,100 +1,10 @@
|
||||
sys_spec_Full=3
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=1
|
||||
|
||||
-- Enable framebufferfetch or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
|
||||
------------------------
|
||||
-- Job System
|
||||
------------------------
|
||||
sys_job_system_enable=0
|
||||
sys_job_system_max_worker=1
|
||||
|
||||
------------------------
|
||||
-- Streaming
|
||||
------------------------
|
||||
sys_streaming_in_blocks=1
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
------------------------
|
||||
-- General Rendering
|
||||
------------------------
|
||||
r_Flush=0
|
||||
-- Enabling this will clear the GMEM buffer before the z-pass
|
||||
r_ClearGMEMGBuffer=2
|
||||
r_Fur=0
|
||||
|
||||
------------------------
|
||||
-- VisArea / Portals
|
||||
------------------------
|
||||
e_PortalsBlend=0
|
||||
r_GMEMVisAreasBlendWeight=0.5
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_AutoPrecacheCgf=2
|
||||
e_AutoPrecacheTerrainAndProcVeget=1
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=2048
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=32
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_water
|
||||
------------------------
|
||||
e_WaterOcean=2
|
||||
e_WaterVolumes=2
|
||||
e_WaterOceanBottom=0
|
||||
|
||||
------------------------
|
||||
-- batching
|
||||
------------------------
|
||||
r_Batching = 1
|
||||
r_BatchType = 0
|
||||
|
||||
------------------------
|
||||
-- geom instancing
|
||||
------------------------
|
||||
r_GeomInstancing=1
|
||||
r_GeomInstancingThreshold=5
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
------------------------
|
||||
-- Geometry Cache
|
||||
------------------------
|
||||
e_GeomCaches=0
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,103 +1,10 @@
|
||||
sys_spec_Full=1
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=1
|
||||
|
||||
-- Enable framebufferfetch or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
|
||||
------------------------
|
||||
-- Job System
|
||||
------------------------
|
||||
sys_job_system_enable=0
|
||||
sys_job_system_max_worker=1
|
||||
|
||||
------------------------
|
||||
-- Streaming
|
||||
------------------------
|
||||
sys_streaming_in_blocks=1
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
------------------------
|
||||
-- General Rendering
|
||||
------------------------
|
||||
r_Flush=0
|
||||
-- Enabling this will clear the GMEM buffer before the z-pass
|
||||
r_ClearGMEMGBuffer=2
|
||||
r_Fur=0
|
||||
|
||||
------------------------
|
||||
-- VisArea / Portals
|
||||
------------------------
|
||||
e_PortalsBlend=0
|
||||
r_GMEMVisAreasBlendWeight=0.5
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_AutoPrecacheCgf=2
|
||||
e_AutoPrecacheTerrainAndProcVeget=1
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=32
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_water
|
||||
------------------------
|
||||
e_WaterOcean=2
|
||||
e_WaterVolumes=2
|
||||
e_WaterOceanBottom=0
|
||||
|
||||
|
||||
------------------------
|
||||
-- batching
|
||||
------------------------
|
||||
r_Batching = 1
|
||||
r_BatchType = 0
|
||||
|
||||
------------------------
|
||||
-- geom instancing
|
||||
------------------------
|
||||
r_GeomInstancing=1
|
||||
r_GeomInstancingThreshold=5
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
------------------------
|
||||
-- Geometry Cache
|
||||
------------------------
|
||||
e_GeomCaches=0
|
||||
|
||||
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,101 +1,10 @@
|
||||
sys_spec_Full=2
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=1
|
||||
|
||||
-- Enable framebufferfetch or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
|
||||
------------------------
|
||||
-- Job System
|
||||
------------------------
|
||||
sys_job_system_enable=0
|
||||
sys_job_system_max_worker=1
|
||||
|
||||
------------------------
|
||||
-- Streaming
|
||||
------------------------
|
||||
sys_streaming_in_blocks=1
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
------------------------
|
||||
-- General Rendering
|
||||
------------------------
|
||||
r_Flush=0
|
||||
-- Enabling this will clear the GMEM buffer before the z-pass
|
||||
r_ClearGMEMGBuffer=2
|
||||
r_Fur=0
|
||||
|
||||
------------------------
|
||||
-- VisArea / Portals
|
||||
------------------------
|
||||
e_PortalsBlend=0
|
||||
r_GMEMVisAreasBlendWeight=0.5
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_AutoPrecacheCgf=2
|
||||
e_AutoPrecacheTerrainAndProcVeget=1
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=1024
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=32
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_water
|
||||
------------------------
|
||||
e_WaterOcean=2
|
||||
e_WaterVolumes=2
|
||||
e_WaterOceanBottom=0
|
||||
|
||||
|
||||
------------------------
|
||||
-- batching
|
||||
------------------------
|
||||
r_Batching = 1
|
||||
r_BatchType = 0
|
||||
|
||||
------------------------
|
||||
-- geom instancing
|
||||
------------------------
|
||||
r_GeomInstancing=1
|
||||
r_GeomInstancingThreshold=5
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
------------------------
|
||||
-- Geometry Cache
|
||||
------------------------
|
||||
e_GeomCaches=0
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,102 +1,10 @@
|
||||
sys_spec_Full=4
|
||||
|
||||
-- Cap frame rate at 30fps
|
||||
sys_maxfps=30
|
||||
r_vsync=1
|
||||
|
||||
-- Enable framebufferfetch or pls if applicable
|
||||
r_EnableGMEMPath=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
|
||||
------------------------
|
||||
-- Job System
|
||||
------------------------
|
||||
sys_job_system_enable=0
|
||||
sys_job_system_max_worker=1
|
||||
|
||||
------------------------
|
||||
-- Streaming
|
||||
------------------------
|
||||
sys_streaming_in_blocks=1
|
||||
sys_streaming_memory_budget=512
|
||||
|
||||
------------------------
|
||||
-- General Rendering
|
||||
------------------------
|
||||
r_Flush=0
|
||||
-- Enabling this will clear the GMEM buffer before the z-pass
|
||||
r_ClearGMEMGBuffer=2
|
||||
r_Fur=0
|
||||
|
||||
------------------------
|
||||
-- VisArea / Portals
|
||||
------------------------
|
||||
e_PortalsBlend=0
|
||||
r_GMEMVisAreasBlendWeight=0.5
|
||||
|
||||
------------------------
|
||||
-- Misc. memory buffers
|
||||
------------------------
|
||||
e_AutoPrecacheCgf=2
|
||||
e_AutoPrecacheTerrainAndProcVeget=1
|
||||
e_GeomCacheBufferSize=0
|
||||
e_CheckOcclusionQueueSize=512
|
||||
e_CheckOcclusionOutputQueueSize=2048
|
||||
|
||||
------------------------
|
||||
-- Animation
|
||||
------------------------
|
||||
ca_MemoryDefragPoolSize=32
|
||||
ca_StreamCHR=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_water
|
||||
------------------------
|
||||
e_WaterOcean=2
|
||||
e_WaterVolumes=2
|
||||
e_WaterOceanBottom=0
|
||||
|
||||
|
||||
------------------------
|
||||
-- batching
|
||||
------------------------
|
||||
r_Batching = 1
|
||||
r_BatchType = 0
|
||||
|
||||
------------------------
|
||||
-- geom instancing
|
||||
------------------------
|
||||
r_GeomInstancing=1
|
||||
r_GeomInstancingThreshold=5
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
------------------------
|
||||
-- Geometry Cache
|
||||
------------------------
|
||||
e_GeomCaches=0
|
||||
|
||||
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
|
||||
-- Sort ligths since we have limited space in the shadowmap pool texture
|
||||
r_DeferredShadingSortLights = 3
|
||||
|
||||
--Use an optimized pixel format for the lighting rendertargets during the lighting pass.
|
||||
r_DeferredShadingLBuffersFmt = 2
|
||||
@@ -1,38 +0,0 @@
|
||||
|
||||
sys_spec_Full=7
|
||||
r_ShadersMETAL=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_SunShafts=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_DeferredShadingTiled=0
|
||||
r_RefractionPartialResolves=0
|
||||
e_GI = 0
|
||||
|
||||
|
||||
r_Fur=2
|
||||
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
sys_spec_Full=5
|
||||
r_ShadersMETAL=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_SunShafts=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_DeferredShadingTiled=0
|
||||
r_RefractionPartialResolves=0
|
||||
e_GI=0
|
||||
|
||||
r_Fur=2
|
||||
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
sys_spec_Full=6
|
||||
r_ShadersMETAL=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_SunShafts=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_DeferredShadingTiled=0
|
||||
r_RefractionPartialResolves=0
|
||||
e_GI = 0
|
||||
|
||||
r_Fur=2
|
||||
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
sys_spec_Full=8
|
||||
r_ShadersMETAL=1
|
||||
|
||||
-- Default of 3 allocates all shaders (potentially >150 MB)
|
||||
-- 1 is most memory efficient but definitely causes hitches when converting HLSL
|
||||
-- shaders. Recommend 1 during dev, and 3 with optimized caches for release.
|
||||
r_ShadersPreactivate=1
|
||||
|
||||
-- Skip the native upscale as a second upscale occurs on Metal Present
|
||||
r_SkipNativeUpscale=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_postprocessing
|
||||
------------------------
|
||||
r_SunShafts=1
|
||||
|
||||
------------------------
|
||||
-- sys_spec_shading
|
||||
------------------------
|
||||
r_DeferredShadingTiled=0
|
||||
r_RefractionPartialResolves=0
|
||||
e_GI = 0
|
||||
|
||||
r_Fur=2
|
||||
|
||||
|
||||
------------------------
|
||||
-- Upscaling
|
||||
------------------------
|
||||
--0 point, 1 bilinear, 2 bicubic, 3 lanczos
|
||||
r_UpscalingQuality=1
|
||||
|
||||
-- Due to performance issues with incremental cached shadow map updates, enable this to prevent us from culling every object in the world vs each cached shadow map each frame.
|
||||
-- If no objects are present in the level this will eliminate the need to clear the massive cached textures each frame.
|
||||
-- Set to 2 to allow distance-based updates along with script-based updates for the cached shadow maps
|
||||
e_ShadowsCacheRequireManualUpdate = 2
|
||||
@@ -1 +0,0 @@
|
||||
sys_spec_Full = 7
|
||||
@@ -1 +0,0 @@
|
||||
sys_spec_Full = 5
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
sys_spec_Full = 6
|
||||
@@ -1 +0,0 @@
|
||||
sys_spec_Full = 8
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
profile=-1
|
||||
profile_allthreads=1
|
||||
i_forcefeedback=0
|
||||
g_godmode=1
|
||||
log_verbosity=-1
|
||||
sys_pakLogInvalidFileAccess=1
|
||||
e_StatoscopeDataGroups=fgmrtudlipny
|
||||
e_StatoscopeFilenameUseBuildInfo=0
|
||||
e_StatoscopeFilenameUseMap=1
|
||||
e_StatoscopeMinFuncLengthMs=0.1
|
||||
e_StatoscopeMaxNumFuncsPerFrame=60
|
||||
e_StatoscopeScreenshotCapturePeriod=5
|
||||
|
||||
@@ -3,39 +3,13 @@
|
||||
-----------------------------------------------
|
||||
r_width = 960
|
||||
r_height = 1080
|
||||
r_backbufferWidth = 1920
|
||||
r_backbufferHeight = 1080
|
||||
|
||||
|
||||
-------------------------------------------
|
||||
-- Set the system Spec (Medium)
|
||||
-------------------------------------------
|
||||
sys_spec = 2
|
||||
|
||||
|
||||
-------------------------------------------
|
||||
-- HMD related
|
||||
-------------------------------------------
|
||||
r_overrideDXGIoutput = 0
|
||||
r_stereodevice = 100
|
||||
r_stereomode = 1
|
||||
r_stereooutput = 7
|
||||
r_minimizeLatency = 1
|
||||
hmd_low_persistence = 1
|
||||
r_stereoScaleCoefficient = 1
|
||||
|
||||
|
||||
-------------------------------------------
|
||||
-- Set some video optimisations
|
||||
-------------------------------------------
|
||||
r_vsync = 0
|
||||
r_MotionBlur = 0
|
||||
r_ssdoHalfRes = 3
|
||||
r_Refraction = 0
|
||||
r_DeferredShadingTiled = 0
|
||||
r_CBufferUseNativeDepth = 0
|
||||
|
||||
-------------------------------------------
|
||||
-- Hide the hud
|
||||
-------------------------------------------
|
||||
--hud_hide = 1
|
||||
|
||||
@@ -48,22 +48,6 @@
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/perfhud_pc.xml" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{6C3531BB-4A37-515B-86F6-4FC3A9ABEF9F}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/sketch_off.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{EA424FC8-20C9-51D3-A4DD-08DA8B7F7FB3}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/sketch_on.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{34B60E74-28FA-57C4-9A2E-77515A083AC5}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
@@ -432,110 +416,6 @@
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_full.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{8A877B20-8B7D-5F61-93C9-FD02CB856165}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_gameeffects.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{5D7C3B35-E171-5A4B-8C36-1D22B3F7636F}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_objectdetail.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{8EAED4CA-6E4B-5F11-94E9-F4FB39E966C4}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_particles.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{437E9B76-BFC3-57AB-9993-9C249EEAEF97}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_physics.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{35B8614B-F080-5BE4-AD78-23F24E104C72}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_postprocessing.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{9CC310DD-0D00-555D-99A7-D339DF0E2A73}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_quality.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{2BD0EFEF-9DA5-5F48-B579-C500CA0D42AB}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_shading.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{979A2D8D-79B9-57E8-9250-A981538FA893}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_shadows.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{90964883-E22A-5D57-86FC-86571AD213BE}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_sound.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{89BEF8A4-AA05-5339-B4DE-C475541FD532}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_texture.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{15CBF6A7-1107-55A9-A173-2F7AD1329589}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_textureresolution.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{4CD3711E-09EE-5F91-8688-FB523F350C43}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_volumetriceffects.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{F316DFFF-ABA2-5145-A637-2BBA2C86E7A0}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/cvargroups/sys_spec_water.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{FD38C182-1AFC-514C-99E5-BB1AB60C4A31}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
@@ -616,38 +496,6 @@
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/spec/ios_veryhigh.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{B9622C57-85C2-5C68-AFB8-35AA0D65FEC7}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/spec/osx_metal_high.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{E79532D9-BE8F-5969-B672-A2E8030578B9}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/spec/osx_metal_low.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{4B05219C-0D19-5A04-B029-8417CE06A243}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/spec/osx_metal_medium.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{C0F09A4E-A77A-5FFF-B1ED-DDB37DED623C}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="unsigned int" field="subId" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="platformFlags" value="255" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="AZStd::string" field="pathHint" value="config/spec/osx_metal_veryhigh.cfg" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
<Class name="SeedInfo" field="element" version="2" type="{FACC3682-2ACA-4AA4-B85A-07AD276D18A0}">
|
||||
<Class name="AssetId" field="assetId" version="1" type="{652ED536-3402-439B-AEBE-4A5DBC554085}">
|
||||
<Class name="AZ::Uuid" field="guid" value="{B632E8B1-884A-5A65-BC01-D85F0FED1266}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
|
||||
@@ -54,6 +54,30 @@ def get_mesh_node_names(sceneGraph):
|
||||
|
||||
return meshDataList, paths
|
||||
|
||||
def add_material_component(entity_id):
|
||||
# Create an override AZ::Render::EditorMaterialComponent
|
||||
editor_material_component = azlmbr.entity.EntityUtilityBus(
|
||||
azlmbr.bus.Broadcast,
|
||||
"GetOrAddComponentByTypeName",
|
||||
entity_id,
|
||||
"EditorMaterialComponent")
|
||||
|
||||
# this fills out the material asset to a known product AZMaterial asset relative path
|
||||
json_update = json.dumps({
|
||||
"Controller": { "Configuration": { "materials": [
|
||||
{
|
||||
"Key": {},
|
||||
"Value": { "MaterialAsset":{
|
||||
"assetHint": "materials/basic_grey.azmaterial"
|
||||
}}
|
||||
}]
|
||||
}}
|
||||
});
|
||||
result = azlmbr.entity.EntityUtilityBus(azlmbr.bus.Broadcast, "UpdateComponentForEntity", entity_id, editor_material_component, json_update)
|
||||
|
||||
if not result:
|
||||
raise RuntimeError("UpdateComponentForEntity for editor_material_component failed")
|
||||
|
||||
def update_manifest(scene):
|
||||
import json
|
||||
import uuid, os
|
||||
@@ -74,6 +98,8 @@ def update_manifest(scene):
|
||||
source_filename_only = os.path.basename(clean_filename)
|
||||
|
||||
created_entities = []
|
||||
previous_entity_id = azlmbr.entity.InvalidEntityId
|
||||
first_mesh = True
|
||||
|
||||
# Loop every mesh node in the scene
|
||||
for activeMeshIndex in range(len(mesh_name_list)):
|
||||
@@ -102,14 +128,38 @@ def update_manifest(scene):
|
||||
# The MeshGroup we created will be output as a product in the asset's path named mesh_group_name.azmodel
|
||||
# The assetHint will be converted to an AssetId later during prefab loading
|
||||
json_update = json.dumps({
|
||||
"Controller": { "Configuration": { "ModelAsset": {
|
||||
"assetHint": os.path.join(source_relative_path, mesh_group_name) + ".azmodel" }}}
|
||||
});
|
||||
"Controller": { "Configuration": { "ModelAsset": {
|
||||
"assetHint": os.path.join(source_relative_path, mesh_group_name) + ".azmodel" }}}
|
||||
});
|
||||
# Apply the JSON above to the component we created
|
||||
result = azlmbr.entity.EntityUtilityBus(azlmbr.bus.Broadcast, "UpdateComponentForEntity", entity_id, editor_mesh_component, json_update)
|
||||
|
||||
if not result:
|
||||
raise RuntimeError("UpdateComponentForEntity failed")
|
||||
raise RuntimeError("UpdateComponentForEntity failed for Mesh component")
|
||||
|
||||
# an example of adding a material component to override the default material
|
||||
if previous_entity_id is not None and first_mesh:
|
||||
first_mesh = False
|
||||
add_material_component(entity_id)
|
||||
|
||||
# Get the transform component
|
||||
transform_component = azlmbr.entity.EntityUtilityBus(azlmbr.bus.Broadcast, "GetOrAddComponentByTypeName", entity_id, "27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0")
|
||||
|
||||
# Set this entity to be a child of the last entity we created
|
||||
# This is just an example of how to do parenting and isn't necessarily useful to parent everything like this
|
||||
if previous_entity_id is not None:
|
||||
transform_json = json.dumps({
|
||||
"Parent Entity" : previous_entity_id.to_json()
|
||||
});
|
||||
|
||||
# Apply the JSON update
|
||||
result = azlmbr.entity.EntityUtilityBus(azlmbr.bus.Broadcast, "UpdateComponentForEntity", entity_id, transform_component, transform_json)
|
||||
|
||||
if not result:
|
||||
raise RuntimeError("UpdateComponentForEntity failed for Transform component")
|
||||
|
||||
# Update the last entity id for next time
|
||||
previous_entity_id = entity_id
|
||||
|
||||
# Keep track of the entity we set up, we'll add them all to the prefab we're creating later
|
||||
created_entities.append(entity_id)
|
||||
@@ -147,6 +197,8 @@ def on_update_manifest(args):
|
||||
except RuntimeError as err:
|
||||
print (f'ERROR - {err}')
|
||||
log_exception_traceback()
|
||||
except:
|
||||
log_exception_traceback()
|
||||
|
||||
global sceneJobHandler
|
||||
sceneJobHandler = None
|
||||
|
||||
@@ -54,4 +54,5 @@ set(ENABLED_GEMS
|
||||
AWSMetrics
|
||||
PrefabBuilder
|
||||
AudioSystem
|
||||
Profiler
|
||||
)
|
||||
|
||||
+2
-3
@@ -204,7 +204,7 @@ namespace PythonCoverage
|
||||
return coveringModuleOutputNames;
|
||||
}
|
||||
|
||||
void PythonCoverageEditorSystemComponent::OnStartExecuteByFilenameAsTest(AZStd::string_view filename, AZStd::string_view testCase, [[maybe_unused]] const AZStd::vector<AZStd::string_view>& args)
|
||||
void PythonCoverageEditorSystemComponent::OnStartExecuteByFilenameAsTest([[maybe_unused]]AZStd::string_view filename, AZStd::string_view testCase, [[maybe_unused]] const AZStd::vector<AZStd::string_view>& args)
|
||||
{
|
||||
if (m_coverageState == CoverageState::Disabled)
|
||||
{
|
||||
@@ -226,8 +226,7 @@ namespace PythonCoverage
|
||||
return;
|
||||
}
|
||||
|
||||
const AZStd::string scriptName = AZ::IO::Path(filename).Stem().Native();
|
||||
const auto coverageFile = m_coverageDir / AZStd::string::format("%s.pycoverage", scriptName.c_str());
|
||||
const auto coverageFile = m_coverageDir / AZStd::string::format("%.*s.pycoverage", AZ_STRING_ARG(testCase));
|
||||
|
||||
// If this is a different python script we clear the existing entity components and start afresh
|
||||
if (m_coverageFile != coverageFile)
|
||||
|
||||
@@ -8,11 +8,14 @@
|
||||
## Deploy CDK Applications
|
||||
1. Go to the AWS IAM console and create an IAM role called o3de-automation-tests which adds your own account as as a trusted entity and uses the "AdministratorAccess" permissions policy.
|
||||
2. Copy {engine_root}\scripts\build\Platform\Windows\deploy_cdk_applications.cmd to your engine root folder.
|
||||
3. Open a new Command Prompt window at the engine root and set the following environment variables:
|
||||
3. Open a new Command Prompt window at the engine root and set the following environment variables:
|
||||
```
|
||||
Set O3DE_AWS_PROJECT_NAME=AWSAUTO
|
||||
Set O3DE_AWS_DEPLOY_REGION=us-east-1
|
||||
Set O3DE_AWS_DEPLOY_ACCOUNT={your_aws_account_id}
|
||||
Set ASSUME_ROLE_ARN=arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests
|
||||
Set COMMIT_ID=HEAD
|
||||
```
|
||||
4. In the same Command Prompt window, Deploy the CDK applications for AWS gems by running deploy_cdk_applications.cmd.
|
||||
|
||||
## Run Automation Tests
|
||||
|
||||
@@ -23,20 +23,20 @@ TEST_DIRECTORY = os.path.join(os.path.dirname(__file__), "tests")
|
||||
class TestAtomEditorComponentsMain(object):
|
||||
"""Holds tests for Atom components."""
|
||||
|
||||
@pytest.mark.test_case_id("C32078118") # Decal
|
||||
@pytest.mark.test_case_id("C32078119") # DepthOfField
|
||||
@pytest.mark.test_case_id("C32078120") # Directional Light
|
||||
@pytest.mark.test_case_id("C32078121") # Exposure Control
|
||||
@pytest.mark.test_case_id("C32078115") # Global Skylight (IBL)
|
||||
@pytest.mark.test_case_id("C32078125") # Physical Sky
|
||||
@pytest.mark.test_case_id("C32078127") # PostFX Layer
|
||||
@pytest.mark.test_case_id("C32078131") # PostFX Radius Weight Modifier
|
||||
@pytest.mark.test_case_id("C32078117") # Light
|
||||
@pytest.mark.test_case_id("C36525660") # Display Mapper
|
||||
def test_AtomEditorComponents_AddedToEntity(self, request, editor, level, workspace, project, launcher_platform):
|
||||
"""
|
||||
Please review the hydra script run by this test for more specific test info.
|
||||
Tests the following Atom components and verifies all "expected_lines" appear in Editor.log:
|
||||
1. Display Mapper
|
||||
2. Light
|
||||
3. PostFX Radius Weight Modifier
|
||||
4. PostFX Layer
|
||||
5. Physical Sky
|
||||
6. Global Skylight (IBL)
|
||||
7. Exposure Control
|
||||
8. Directional Light
|
||||
9. DepthOfField
|
||||
10. Decal
|
||||
Tests the Atom components & verifies all "expected_lines" appear in Editor.log
|
||||
"""
|
||||
cfg_args = [level]
|
||||
|
||||
@@ -69,6 +69,18 @@ class TestAtomEditorComponentsMain(object):
|
||||
"DepthOfField_test: Entity deleted: True",
|
||||
"DepthOfField_test: UNDO entity deletion works: True",
|
||||
"DepthOfField_test: REDO entity deletion works: True",
|
||||
# Directional Light Component
|
||||
"Directional Light Entity successfully created",
|
||||
"Directional Light_test: Component added to the entity: True",
|
||||
"Directional Light_test: Component removed after UNDO: True",
|
||||
"Directional Light_test: Component added after REDO: True",
|
||||
"Directional Light_test: Entered game mode: True",
|
||||
"Directional Light_test: Exit game mode: True",
|
||||
"Directional Light_test: Entity is hidden: True",
|
||||
"Directional Light_test: Entity is shown: True",
|
||||
"Directional Light_test: Entity deleted: True",
|
||||
"Directional Light_test: UNDO entity deletion works: True",
|
||||
"Directional Light_test: REDO entity deletion works: True",
|
||||
# Exposure Control Component
|
||||
"Exposure Control Entity successfully created",
|
||||
"Exposure Control_test: Component added to the entity: True",
|
||||
@@ -180,6 +192,7 @@ class TestAtomEditorComponentsMain(object):
|
||||
cfg_args=cfg_args,
|
||||
)
|
||||
|
||||
@pytest.mark.test_case_id("C34525095")
|
||||
def test_AtomEditorComponents_LightComponent(
|
||||
self, request, editor, workspace, project, launcher_platform, level):
|
||||
"""
|
||||
@@ -240,64 +253,3 @@ class TestAtomEditorComponentsMain(object):
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_generic'])
|
||||
@pytest.mark.system
|
||||
class TestMaterialEditorBasicTests(object):
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_teardown(self, request, workspace, project):
|
||||
def delete_files():
|
||||
file_system.delete(
|
||||
[
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material.material"),
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material_1.material"),
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material_2.material"),
|
||||
],
|
||||
True,
|
||||
True,
|
||||
)
|
||||
# Cleanup our newly created materials
|
||||
delete_files()
|
||||
|
||||
def teardown():
|
||||
# Cleanup our newly created materials
|
||||
delete_files()
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
|
||||
@pytest.mark.parametrize("exe_file_name", ["MaterialEditor"])
|
||||
def test_MaterialEditorBasicTests(
|
||||
self, request, workspace, project, launcher_platform, generic_launcher, exe_file_name):
|
||||
|
||||
expected_lines = [
|
||||
"Material opened: True",
|
||||
"Test asset doesn't exist initially: True",
|
||||
"New asset created: True",
|
||||
"New Material opened: True",
|
||||
"Material closed: True",
|
||||
"All documents closed: True",
|
||||
"Close All Except Selected worked as expected: True",
|
||||
"Actual Document saved with changes: True",
|
||||
"Document saved as copy is saved with changes: True",
|
||||
"Document saved as child is saved with changes: True",
|
||||
"Save All worked as expected: True",
|
||||
]
|
||||
unexpected_lines = [
|
||||
# "Trace::Assert",
|
||||
# "Trace::Error",
|
||||
"Traceback (most recent call last):"
|
||||
]
|
||||
|
||||
hydra.launch_and_validate_results(
|
||||
request,
|
||||
TEST_DIRECTORY,
|
||||
generic_launcher,
|
||||
"hydra_AtomMaterialEditor_BasicTests.py",
|
||||
run_python="--runpython",
|
||||
timeout=120,
|
||||
expected_lines=expected_lines,
|
||||
unexpected_lines=unexpected_lines,
|
||||
halt_on_unexpected=True,
|
||||
null_renderer=True,
|
||||
log_file_name="MaterialEditor.log",
|
||||
)
|
||||
|
||||
@@ -73,6 +73,7 @@ def create_screenshots_archive(screenshot_path):
|
||||
class TestAllComponentsIndepthTests(object):
|
||||
|
||||
@pytest.mark.parametrize("screenshot_name", ["AtomBasicLevelSetup.ppm"])
|
||||
@pytest.mark.test_case_id("C34603773")
|
||||
def test_BasicLevelSetup_SetsUpLevel(
|
||||
self, request, editor, workspace, project, launcher_platform, level, screenshot_name):
|
||||
"""
|
||||
@@ -88,7 +89,7 @@ class TestAllComponentsIndepthTests(object):
|
||||
|
||||
level_creation_expected_lines = [
|
||||
"Viewport is set to the expected size: True",
|
||||
"Basic level created"
|
||||
"Exited game mode"
|
||||
]
|
||||
unexpected_lines = [
|
||||
"Trace::Assert",
|
||||
@@ -115,6 +116,7 @@ class TestAllComponentsIndepthTests(object):
|
||||
|
||||
create_screenshots_archive(screenshot_directory)
|
||||
|
||||
@pytest.mark.test_case_id("C34525095")
|
||||
def test_LightComponent_ScreenshotMatchesGoldenImage(
|
||||
self, request, editor, workspace, project, launcher_platform, level):
|
||||
"""
|
||||
@@ -146,7 +148,7 @@ class TestAllComponentsIndepthTests(object):
|
||||
golden_image_path = os.path.join(golden_images_directory(), golden_image)
|
||||
golden_images.append(golden_image_path)
|
||||
|
||||
expected_lines = ["Light component tests completed."]
|
||||
expected_lines = ["spot_light Controller|Configuration|Shadows|Shadowmap size: SUCCESS"]
|
||||
unexpected_lines = [
|
||||
"Trace::Assert",
|
||||
"Trace::Error",
|
||||
@@ -187,8 +189,8 @@ class TestPerformanceBenchmarkSuite(object):
|
||||
"Benchmark metadata captured.",
|
||||
"Pass timestamps captured.",
|
||||
"CPU frame time captured.",
|
||||
"Capturing complete.",
|
||||
"Captured data successfully."
|
||||
"Captured data successfully.",
|
||||
"Exited game mode"
|
||||
]
|
||||
|
||||
unexpected_lines = [
|
||||
@@ -225,6 +227,8 @@ class TestMaterialEditor(object):
|
||||
pytest.param("-rhi=Vulkan", ["Registering vulkan RHI"])
|
||||
])
|
||||
@pytest.mark.parametrize("exe_file_name", ["MaterialEditor"])
|
||||
@pytest.mark.test_case_id("C30973986") # Material Editor Launching in Dx12
|
||||
@pytest.mark.test_case_id("C30973987") # Material Editor Launching in Vulkan
|
||||
def test_MaterialEditorLaunch_AllRHIOptionsSucceed(
|
||||
self, request, workspace, project, launcher_platform, generic_launcher, exe_file_name, cfg_args,
|
||||
expected_lines):
|
||||
|
||||
@@ -23,6 +23,7 @@ class TestAutomation(EditorTestSuite):
|
||||
# Remove -autotest_mode from global_extra_cmdline_args since we need rendering for these tests.
|
||||
global_extra_cmdline_args = ["-BatchMode"] # Default is ["-BatchMode", "-autotest_mode"]
|
||||
|
||||
@pytest.mark.test_case_id("C34603773")
|
||||
class AtomGPU_BasicLevelSetup_SetsUpLevel(EditorSharedTest):
|
||||
use_null_renderer = False # Default is True
|
||||
screenshot_name = "AtomBasicLevelSetup.ppm"
|
||||
|
||||
@@ -67,5 +67,13 @@ class TestAutomation(EditorTestSuite):
|
||||
class AtomEditorComponents_PostFXLayerAdded(EditorSharedTest):
|
||||
from Atom.tests import hydra_AtomEditorComponents_PostFXLayerAdded as test_module
|
||||
|
||||
@pytest.mark.test_case_id("C36525665")
|
||||
class AtomEditorComponents_PostFXShapeWeightModifierAdded(EditorSharedTest):
|
||||
from Atom.tests import hydra_AtomEditorComponents_PostFxShapeWeightModifierAdded as test_module
|
||||
|
||||
@pytest.mark.test_case_id("C36525664")
|
||||
class AtomEditorComponents_PostFXGradientWeightModifierAdded(EditorSharedTest):
|
||||
from Atom.tests import hydra_AtomEditorComponents_PostFXGradientWeightModifierAdded as test_module
|
||||
|
||||
class ShaderAssetBuilder_RecompilesShaderAsChainOfDependenciesChanges(EditorSharedTest):
|
||||
from Atom.tests import hydra_ShaderAssetBuilder_RecompilesShaderAsChainOfDependenciesChanges as test_module
|
||||
|
||||
@@ -14,10 +14,6 @@ import editor_python_test_tools.hydra_test_utils as hydra
|
||||
logger = logging.getLogger(__name__)
|
||||
TEST_DIRECTORY = os.path.join(os.path.dirname(__file__), "tests")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||
@pytest.mark.parametrize("level", ["auto_test"])
|
||||
class TestAtomEditorComponentsSandbox(object):
|
||||
|
||||
# It requires at least one test
|
||||
@@ -30,6 +26,7 @@ class TestAtomEditorComponentsSandbox(object):
|
||||
class TestAtomEditorComponentsMain(object):
|
||||
"""Holds tests for Atom components."""
|
||||
|
||||
@pytest.mark.test_case_id("C32078128")
|
||||
def test_AtomEditorComponents_ReflectionProbeAddedToEntity(
|
||||
self, request, editor, level, workspace, project, launcher_platform):
|
||||
"""
|
||||
@@ -69,3 +66,75 @@ class TestAtomEditorComponentsSandbox(object):
|
||||
null_renderer=True,
|
||||
cfg_args=cfg_args,
|
||||
)
|
||||
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_generic'])
|
||||
@pytest.mark.system
|
||||
class TestMaterialEditorBasicTests(object):
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_teardown(self, request, workspace, project):
|
||||
def delete_files():
|
||||
file_system.delete(
|
||||
[
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material.material"),
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material_1.material"),
|
||||
os.path.join(workspace.paths.project(), "Materials", "test_material_2.material"),
|
||||
],
|
||||
True,
|
||||
True,
|
||||
)
|
||||
# Cleanup our newly created materials
|
||||
delete_files()
|
||||
|
||||
def teardown():
|
||||
# Cleanup our newly created materials
|
||||
delete_files()
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
|
||||
@pytest.mark.parametrize("exe_file_name", ["MaterialEditor"])
|
||||
@pytest.mark.test_case_id("C34448113") # Creating a New Asset.
|
||||
@pytest.mark.test_case_id("C34448114") # Opening an Existing Asset.
|
||||
@pytest.mark.test_case_id("C34448115") # Closing Selected Material.
|
||||
@pytest.mark.test_case_id("C34448116") # Closing All Materials.
|
||||
@pytest.mark.test_case_id("C34448117") # Closing all but Selected Material.
|
||||
@pytest.mark.test_case_id("C34448118") # Saving Material.
|
||||
@pytest.mark.test_case_id("C34448119") # Saving as a New Material.
|
||||
@pytest.mark.test_case_id("C34448120") # Saving as a Child Material.
|
||||
@pytest.mark.test_case_id("C34448121") # Saving all Open Materials.
|
||||
def test_MaterialEditorBasicTests(
|
||||
self, request, workspace, project, launcher_platform, generic_launcher, exe_file_name):
|
||||
|
||||
expected_lines = [
|
||||
"Material opened: True",
|
||||
"Test asset doesn't exist initially: True",
|
||||
"New asset created: True",
|
||||
"New Material opened: True",
|
||||
"Material closed: True",
|
||||
"All documents closed: True",
|
||||
"Close All Except Selected worked as expected: True",
|
||||
"Actual Document saved with changes: True",
|
||||
"Document saved as copy is saved with changes: True",
|
||||
"Document saved as child is saved with changes: True",
|
||||
"Save All worked as expected: True",
|
||||
]
|
||||
unexpected_lines = [
|
||||
# "Trace::Assert",
|
||||
# "Trace::Error",
|
||||
"Traceback (most recent call last):"
|
||||
]
|
||||
|
||||
hydra.launch_and_validate_results(
|
||||
request,
|
||||
TEST_DIRECTORY,
|
||||
generic_launcher,
|
||||
"hydra_AtomMaterialEditor_BasicTests.py",
|
||||
run_python="--runpython",
|
||||
timeout=120,
|
||||
expected_lines=expected_lines,
|
||||
unexpected_lines=unexpected_lines,
|
||||
halt_on_unexpected=True,
|
||||
null_renderer=True,
|
||||
log_file_name="MaterialEditor.log",
|
||||
)
|
||||
|
||||
|
||||
@@ -113,7 +113,6 @@ def create_basic_atom_level(level_name):
|
||||
general.close_pane("Error Log")
|
||||
general.idle_wait(1.0)
|
||||
general.run_console("r_displayInfo=0")
|
||||
general.run_console("r_antialiasingmode=0")
|
||||
general.idle_wait(1.0)
|
||||
|
||||
# Delete all existing entities & create default_level entity
|
||||
|
||||
@@ -17,3 +17,392 @@ LIGHT_TYPES = {
|
||||
'simple_point': 6,
|
||||
'simple_spot': 7,
|
||||
}
|
||||
|
||||
|
||||
class AtomComponentProperties:
|
||||
"""
|
||||
Holds Atom component related constants
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def actor(property: str = 'name') -> str:
|
||||
"""
|
||||
Actor component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Actor',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def bloom(property: str = 'name') -> str:
|
||||
"""
|
||||
Bloom component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Bloom',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def camera(property: str = 'name') -> str:
|
||||
"""
|
||||
Camera component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Camera',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def decal(property: str = 'name') -> str:
|
||||
"""
|
||||
Decal component properties.
|
||||
- 'Material' the material Asset.id of the decal.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Decal',
|
||||
'Material': 'Controller|Configuration|Material',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def deferred_fog(property: str = 'name') -> str:
|
||||
"""
|
||||
Deferred Fog component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Deferred Fog',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def depth_of_field(property: str = 'name') -> str:
|
||||
"""
|
||||
Depth of Field component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
- 'Camera Entity' an EditorEntity.id reference to the Camera component required for this effect.
|
||||
Must be a different entity than the one which hosts Depth of Field component.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'DepthOfField',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
'Camera Entity': 'Controller|Configuration|Camera Entity',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def diffuse_probe(property: str = 'name') -> str:
|
||||
"""
|
||||
Diffuse Probe Grid component properties. Requires one of 'shapes'.
|
||||
- 'shapes' a list of supported shapes as component names.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Diffuse Probe Grid',
|
||||
'shapes': ['Axis Aligned Box Shape', 'Box Shape']
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def directional_light(property: str = 'name') -> str:
|
||||
"""
|
||||
Directional Light component properties.
|
||||
- 'Camera' an EditorEntity.id reference to the Camera component that controls cascaded shadow view frustum.
|
||||
Must be a different entity than the one which hosts Directional Light component.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Directional Light',
|
||||
'Camera': 'Controller|Configuration|Shadow|Camera',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def display_mapper(property: str = 'name') -> str:
|
||||
"""
|
||||
Display Mapper component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Display Mapper',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def entity_reference(property: str = 'name') -> str:
|
||||
"""
|
||||
Entity Reference component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Entity Reference',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def exposure_control(property: str = 'name') -> str:
|
||||
"""
|
||||
Exposure Control component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Exposure Control',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def global_skylight(property: str = 'name') -> str:
|
||||
"""
|
||||
Global Skylight (IBL) component properties.
|
||||
- 'Diffuse Image' Asset.id for the cubemap image for determining diffuse lighting.
|
||||
- 'Specular Image' Asset.id for the cubemap image for determining specular lighting.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Global Skylight (IBL)',
|
||||
'Diffuse Image': 'Controller|Configuration|Diffuse Image',
|
||||
'Specular Image': 'Controller|Configuration|Specular Image',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def grid(property: str = 'name') -> str:
|
||||
"""
|
||||
Grid component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Grid',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def hdr_color_grading(property: str = 'name') -> str:
|
||||
"""
|
||||
HDR Color Grading component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'HDR Color Grading',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def hdri_skybox(property: str = 'name') -> str:
|
||||
"""
|
||||
HDRi Skybox component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'HDRi Skybox',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def light(property: str = 'name') -> str:
|
||||
"""
|
||||
Light component properties.
|
||||
- 'Light type' from atom_constants.py LIGHT_TYPES
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Light',
|
||||
'Light type': 'Controller|Configuration|Light type',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def look_modification(property: str = 'name') -> str:
|
||||
"""
|
||||
Look Modification component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Look Modification',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def material(property: str = 'name') -> str:
|
||||
"""
|
||||
Material component properties. Requires one of Actor OR Mesh component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Only one of these is required at a time for this component.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Material',
|
||||
'requires': [AtomComponentProperties.actor(), AtomComponentProperties.mesh()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def mesh(property: str = 'name') -> str:
|
||||
"""
|
||||
Mesh component properties.
|
||||
- 'Mesh Asset' Asset.id of the mesh model.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
:rtype: str
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Mesh',
|
||||
'Mesh Asset': 'Controller|Configuration|Mesh Asset',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def occlusion_culling_plane(property: str = 'name') -> str:
|
||||
"""
|
||||
Occlusion Culling Plane component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Occlusion Culling Plane',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def physical_sky(property: str = 'name') -> str:
|
||||
"""
|
||||
Physical Sky component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Physical Sky',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def postfx_layer(property: str = 'name') -> str:
|
||||
"""
|
||||
PostFX Layer component properties.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'PostFX Layer',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def postfx_gradient(property: str = 'name') -> str:
|
||||
"""
|
||||
PostFX Gradient Weight Modifier component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'PostFX Gradient Weight Modifier',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def postfx_radius(property: str = 'name') -> str:
|
||||
"""
|
||||
PostFX Radius Weight Modifier component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'PostFX Radius Weight Modifier',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def postfx_shape(property: str = 'name') -> str:
|
||||
"""
|
||||
PostFX Shape Weight Modifier component properties. Requires PostFX Layer and one of 'shapes' listed.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
- 'shapes' a list of supported shapes as component names. 'Tube Shape' is also supported but requires 'Spline'.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'PostFX Shape Weight Modifier',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
'shapes': ['Axis Aligned Box Shape', 'Box Shape', 'Capsule Shape', 'Compound Shape', 'Cylinder Shape',
|
||||
'Disk Shape', 'Polygon Prism Shape', 'Quad Shape', 'Sphere Shape', 'Vegetation Reference Shape'],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def reflection_probe(property: str = 'name') -> str:
|
||||
"""
|
||||
Reflection Probe component properties. Requires one of 'shapes' listed.
|
||||
- 'shapes' a list of supported shapes as component names.
|
||||
- 'Baked Cubemap Path' Asset.id of the baked cubemap image generated by a call to 'BakeReflectionProbe' ebus.
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'Reflection Probe',
|
||||
'shapes': ['Axis Aligned Box Shape', 'Box Shape'],
|
||||
'Baked Cubemap Path': 'Cubemap|Baked Cubemap Path',
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
@staticmethod
|
||||
def ssao(property: str = 'name') -> str:
|
||||
"""
|
||||
SSAO component properties. Requires PostFX Layer component.
|
||||
- 'requires' a list of component names as strings required by this component.
|
||||
Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
|
||||
:param property: From the last element of the property tree path. Default 'name' for component name string.
|
||||
:return: Full property path OR component name if no property specified.
|
||||
"""
|
||||
properties = {
|
||||
'name': 'SSAO',
|
||||
'requires': [AtomComponentProperties.postfx_layer()],
|
||||
}
|
||||
return properties[property]
|
||||
|
||||
+12
-13
@@ -80,25 +80,25 @@ def AtomEditorComponents_Mesh_AddedToEntity():
|
||||
|
||||
from editor_python_test_tools.asset_utils import Asset
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report, Tracer, TestHelper as helper
|
||||
from editor_python_test_tools.utils import Report, Tracer, TestHelper
|
||||
from Atom.atom_utils.atom_constants import AtomComponentProperties as Atom
|
||||
|
||||
with Tracer() as error_tracer:
|
||||
# Test setup begins.
|
||||
# Setup: Wait for Editor idle loop before executing Python hydra scripts then open "Base" level.
|
||||
helper.init_idle()
|
||||
helper.open_level("", "Base")
|
||||
TestHelper.init_idle()
|
||||
TestHelper.open_level("", "Base")
|
||||
|
||||
# Test steps begin.
|
||||
# 1. Create a Mesh entity with no components.
|
||||
mesh_name = "Mesh"
|
||||
mesh_entity = EditorEntity.create_editor_entity(mesh_name)
|
||||
mesh_entity = EditorEntity.create_editor_entity(Atom.mesh())
|
||||
Report.critical_result(Tests.mesh_entity_creation, mesh_entity.exists())
|
||||
|
||||
# 2. Add a Mesh component to Mesh entity.
|
||||
mesh_component = mesh_entity.add_component(mesh_name)
|
||||
mesh_component = mesh_entity.add_component(Atom.mesh())
|
||||
Report.critical_result(
|
||||
Tests.mesh_component_added,
|
||||
mesh_entity.has_component(mesh_name))
|
||||
mesh_entity.has_component(Atom.mesh()))
|
||||
|
||||
# 3. UNDO the entity creation and component addition.
|
||||
# -> UNDO component addition.
|
||||
@@ -125,17 +125,16 @@ def AtomEditorComponents_Mesh_AddedToEntity():
|
||||
Report.result(Tests.creation_redo, mesh_entity.exists())
|
||||
|
||||
# 5. Set Mesh component asset property
|
||||
mesh_property_asset = 'Controller|Configuration|Mesh Asset'
|
||||
model_path = os.path.join('Objects', 'shaderball', 'shaderball_default_1m.azmodel')
|
||||
model = Asset.find_asset_by_path(model_path)
|
||||
mesh_component.set_component_property_value(mesh_property_asset, model.id)
|
||||
mesh_component.set_component_property_value(Atom.mesh('Mesh Asset'), model.id)
|
||||
Report.result(Tests.mesh_asset_specified,
|
||||
mesh_component.get_component_property_value(mesh_property_asset) == model.id)
|
||||
mesh_component.get_component_property_value(Atom.mesh('Mesh Asset')) == model.id)
|
||||
|
||||
# 6. Enter/Exit game mode.
|
||||
helper.enter_game_mode(Tests.enter_game_mode)
|
||||
TestHelper.enter_game_mode(Tests.enter_game_mode)
|
||||
general.idle_wait_frames(1)
|
||||
helper.exit_game_mode(Tests.exit_game_mode)
|
||||
TestHelper.exit_game_mode(Tests.exit_game_mode)
|
||||
|
||||
# 7. Test IsHidden.
|
||||
mesh_entity.set_visibility_state(False)
|
||||
@@ -159,7 +158,7 @@ def AtomEditorComponents_Mesh_AddedToEntity():
|
||||
Report.result(Tests.deletion_redo, not mesh_entity.exists())
|
||||
|
||||
# 12. Look for errors or asserts.
|
||||
helper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
|
||||
TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
|
||||
for error_info in error_tracer.errors:
|
||||
Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
|
||||
for assert_info in error_tracer.asserts:
|
||||
|
||||
+179
@@ -0,0 +1,179 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
class Tests:
|
||||
creation_undo = (
|
||||
"UNDO Entity creation success",
|
||||
"UNDO Entity creation failed")
|
||||
creation_redo = (
|
||||
"REDO Entity creation success",
|
||||
"REDO Entity creation failed")
|
||||
postfx_gradient_weight_creation = (
|
||||
"PostFX Gradient Weight Modifier Entity successfully created",
|
||||
"PostFX Gradient Weight Modifier Entity failed to be created")
|
||||
postfx_gradient_weight_component = (
|
||||
"Entity has a PostFX Gradient Weight Modifier component",
|
||||
"Entity failed to find PostFX Gradient Weight Modifier component")
|
||||
postfx_gradient_weight_disabled = (
|
||||
"PostFX Gradient Weight Modifier component disabled",
|
||||
"PostFX Gradient Weight Modifier component was not disabled.")
|
||||
postfx_layer_component = (
|
||||
"Entity has a PostFX Layer component",
|
||||
"Entity did not have an PostFX Layer component")
|
||||
postfx_gradient_weight_enabled = (
|
||||
"PostFX Gradient Weight Modifier component enabled",
|
||||
"PostFX Gradient Weight Modifier component was not enabled.")
|
||||
enter_game_mode = (
|
||||
"Entered game mode",
|
||||
"Failed to enter game mode")
|
||||
exit_game_mode = (
|
||||
"Exited game mode",
|
||||
"Couldn't exit game mode")
|
||||
is_visible = (
|
||||
"Entity is visible",
|
||||
"Entity was not visible")
|
||||
is_hidden = (
|
||||
"Entity is hidden",
|
||||
"Entity was not hidden")
|
||||
entity_deleted = (
|
||||
"Entity deleted",
|
||||
"Entity was not deleted")
|
||||
deletion_undo = (
|
||||
"UNDO deletion success",
|
||||
"UNDO deletion failed")
|
||||
deletion_redo = (
|
||||
"REDO deletion success",
|
||||
"REDO deletion failed")
|
||||
|
||||
|
||||
def AtomEditorComponents_PostFXGradientWeightModifier_AddedToEntity():
|
||||
"""
|
||||
Summary:
|
||||
Tests the PostFX Gradient Weight Modifier component can be added to an entity and has the expected functionality.
|
||||
|
||||
Test setup:
|
||||
- Wait for Editor idle loop.
|
||||
- Open the "Base" level.
|
||||
|
||||
Expected Behavior:
|
||||
The component can be added, used in game mode, hidden/shown, deleted, and has accurate required components.
|
||||
Creation and deletion undo/redo should also work.
|
||||
|
||||
Test Steps:
|
||||
1) Create a PostFX Gradient Weight Modifier entity with no components.
|
||||
2) Add a PostFX Gradient Weight Modifier component to PostFX Gradient Weight Modifier entity.
|
||||
3) UNDO the entity creation and component addition.
|
||||
4) REDO the entity creation and component addition.
|
||||
5) Verify PostFX Gradient Weight Modifier component not enabled.
|
||||
6) Add PostFX Layer component since it is required by the PostFX Gradient Weight Modifier component.
|
||||
7) Verify PostFX Gradient Weight Modifier component is enabled.
|
||||
8) Enter/Exit game mode.
|
||||
9) Test IsHidden.
|
||||
10) Test IsVisible.
|
||||
11) Delete PostFX Gradient Weight Modifier entity.
|
||||
12) UNDO deletion.
|
||||
13) REDO deletion.
|
||||
14) Look for errors.
|
||||
|
||||
:return: None
|
||||
"""
|
||||
|
||||
import azlmbr.legacy.general as general
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report, Tracer, TestHelper
|
||||
|
||||
with Tracer() as error_tracer:
|
||||
# Test setup begins.
|
||||
# Setup: Wait for Editor idle loop before executing Python hydra scripts then open "Base" level.
|
||||
TestHelper.init_idle()
|
||||
TestHelper.open_level("", "Base")
|
||||
|
||||
# Test steps begin.
|
||||
# 1. Create a PostFX Gradient Weight Modifier entity with no components.
|
||||
postfx_gradient_weight_name = "PostFX Gradient Weight Modifier"
|
||||
postfx_gradient_weight_entity = EditorEntity.create_editor_entity(postfx_gradient_weight_name)
|
||||
Report.critical_result(Tests.postfx_gradient_weight_creation, postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 2. Add a PostFX Gradient Weight Modifier component to PostFX Gradient Weight Modifier entity.
|
||||
postfx_gradient_weight_component = postfx_gradient_weight_entity.add_component(postfx_gradient_weight_name)
|
||||
Report.critical_result(
|
||||
Tests.postfx_gradient_weight_component,
|
||||
postfx_gradient_weight_entity.has_component(postfx_gradient_weight_name))
|
||||
|
||||
# 3. UNDO the entity creation and component addition.
|
||||
# -> UNDO component addition.
|
||||
general.undo()
|
||||
# -> UNDO naming entity.
|
||||
general.undo()
|
||||
# -> UNDO selecting entity.
|
||||
general.undo()
|
||||
# -> UNDO entity creation.
|
||||
general.undo()
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.creation_undo, not postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 4. REDO the entity creation and component addition.
|
||||
# -> REDO entity creation.
|
||||
general.redo()
|
||||
# -> REDO selecting entity.
|
||||
general.redo()
|
||||
# -> REDO naming entity.
|
||||
general.redo()
|
||||
# -> REDO component addition.
|
||||
general.redo()
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.creation_redo, postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 5. Verify PostFX Gradient Weight Modifier component not enabled.
|
||||
Report.result(Tests.postfx_gradient_weight_disabled, not postfx_gradient_weight_component.is_enabled())
|
||||
|
||||
# 6. Add PostFX Layer component since it is required by the PostFX Gradient Weight Modifier component.
|
||||
postfx_layer_name = "PostFX Layer"
|
||||
postfx_gradient_weight_entity.add_component(postfx_layer_name)
|
||||
Report.result(Tests.postfx_layer_component, postfx_gradient_weight_entity.has_component(postfx_layer_name))
|
||||
|
||||
# 7. Verify PostFX Gradient Weight Modifier component is enabled.
|
||||
Report.result(Tests.postfx_gradient_weight_enabled, postfx_gradient_weight_component.is_enabled())
|
||||
|
||||
# 8. Enter/Exit game mode.
|
||||
TestHelper.enter_game_mode(Tests.enter_game_mode)
|
||||
general.idle_wait_frames(1)
|
||||
TestHelper.exit_game_mode(Tests.exit_game_mode)
|
||||
|
||||
# 9. Test IsHidden.
|
||||
postfx_gradient_weight_entity.set_visibility_state(False)
|
||||
Report.result(Tests.is_hidden, postfx_gradient_weight_entity.is_hidden() is True)
|
||||
|
||||
# 10. Test IsVisible.
|
||||
postfx_gradient_weight_entity.set_visibility_state(True)
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.is_visible, postfx_gradient_weight_entity.is_visible() is True)
|
||||
|
||||
# 11. Delete PostFX Gradient Weight Modifier entity.
|
||||
postfx_gradient_weight_entity.delete()
|
||||
Report.result(Tests.entity_deleted, not postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 12. UNDO deletion.
|
||||
general.undo()
|
||||
Report.result(Tests.deletion_undo, postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 13. REDO deletion.
|
||||
general.redo()
|
||||
Report.result(Tests.deletion_redo, not postfx_gradient_weight_entity.exists())
|
||||
|
||||
# 14. Look for errors or asserts.
|
||||
TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
|
||||
for error_info in error_tracer.errors:
|
||||
Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
|
||||
for assert_info in error_tracer.asserts:
|
||||
Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(AtomEditorComponents_PostFXGradientWeightModifier_AddedToEntity)
|
||||
+207
@@ -0,0 +1,207 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
class Tests:
|
||||
creation_undo = (
|
||||
"UNDO Entity creation success",
|
||||
"UNDO Entity creation failed")
|
||||
creation_redo = (
|
||||
"REDO Entity creation success",
|
||||
"REDO Entity creation failed")
|
||||
postfx_shape_weight_creation = (
|
||||
"PostFx Shape Weight Modifier Entity successfully created",
|
||||
"PostFx Shape Weight Modifier Entity failed to be created")
|
||||
postfx_shape_weight_component = (
|
||||
"Entity has a PostFx Shape Weight Modifier component",
|
||||
"Entity failed to find PostFx Shape Weight Modifier component")
|
||||
postfx_shape_weight_disabled = (
|
||||
"PostFx Shape Weight Modifier component disabled",
|
||||
"PostFx Shape Weight Modifier component was not disabled.")
|
||||
postfx_layer_component = (
|
||||
"Entity has a PostFX Layer component",
|
||||
"Entity did not have an PostFX Layer component")
|
||||
tube_shape_component = (
|
||||
"Entity has a Tube Shape component",
|
||||
"Entity did not have a Tube Shape component")
|
||||
postfx_shape_weight_enabled = (
|
||||
"PostFx Shape Weight Modifier component enabled",
|
||||
"PostFx Shape Weight Modifier component was not enabled.")
|
||||
enter_game_mode = (
|
||||
"Entered game mode",
|
||||
"Failed to enter game mode")
|
||||
exit_game_mode = (
|
||||
"Exited game mode",
|
||||
"Couldn't exit game mode")
|
||||
is_visible = (
|
||||
"Entity is visible",
|
||||
"Entity was not visible")
|
||||
is_hidden = (
|
||||
"Entity is hidden",
|
||||
"Entity was not hidden")
|
||||
entity_deleted = (
|
||||
"Entity deleted",
|
||||
"Entity was not deleted")
|
||||
deletion_undo = (
|
||||
"UNDO deletion success",
|
||||
"UNDO deletion failed")
|
||||
deletion_redo = (
|
||||
"REDO deletion success",
|
||||
"REDO deletion failed")
|
||||
|
||||
|
||||
def AtomEditorComponents_postfx_shape_weight_AddedToEntity():
|
||||
"""
|
||||
Summary:
|
||||
Tests the PostFx Shape Weight Modifier component can be added to an entity and has the expected functionality.
|
||||
|
||||
Test setup:
|
||||
- Wait for Editor idle loop.
|
||||
- Open the "Base" level.
|
||||
|
||||
Expected Behavior:
|
||||
The component can be added, used in game mode, hidden/shown, deleted, and has accurate required components.
|
||||
Creation and deletion undo/redo should also work.
|
||||
|
||||
Test Steps:
|
||||
1) Create a PostFx Shape Weight Modifier entity with no components.
|
||||
2) Add a PostFx Shape Weight Modifier component to PostFx Shape Weight Modifier entity.
|
||||
3) UNDO the entity creation and component addition.
|
||||
4) REDO the entity creation and component addition.
|
||||
5) Verify PostFx Shape Weight Modifier component not enabled.
|
||||
6) Add PostFX Layer component since it is required by the PostFx Shape Weight Modifier component.
|
||||
7) Verify PostFx Shape Weight Modifier component is NOT enabled since it also requires a shape.
|
||||
8) Add a required shape looping over a list and checking if it enables PostFX Shape Weight Modifier.
|
||||
9) Undo to remove each added shape and verify PostFX Shape Weight Modifier is not enabled.
|
||||
10) Verify PostFx Shape Weight Modifier component is enabled by adding Spline and Tube Shape component.
|
||||
11) Enter/Exit game mode.
|
||||
12) Test IsHidden.
|
||||
13) Test IsVisible.
|
||||
14) Delete PostFx Shape Weight Modifier entity.
|
||||
15) UNDO deletion.
|
||||
16) REDO deletion.
|
||||
17) Look for errors.
|
||||
|
||||
:return: None
|
||||
"""
|
||||
|
||||
import azlmbr.legacy.general as general
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report, Tracer, TestHelper
|
||||
|
||||
with Tracer() as error_tracer:
|
||||
# Test setup begins.
|
||||
# Setup: Wait for Editor idle loop before executing Python hydra scripts then open "Base" level.
|
||||
TestHelper.init_idle()
|
||||
TestHelper.open_level("", "Base")
|
||||
|
||||
# Test steps begin.
|
||||
# 1. Create a PostFx Shape Weight Modifier entity with no components.
|
||||
postfx_shape_weight_name = "PostFX Shape Weight Modifier"
|
||||
postfx_shape_weight_entity = EditorEntity.create_editor_entity(postfx_shape_weight_name)
|
||||
Report.critical_result(Tests.postfx_shape_weight_creation, postfx_shape_weight_entity.exists())
|
||||
|
||||
# 2. Add a PostFx Shape Weight Modifier component to PostFx Shape Weight Modifier entity.
|
||||
postfx_shape_weight_component = postfx_shape_weight_entity.add_component(postfx_shape_weight_name)
|
||||
Report.critical_result(
|
||||
Tests.postfx_shape_weight_component,
|
||||
postfx_shape_weight_entity.has_component(postfx_shape_weight_name))
|
||||
|
||||
# 3. UNDO the entity creation and component addition.
|
||||
# -> UNDO component addition.
|
||||
general.undo()
|
||||
# -> UNDO naming entity.
|
||||
general.undo()
|
||||
# -> UNDO selecting entity.
|
||||
general.undo()
|
||||
# -> UNDO entity creation.
|
||||
general.undo()
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.creation_undo, not postfx_shape_weight_entity.exists())
|
||||
|
||||
# 4. REDO the entity creation and component addition.
|
||||
# -> REDO entity creation.
|
||||
general.redo()
|
||||
# -> REDO selecting entity.
|
||||
general.redo()
|
||||
# -> REDO naming entity.
|
||||
general.redo()
|
||||
# -> REDO component addition.
|
||||
general.redo()
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.creation_redo, postfx_shape_weight_entity.exists())
|
||||
|
||||
# 5. Verify PostFx Shape Weight Modifier component not enabled.
|
||||
Report.result(Tests.postfx_shape_weight_disabled, not postfx_shape_weight_component.is_enabled())
|
||||
|
||||
# 6. Add PostFX Layer component since it is required by the PostFx Shape Weight Modifier component.
|
||||
postfx_layer_name = "PostFX Layer"
|
||||
postfx_shape_weight_entity.add_component(postfx_layer_name)
|
||||
Report.result(Tests.postfx_layer_component, postfx_shape_weight_entity.has_component(postfx_layer_name))
|
||||
|
||||
# 7. Verify PostFx Shape Weight Modifier component is NOT enabled since it also requires a shape.
|
||||
Report.result(Tests.postfx_shape_weight_disabled, not postfx_shape_weight_component.is_enabled())
|
||||
|
||||
# 8. Add a required shape looping over a list and checking if it enables PostFX Shape Weight Modifier.
|
||||
for shape in ['Axis Aligned Box Shape', 'Box Shape', 'Capsule Shape', 'Compound Shape', 'Cylinder Shape',
|
||||
'Disk Shape', 'Polygon Prism Shape', 'Quad Shape', 'Sphere Shape', 'Vegetation Reference Shape']:
|
||||
postfx_shape_weight_entity.add_component(shape)
|
||||
test_shape = (
|
||||
f"Entity has a {shape} component",
|
||||
f"Entity did not have a {shape} component")
|
||||
Report.result(test_shape, postfx_shape_weight_entity.has_component(shape))
|
||||
|
||||
# Check if required shape allows PostFX Shape Weight Modifier to be enabled
|
||||
Report.result(Tests.postfx_shape_weight_enabled, postfx_shape_weight_component.is_enabled())
|
||||
|
||||
# 9. Undo to remove each added shape and verify PostFX Shape Weight Modifier is not enabled.
|
||||
general.undo()
|
||||
TestHelper.wait_for_condition(lambda: not postfx_shape_weight_entity.has_component(shape), 1.0)
|
||||
Report.result(Tests.postfx_shape_weight_disabled, not postfx_shape_weight_component.is_enabled())
|
||||
|
||||
# 10. Verify PostFx Shape Weight Modifier component is enabled by adding Spline and Tube Shape component.
|
||||
postfx_shape_weight_entity.add_components(['Spline', 'Tube Shape'])
|
||||
Report.result(Tests.tube_shape_component, postfx_shape_weight_entity.has_component('Tube Shape'))
|
||||
Report.result(Tests.postfx_shape_weight_enabled, postfx_shape_weight_component.is_enabled())
|
||||
|
||||
# 11. Enter/Exit game mode.
|
||||
TestHelper.enter_game_mode(Tests.enter_game_mode)
|
||||
general.idle_wait_frames(1)
|
||||
TestHelper.exit_game_mode(Tests.exit_game_mode)
|
||||
|
||||
# 12. Test IsHidden.
|
||||
postfx_shape_weight_entity.set_visibility_state(False)
|
||||
Report.result(Tests.is_hidden, postfx_shape_weight_entity.is_hidden() is True)
|
||||
|
||||
# 13. Test IsVisible.
|
||||
postfx_shape_weight_entity.set_visibility_state(True)
|
||||
general.idle_wait_frames(1)
|
||||
Report.result(Tests.is_visible, postfx_shape_weight_entity.is_visible() is True)
|
||||
|
||||
# 14. Delete PostFx Shape Weight Modifier entity.
|
||||
postfx_shape_weight_entity.delete()
|
||||
Report.result(Tests.entity_deleted, not postfx_shape_weight_entity.exists())
|
||||
|
||||
# 15. UNDO deletion.
|
||||
general.undo()
|
||||
Report.result(Tests.deletion_undo, postfx_shape_weight_entity.exists())
|
||||
|
||||
# 16. REDO deletion.
|
||||
general.redo()
|
||||
Report.result(Tests.deletion_redo, not postfx_shape_weight_entity.exists())
|
||||
|
||||
# 17. Look for errors or asserts.
|
||||
TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
|
||||
for error_info in error_tracer.errors:
|
||||
Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
|
||||
for assert_info in error_tracer.asserts:
|
||||
Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(AtomEditorComponents_postfx_shape_weight_AddedToEntity)
|
||||
-2
@@ -66,7 +66,6 @@ def run():
|
||||
general.close_pane("Error Log")
|
||||
general.idle_wait(1.0)
|
||||
general.run_console("r_displayInfo=0")
|
||||
general.run_console("r_antialiasingmode=0")
|
||||
general.idle_wait(1.0)
|
||||
|
||||
return True
|
||||
@@ -91,7 +90,6 @@ def run():
|
||||
benchmarker.capture_cpu_frame_time(i)
|
||||
general.exit_game_mode()
|
||||
helper.wait_for_condition(function=lambda: not general.is_in_game_mode(), timeout_in_seconds=2.0)
|
||||
general.log("Capturing complete.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -82,7 +82,6 @@ def run():
|
||||
general.close_pane("Error Log")
|
||||
general.idle_wait(1.0)
|
||||
general.run_console("r_displayInfo=0")
|
||||
general.run_console("r_antialiasingmode=0")
|
||||
general.idle_wait(1.0)
|
||||
|
||||
return True
|
||||
@@ -216,7 +215,6 @@ def run():
|
||||
ScreenshotHelper(general.idle_wait_frames).capture_screenshot_blocking(f"{'AtomBasicLevelSetup'}.ppm")
|
||||
general.exit_game_mode()
|
||||
helper.wait_for_condition(function=lambda: not general.is_in_game_mode(), timeout_in_seconds=2.0)
|
||||
general.log("Basic level created")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -33,7 +33,7 @@ add_subdirectory(WhiteBox)
|
||||
add_subdirectory(NvCloth)
|
||||
|
||||
## Prefab ##
|
||||
add_subdirectory(prefab)
|
||||
add_subdirectory(Prefab)
|
||||
|
||||
## Editor Python Bindings ##
|
||||
add_subdirectory(EditorPythonBindings)
|
||||
@@ -58,3 +58,6 @@ add_subdirectory(smoke)
|
||||
|
||||
## AWS ##
|
||||
add_subdirectory(AWS)
|
||||
|
||||
## Integration tests for editor testing framework ##
|
||||
add_subdirectory(editor_test_testing)
|
||||
|
||||
+26
-6
@@ -122,17 +122,32 @@ class EditorEntity:
|
||||
|
||||
# Creation functions
|
||||
@classmethod
|
||||
def find_editor_entity(cls, entity_name: str) -> EditorEntity:
|
||||
def find_editor_entity(cls, entity_name: str, must_be_unique : bool = False) -> EditorEntity:
|
||||
"""
|
||||
Given Entity name, outputs entity object
|
||||
:param entity_name: Name of entity to find
|
||||
:return: EditorEntity class object
|
||||
"""
|
||||
entity_id = general.find_editor_entity(entity_name)
|
||||
assert entity_id.IsValid(), f"Failure: Couldn't find entity with name: '{entity_name}'"
|
||||
entity = cls(entity_id)
|
||||
entities = cls.find_editor_entities([entity_name])
|
||||
assert len(entities) != 0, f"Failure: Couldn't find entity with name: '{entity_name}'"
|
||||
if must_be_unique:
|
||||
assert len(entities) == 1, f"Failure: Multiple entities with name: '{entity_name}' when expected only one"
|
||||
|
||||
entity = cls(entities[0])
|
||||
return entity
|
||||
|
||||
@classmethod
|
||||
def find_editor_entities(cls, entity_names: List[str]) -> EditorEntity:
|
||||
"""
|
||||
Given Entities names, returns a list of EditorEntity
|
||||
:param entity_name: Name of entity to find
|
||||
:return: List[EditorEntity] class object
|
||||
"""
|
||||
searchFilter = azlmbr.entity.SearchFilter()
|
||||
searchFilter.names = entity_names
|
||||
ids = azlmbr.entity.SearchBus(bus.Broadcast, 'SearchEntities', searchFilter)
|
||||
return [cls(id) for id in ids]
|
||||
|
||||
@classmethod
|
||||
def create_editor_entity(cls, name: str = None, parent_id=None) -> EditorEntity:
|
||||
"""
|
||||
@@ -157,8 +172,7 @@ class EditorEntity:
|
||||
cls,
|
||||
entity_position: Union[List, Tuple, math.Vector3],
|
||||
name: str = None,
|
||||
parent_id: azlmbr.entity.EntityId = None,
|
||||
) -> EditorEntity:
|
||||
parent_id: azlmbr.entity.EntityId = None) -> EditorEntity:
|
||||
"""
|
||||
Used to create entity at position using 'CreateNewEntityAtPosition' Bus.
|
||||
:param entity_position: World Position(X, Y, Z) of entity in viewport.
|
||||
@@ -227,6 +241,12 @@ class EditorEntity:
|
||||
"""
|
||||
return editor.EditorEntityInfoRequestBus(bus.Event, "GetChildren", self.id)
|
||||
|
||||
def get_children(self) -> List[EditorEntity]:
|
||||
"""
|
||||
:return: List of EditorEntity children. Type: [EditorEntity]
|
||||
"""
|
||||
return [EditorEntity(child_id) for child_id in self.get_children_ids()]
|
||||
|
||||
def add_component(self, component_name: str) -> EditorComponent:
|
||||
"""
|
||||
Used to add new component to Entity.
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ def launch_and_validate_results(request, test_directory, editor, editor_script,
|
||||
logger.debug("Running automated test: {}".format(editor_script))
|
||||
editor.args.extend(["--skipWelcomeScreenDialog", "--regset=/Amazon/Settings/EnableSourceControl=false",
|
||||
"--regset=/Amazon/Preferences/EnablePrefabSystem=false", run_python, test_case,
|
||||
f"--pythontestcase={request.node.originalname}", "--runpythonargs", " ".join(cfg_args)])
|
||||
f"--pythontestcase={request.node.name}", "--runpythonargs", " ".join(cfg_args)])
|
||||
if auto_test_mode:
|
||||
editor.args.extend(["--autotest_mode"])
|
||||
if null_renderer:
|
||||
|
||||
+353
@@ -0,0 +1,353 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from collections import Counter
|
||||
from collections import deque
|
||||
from os import path
|
||||
from pathlib import Path
|
||||
|
||||
from PySide2 import QtWidgets
|
||||
|
||||
import azlmbr.legacy.general as general
|
||||
from azlmbr.entity import EntityId
|
||||
from azlmbr.math import Vector3
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report
|
||||
|
||||
import azlmbr.entity as entity
|
||||
import azlmbr.bus as bus
|
||||
import azlmbr.components as components
|
||||
import azlmbr.editor as editor
|
||||
import azlmbr.globals
|
||||
import azlmbr.math as math
|
||||
import azlmbr.prefab as prefab
|
||||
import editor_python_test_tools.pyside_utils as pyside_utils
|
||||
|
||||
|
||||
def get_prefab_file_path(prefab_path):
|
||||
if not path.isabs(prefab_path):
|
||||
prefab_path = path.join(general.get_file_alias("@projectroot@"), prefab_path)
|
||||
|
||||
# Append prefab if it doesn't contain .prefab on it
|
||||
name, ext = path.splitext(prefab_path)
|
||||
if ext != ".prefab":
|
||||
prefab_path = name + ".prefab"
|
||||
return prefab_path
|
||||
|
||||
|
||||
def get_all_entity_ids():
|
||||
return entity.SearchBus(bus.Broadcast, 'SearchEntities', entity.SearchFilter())
|
||||
|
||||
def wait_for_propagation():
|
||||
general.idle_wait_frames(1)
|
||||
|
||||
# This is a helper class which contains some of the useful information about a prefab instance.
|
||||
class PrefabInstance:
|
||||
|
||||
def __init__(self, prefab_file_name: str = None, container_entity: EditorEntity = None):
|
||||
self.prefab_file_name: str = prefab_file_name
|
||||
self.container_entity: EditorEntity = container_entity
|
||||
|
||||
def __eq__(self, other):
|
||||
return other and self.container_entity.id == other.container_entity.id
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.container_entity.id)
|
||||
|
||||
def is_valid(self) -> bool:
|
||||
"""
|
||||
See if this instance is valid to be used with other prefab operations.
|
||||
:return: Whether the target instance is valid or not.
|
||||
"""
|
||||
return self.container_entity.id.IsValid() and self.prefab_file_name in Prefab.existing_prefabs
|
||||
|
||||
def has_editor_prefab_component(self) -> bool:
|
||||
"""
|
||||
Check if the instance's container entity contains EditorPrefabComponent.
|
||||
:return: Whether the container entity of target instance has EditorPrefabComponent in it or not.
|
||||
"""
|
||||
return editor.EditorComponentAPIBus(bus.Broadcast, "HasComponentOfType", self.container_entity.id, azlmbr.globals.property.EditorPrefabComponentTypeId)
|
||||
|
||||
def is_at_position(self, expected_position):
|
||||
"""
|
||||
Check if the instance's container entity is at expected position given.
|
||||
:return: Whether the container entity of target instance is at expected position or not.
|
||||
"""
|
||||
actual_position = components.TransformBus(bus.Event, "GetWorldTranslation", self.container_entity.id)
|
||||
is_at_position = actual_position.IsClose(expected_position)
|
||||
|
||||
if not is_at_position:
|
||||
Report.info(f"Prefab Instance Container Entity '{self.container_entity.id.ToString()}'\'s expected position: {expected_position.ToString()}, actual position: {actual_position.ToString()}")
|
||||
|
||||
return is_at_position
|
||||
|
||||
async def ui_reparent_prefab_instance(self, parent_entity_id: EntityId):
|
||||
"""
|
||||
Reparent this instance to target parent entity.
|
||||
The function will also check pop up dialog ui in editor to see if there's prefab cyclical dependency error while reparenting prefabs.
|
||||
:param parent_entity_id: The id of the entity this instance should be a child of in the transform hierarchy next.
|
||||
"""
|
||||
container_entity_id_before_reparent = self.container_entity.id
|
||||
|
||||
original_parent = EditorEntity(self.container_entity.get_parent_id())
|
||||
original_parent_before_reparent_children_ids = {child_id.ToString(): child_id for child_id in original_parent.get_children_ids()}
|
||||
|
||||
new_parent = EditorEntity(parent_entity_id)
|
||||
new_parent_before_reparent_children_ids = {child_id.ToString(): child_id for child_id in new_parent.get_children_ids()}
|
||||
|
||||
pyside_utils.run_soon(lambda: self.container_entity.set_parent_entity(parent_entity_id))
|
||||
pyside_utils.run_soon(lambda: wait_for_propagation())
|
||||
|
||||
try:
|
||||
active_modal_widget = await pyside_utils.wait_for_modal_widget()
|
||||
error_message_box = active_modal_widget.findChild(QtWidgets.QMessageBox)
|
||||
ok_button = error_message_box.button(QtWidgets.QMessageBox.Ok)
|
||||
ok_button.click()
|
||||
assert False, "Cyclical dependency detected while reparenting prefab"
|
||||
except pyside_utils.EventLoopTimeoutException:
|
||||
pass
|
||||
|
||||
original_parent_after_reparent_children_ids = {child_id.ToString(): child_id for child_id in original_parent.get_children_ids()}
|
||||
assert len(original_parent_after_reparent_children_ids) == len(original_parent_before_reparent_children_ids) - 1, \
|
||||
"The children count of the Prefab Instance's original parent should be decreased by 1."
|
||||
assert not container_entity_id_before_reparent in original_parent_after_reparent_children_ids, \
|
||||
"This Prefab Instance is still a child entity of its original parent entity."
|
||||
|
||||
new_parent_after_reparent_children_ids = {child_id.ToString(): child_id for child_id in new_parent.get_children_ids()}
|
||||
assert len(new_parent_after_reparent_children_ids) == len(new_parent_before_reparent_children_ids) + 1, \
|
||||
"The children count of the Prefab Instance's new parent should be increased by 1."
|
||||
|
||||
after_before_diff = set(new_parent_after_reparent_children_ids.keys()).difference(set(new_parent_before_reparent_children_ids.keys()))
|
||||
container_entity_id_after_reparent = new_parent_after_reparent_children_ids[after_before_diff.pop()]
|
||||
reparented_container_entity = EditorEntity(container_entity_id_after_reparent)
|
||||
reparented_container_entity_parent_id = reparented_container_entity.get_parent_id()
|
||||
has_correct_parent = reparented_container_entity_parent_id.ToString() == parent_entity_id.ToString()
|
||||
assert has_correct_parent, "Prefab Instance reparented is *not* under the expected parent entity"
|
||||
|
||||
current_instance_prefab = Prefab.get_prefab(self.prefab_file_name)
|
||||
current_instance_prefab.instances.remove(self)
|
||||
|
||||
self.container_entity = reparented_container_entity
|
||||
current_instance_prefab.instances.add(self)
|
||||
|
||||
# This is a helper class which contains some of the useful information about a prefab template.
|
||||
class Prefab:
|
||||
|
||||
existing_prefabs = {}
|
||||
|
||||
def __init__(self, file_path: str):
|
||||
self.file_path: str = get_prefab_file_path(file_path)
|
||||
self.instances: set[PrefabInstance] = set()
|
||||
|
||||
@classmethod
|
||||
def is_prefab_loaded(cls, file_path: str) -> bool:
|
||||
"""
|
||||
Check if a prefab is ready to be used to generate its instances.
|
||||
:param file_path: A unique file path of the target prefab.
|
||||
:return: Whether the target prefab is loaded or not.
|
||||
"""
|
||||
return file_path in Prefab.existing_prefabs
|
||||
|
||||
|
||||
@classmethod
|
||||
def prefab_exists(cls, file_path: str) -> bool:
|
||||
"""
|
||||
Check if a prefab exists in the directory for files of prefab tests.
|
||||
:param file_name: A unique file name of the target prefab.
|
||||
:return: Whether the target prefab exists or not.
|
||||
"""
|
||||
return path.exists(get_prefab_file_path(file_path))
|
||||
|
||||
@classmethod
|
||||
def get_prefab(cls, file_name: str) -> Prefab:
|
||||
"""
|
||||
Return a prefab which can be used immediately.
|
||||
:param file_name: A unique file name of the target prefab.
|
||||
:return: The prefab with given file name.
|
||||
"""
|
||||
assert file_name, "Received an empty file_name"
|
||||
if Prefab.is_prefab_loaded(file_name):
|
||||
return Prefab.existing_prefabs[file_name]
|
||||
else:
|
||||
assert Prefab.prefab_exists(file_name), f"Attempted to get a prefab \"{file_name}\" that doesn't exist"
|
||||
new_prefab = Prefab(file_name)
|
||||
Prefab.existing_prefabs[file_name] = Prefab(file_name)
|
||||
return new_prefab
|
||||
|
||||
@classmethod
|
||||
def create_prefab(cls, entities: list[EditorEntity], file_name: str, prefab_instance_name: str=None) -> tuple(Prefab, PrefabInstance):
|
||||
"""
|
||||
Create a prefab in memory and return it. The very first instance of this prefab will also be created.
|
||||
:param entities: The entities that should form the new prefab (along with their descendants).
|
||||
:param file_name: A unique file name of new prefab.
|
||||
:param prefab_instance_name: A name for the very first instance generated while prefab creation. The default instance name is the same as file_name.
|
||||
:return: Created Prefab object and the very first PrefabInstance object owned by the prefab.
|
||||
"""
|
||||
assert not Prefab.is_prefab_loaded(file_name), f"Can't create Prefab '{file_name}' since the prefab already exists"
|
||||
|
||||
new_prefab = Prefab(file_name)
|
||||
entity_ids = [entity.id for entity in entities]
|
||||
create_prefab_result = prefab.PrefabPublicRequestBus(bus.Broadcast, 'CreatePrefabInMemory', entity_ids, new_prefab.file_path)
|
||||
assert create_prefab_result.IsSuccess(), f"Prefab operation 'CreatePrefab' failed. Error: {create_prefab_result.GetError()}"
|
||||
|
||||
container_entity_id = create_prefab_result.GetValue()
|
||||
container_entity = EditorEntity(container_entity_id)
|
||||
children_entity_ids = container_entity.get_children_ids()
|
||||
|
||||
assert len(children_entity_ids) == len(entities), f"Entity count of created prefab instance does *not* match the count of given entities."
|
||||
|
||||
if prefab_instance_name:
|
||||
container_entity.set_name(prefab_instance_name)
|
||||
|
||||
wait_for_propagation()
|
||||
|
||||
new_prefab_instance = PrefabInstance(file_name, EditorEntity(container_entity_id))
|
||||
new_prefab.instances.add(new_prefab_instance)
|
||||
Prefab.existing_prefabs[file_name] = new_prefab
|
||||
return new_prefab, new_prefab_instance
|
||||
|
||||
@classmethod
|
||||
def remove_prefabs(cls, prefab_instances: list[PrefabInstance]):
|
||||
"""
|
||||
Remove target prefab instances.
|
||||
:param prefab_instances: Instances to be removed.
|
||||
"""
|
||||
entity_ids_to_remove = []
|
||||
entity_id_queue = [prefab_instance.container_entity for prefab_instance in prefab_instances]
|
||||
while entity_id_queue:
|
||||
entity = entity_id_queue.pop(0)
|
||||
children_entity_ids = entity.get_children_ids()
|
||||
for child_entity_id in children_entity_ids:
|
||||
entity_id_queue.append(EditorEntity(child_entity_id))
|
||||
|
||||
entity_ids_to_remove.append(entity.id)
|
||||
|
||||
container_entity_ids = [prefab_instance.container_entity.id for prefab_instance in prefab_instances]
|
||||
delete_prefab_result = prefab.PrefabPublicRequestBus(bus.Broadcast, 'DeleteEntitiesAndAllDescendantsInInstance', container_entity_ids)
|
||||
assert delete_prefab_result.IsSuccess(), f"Prefab operation 'DeleteEntitiesAndAllDescendantsInInstance' failed. Error: {delete_prefab_result.GetError()}"
|
||||
|
||||
wait_for_propagation()
|
||||
|
||||
entity_ids_after_delete = set(get_all_entity_ids())
|
||||
|
||||
for entity_id_removed in entity_ids_to_remove:
|
||||
if entity_id_removed in entity_ids_after_delete:
|
||||
assert False, "Not all entities and descendants in target prefabs are deleted."
|
||||
|
||||
for instance in prefab_instances:
|
||||
instance_deleted_prefab = Prefab.get_prefab(instance.prefab_file_name)
|
||||
instance_deleted_prefab.instances.remove(instance)
|
||||
instance = PrefabInstance()
|
||||
|
||||
@classmethod
|
||||
def duplicate_prefabs(cls, prefab_instances: list[PrefabInstance]):
|
||||
"""
|
||||
Duplicate target prefab instances.
|
||||
:param prefab_instances: Instances to be duplicated.
|
||||
:return: PrefabInstance objects of given prefab instances' duplicates.
|
||||
"""
|
||||
assert prefab_instances, "Input list of prefab instances should *not* be empty."
|
||||
|
||||
common_parent = EditorEntity(prefab_instances[0].container_entity.get_parent_id())
|
||||
common_parent_children_ids_before_duplicate = set([child_id.ToString() for child_id in common_parent.get_children_ids()])
|
||||
|
||||
container_entity_ids = [prefab_instance.container_entity.id for prefab_instance in prefab_instances]
|
||||
|
||||
duplicate_prefab_result = prefab.PrefabPublicRequestBus(bus.Broadcast, 'DuplicateEntitiesInInstance', container_entity_ids)
|
||||
assert duplicate_prefab_result.IsSuccess(), f"Prefab operation 'DuplicateEntitiesInInstance' failed. Error: {duplicate_prefab_result.GetError()}"
|
||||
|
||||
wait_for_propagation()
|
||||
|
||||
duplicate_container_entity_ids = duplicate_prefab_result.GetValue()
|
||||
common_parent_children_ids_after_duplicate = set([child_id.ToString() for child_id in common_parent.get_children_ids()])
|
||||
|
||||
assert set([container_entity_id.ToString() for container_entity_id in container_entity_ids]).issubset(common_parent_children_ids_after_duplicate), \
|
||||
"Provided prefab instances are *not* the children of their common parent anymore after duplication."
|
||||
assert common_parent_children_ids_before_duplicate.issubset(common_parent_children_ids_after_duplicate), \
|
||||
"Some children of provided entities' common parent before duplication are *not* the children of the common parent anymore after duplication."
|
||||
assert len(common_parent_children_ids_after_duplicate) == len(common_parent_children_ids_before_duplicate) + len(prefab_instances), \
|
||||
"The children count of the given prefab instances' common parent entity is *not* increased to the expected number."
|
||||
assert EditorEntity(duplicate_container_entity_ids[0]).get_parent_id().ToString() == common_parent.id.ToString(), \
|
||||
"Provided prefab instances' parent should be the same as duplicates' parent."
|
||||
|
||||
duplicate_instances = []
|
||||
for duplicate_container_entity_id in duplicate_container_entity_ids:
|
||||
prefab_file_path = prefab.PrefabPublicRequestBus(bus.Broadcast, 'GetOwningInstancePrefabPath', duplicate_container_entity_id)
|
||||
assert prefab_file_path, "Returned file path should *not* be empty."
|
||||
|
||||
prefab_file_name = Path(prefab_file_path).stem
|
||||
duplicate_instance_prefab = Prefab.get_prefab(prefab_file_name)
|
||||
duplicate_instance = PrefabInstance(prefab_file_path, EditorEntity(duplicate_container_entity_id))
|
||||
duplicate_instance_prefab.instances.add(duplicate_instance)
|
||||
duplicate_instances.append(duplicate_instance)
|
||||
|
||||
return duplicate_instances
|
||||
|
||||
@classmethod
|
||||
def detach_prefab(cls, prefab_instance: PrefabInstance):
|
||||
"""
|
||||
Detach target prefab instance.
|
||||
:param prefab_instances: Instance to be detached.
|
||||
"""
|
||||
parent = EditorEntity(prefab_instance.container_entity.get_parent_id())
|
||||
parent_children_ids_before_detach = set([child_id.ToString() for child_id in parent.get_children_ids()])
|
||||
|
||||
assert prefab_instance.has_editor_prefab_component(), f"Container entity should have EditorPrefabComponent before detachment."
|
||||
|
||||
detach_prefab_result = prefab.PrefabPublicRequestBus(bus.Broadcast, 'DetachPrefab', prefab_instance.container_entity.id)
|
||||
assert detach_prefab_result.IsSuccess(), f"Prefab operation 'DetachPrefab' failed. Error: {detach_prefab_result.GetError()}"
|
||||
|
||||
assert not prefab_instance.has_editor_prefab_component(), f"Container entity should *not* have EditorPrefabComponent after detachment."
|
||||
|
||||
parent_children_ids_after_detach = set([child_id.ToString() for child_id in parent.get_children_ids()])
|
||||
|
||||
assert prefab_instance.container_entity.id.ToString() in parent_children_ids_after_detach, \
|
||||
"Target prefab instance's container entity id should still exists after the detachment and before the propagation."
|
||||
|
||||
assert len(parent_children_ids_after_detach) == len(parent_children_ids_before_detach), \
|
||||
"Parent entity should still keep the same amount of children entities."
|
||||
|
||||
wait_for_propagation()
|
||||
|
||||
instance_owner_prefab = Prefab.get_prefab(prefab_instance.prefab_file_name)
|
||||
instance_owner_prefab.instances.remove(prefab_instance)
|
||||
prefab_instance = PrefabInstance()
|
||||
|
||||
def instantiate(self, parent_entity: EditorEntity=None, name: str=None, prefab_position: Vector3=Vector3()) -> PrefabInstance:
|
||||
"""
|
||||
Instantiate an instance of this prefab.
|
||||
:param parent_entity: The entity the prefab should be a child of in the transform hierarchy.
|
||||
:param name: A name for newly instantiated prefab instance. The default instance name is the same as this prefab's file name.
|
||||
:param prefab_position: The position in world space the prefab should be instantiated in.
|
||||
:return: Instantiated PrefabInstance object owned by this prefab.
|
||||
"""
|
||||
parent_entity_id = parent_entity.id if parent_entity is not None else EntityId()
|
||||
|
||||
instantiate_prefab_result = prefab.PrefabPublicRequestBus(
|
||||
bus.Broadcast, 'InstantiatePrefab', self.file_path, parent_entity_id, prefab_position)
|
||||
|
||||
assert instantiate_prefab_result.IsSuccess(), f"Prefab operation 'InstantiatePrefab' failed. Error: {instantiate_prefab_result.GetError()}"
|
||||
|
||||
container_entity_id = instantiate_prefab_result.GetValue()
|
||||
container_entity = EditorEntity(container_entity_id)
|
||||
|
||||
if name:
|
||||
container_entity.set_name(name)
|
||||
|
||||
wait_for_propagation()
|
||||
|
||||
new_prefab_instance = PrefabInstance(self.file_path, EditorEntity(container_entity_id))
|
||||
assert not new_prefab_instance in self.instances, "This prefab instance is already existed before this instantiation."
|
||||
self.instances.add(new_prefab_instance)
|
||||
|
||||
assert new_prefab_instance.is_at_position(prefab_position), "This prefab instance is *not* at expected position."
|
||||
|
||||
return new_prefab_instance
|
||||
-1
@@ -149,7 +149,6 @@ class TestHelper:
|
||||
general.idle_wait(1.0)
|
||||
general.idle_wait(1.0)
|
||||
general.run_console("r_displayInfo=0")
|
||||
general.run_console("r_antialiasingmode=0")
|
||||
general.idle_wait(1.0)
|
||||
|
||||
|
||||
|
||||
@@ -9,20 +9,17 @@ import pytest
|
||||
import sys
|
||||
|
||||
import ly_test_tools.environment.file_system as fs
|
||||
from .FileManagement import FileManagement as fm
|
||||
from .utils.FileManagement import FileManagement as fm
|
||||
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
|
||||
|
||||
from .base import TestAutomationBase
|
||||
from base import TestAutomationBase
|
||||
|
||||
|
||||
@pytest.mark.parametrize("platform", ["win_x64_vs2017"])
|
||||
@pytest.mark.parametrize("configuration", ["profile"])
|
||||
@pytest.mark.parametrize("spec", ["all"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
class TestUtils(TestAutomationBase):
|
||||
@fm.file_revert("UtilTest_Physmaterial_Editor_TestLibrary.physmaterial", r"AutomatedTesting\Levels\Physics\Physmaterial_Editor_Test")
|
||||
def test_physmaterial_editor(self, request, workspace, editor):
|
||||
def test_physmaterial_editor(self, request, workspace, launcher_platform, editor):
|
||||
"""
|
||||
Tests functionality of physmaterial editing utility
|
||||
:param workspace: Fixture containing platform and project detail
|
||||
@@ -35,11 +32,11 @@ class TestUtils(TestAutomationBase):
|
||||
unexpected_lines = ["Assert"]
|
||||
self._run_test(request, workspace, editor, physmaterial_editor_test_module, expected_lines, unexpected_lines)
|
||||
|
||||
def test_UtilTest_Tracer_PicksErrorsAndWarnings(self, request, workspace, editor):
|
||||
def test_UtilTest_Tracer_PicksErrorsAndWarnings(self, request, workspace, launcher_platform, editor):
|
||||
from .utils import UtilTest_Tracer_PicksErrorsAndWarnings as testcase_module
|
||||
self._run_test(request, workspace, editor, testcase_module, [], [])
|
||||
|
||||
def test_FileManagement_FindingFiles(self, workspace):
|
||||
def test_FileManagement_FindingFiles(self, workspace, launcher_platform):
|
||||
"""
|
||||
Tests the functionality of "searching for files" with FileManagement._find_files()
|
||||
:param workspace: ly_test_tools workspace fixture
|
||||
@@ -110,7 +107,7 @@ class TestUtils(TestAutomationBase):
|
||||
find_me_too_path, found_me["FindMeToo.txt"]
|
||||
)
|
||||
|
||||
def test_FileManagement_FileBackup(self, workspace):
|
||||
def test_FileManagement_FileBackup(self, workspace, launcher_platform):
|
||||
"""
|
||||
Tests the functionality of the file back up system via the FileManagement class
|
||||
:param workspace: ly_test_tools workspace fixture
|
||||
@@ -167,7 +164,7 @@ class TestUtils(TestAutomationBase):
|
||||
del file_map[target_file_path]
|
||||
fm._save_file_map(file_map)
|
||||
|
||||
def test_FileManagement_FileRestoration(self, workspace):
|
||||
def test_FileManagement_FileRestoration(self, workspace, launcher_platform):
|
||||
"""
|
||||
Tests the restore file system via the FileManagement class
|
||||
:param workspace: ly_test_tools workspace fixture
|
||||
@@ -261,7 +258,7 @@ class TestUtils(TestAutomationBase):
|
||||
["FindMe.txt", "FindMeToo.txt"], parent_path=r"AutomatedTesting\levels\Utils\Managed_files", search_subdirs=True
|
||||
)
|
||||
@fm.file_override("default.physxconfiguration", "UtilTest_PhysxConfig_Override.physxconfiguration")
|
||||
def test_UtilTest_Managed_Files(self, request, workspace, editor):
|
||||
def test_UtilTest_Managed_Files(self, request, workspace, editor, launcher_platform):
|
||||
from .utils import UtilTest_Managed_Files as test_module
|
||||
|
||||
expected_lines = []
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ def ForceRegion_LinearDampingForceOnRigidBodies():
|
||||
|
||||
# Constants
|
||||
CLOSE_ENOUGH = 0.001
|
||||
TIME_OUT = 3.0
|
||||
TIME_OUT = 10.0
|
||||
INITIAL_VELOCITY = azmath.Vector3(0.0, 0.0, -10.0)
|
||||
|
||||
# 1) Open level / Enter game mode
|
||||
|
||||
+3
-11
@@ -52,9 +52,6 @@ def Joints_BallLeadFollowerCollide():
|
||||
from editor_python_test_tools.utils import Report
|
||||
from editor_python_test_tools.utils import TestHelper as helper
|
||||
|
||||
import azlmbr.legacy.general as general
|
||||
import azlmbr.bus
|
||||
|
||||
from JointsHelper import JointEntityCollisionAware
|
||||
|
||||
# Helper Entity class - self.collided flag is set when instance receives collision event.
|
||||
@@ -75,17 +72,12 @@ def Joints_BallLeadFollowerCollide():
|
||||
lead = Entity("lead")
|
||||
follower = Entity("follower")
|
||||
|
||||
# 4) Wait for several seconds
|
||||
general.idle_wait(2.0) # wait for lead and follower to move
|
||||
# 4) Wait for collision between lead and follower or timeout
|
||||
Report.critical_result(Tests.check_collision_happened, helper.wait_for_condition(lambda: lead.collided and follower.collided, 10.0))
|
||||
|
||||
# 5) Check to see if lead and follower behaved as expected
|
||||
Report.critical_result(Tests.check_collision_happened, lead.collided and follower.collided)
|
||||
|
||||
# 6) Exit Game Mode
|
||||
# 5) Exit Game Mode
|
||||
helper.exit_game_mode(Tests.exit_game_mode)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Joints_BallLeadFollowerCollide)
|
||||
|
||||
+49
-10
@@ -52,11 +52,13 @@ def Joints_HingeNoLimitsConstrained():
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import math
|
||||
from editor_python_test_tools.utils import Report
|
||||
from editor_python_test_tools.utils import TestHelper as helper
|
||||
|
||||
import azlmbr.legacy.general as general
|
||||
import azlmbr.bus
|
||||
import azlmbr.math as azmath
|
||||
|
||||
import JointsHelper
|
||||
from JointsHelper import JointEntity
|
||||
@@ -84,28 +86,65 @@ def Joints_HingeNoLimitsConstrained():
|
||||
Report.info_vector3(lead.position, "lead initial position:")
|
||||
Report.info_vector3(follower.position, "follower initial position:")
|
||||
leadInitialPosition = lead.position
|
||||
followerInitialPosition = follower.position
|
||||
|
||||
# 4) Wait for several seconds
|
||||
general.idle_wait(4.0) # wait for lead and follower to move
|
||||
# 4) Wait for the follower to move above and over the lead or Timeout
|
||||
normalizedStartPos = JointsHelper.getRelativeVector(lead.position, follower.position)
|
||||
normalizedStartPos = normalizedStartPos.GetNormalizedSafe()
|
||||
|
||||
class WaitCondition:
|
||||
ANGLE_CHECKPOINT_1 = math.radians(90)
|
||||
ANGLE_CHECKPOINT_2 = math.radians(200)
|
||||
|
||||
angleAchieved = 0.0
|
||||
followerMovedAbove90Deg = False #this is expected to be true to pass the test
|
||||
followerMovedAbove200Deg = False #this is expected to be true to pass the test
|
||||
|
||||
jointNormal = azmath.Vector3(0.0, -1.0, 0.0) # the joint rotates around the y axis
|
||||
def checkConditionMet(self):
|
||||
#calculate the current follower-lead vector
|
||||
normalVec = JointsHelper.getRelativeVector(lead.position, follower.position)
|
||||
normalVec = normalVec.GetNormalizedSafe()
|
||||
|
||||
#triple product and get the angle
|
||||
tripleProduct = normalizedStartPos.dot(normalVec.cross(self.jointNormal))
|
||||
currentAngle = math.acos(normalizedStartPos.Dot(normalVec))
|
||||
if tripleProduct < 0:
|
||||
currentAngle = (2*math.pi) - currentAngle
|
||||
|
||||
#if the angle is now less then last time, it is no longer rising, so end the test.
|
||||
if currentAngle < self.angleAchieved:
|
||||
return True
|
||||
|
||||
#once we're passed the final check point, end the test
|
||||
if currentAngle > self.ANGLE_CHECKPOINT_2:
|
||||
self.followerMovedAbove200Deg = True
|
||||
return True
|
||||
|
||||
self.angleAchieved = currentAngle
|
||||
self.followerMovedAbove90Deg = currentAngle > self.ANGLE_CHECKPOINT_1
|
||||
return False
|
||||
|
||||
def isFollowerPositionCorrect(self):
|
||||
return self.followerMovedAbove90Deg and self.followerMovedAbove200Deg
|
||||
|
||||
waitCondition = WaitCondition()
|
||||
|
||||
MAX_WAIT_TIME = 10.0 #seconds
|
||||
conditionMet = helper.wait_for_condition(lambda: waitCondition.checkConditionMet(), MAX_WAIT_TIME)
|
||||
|
||||
# 5) Check to see if lead and follower behaved as expected
|
||||
Report.info_vector3(lead.position, "lead position after 1 second:")
|
||||
Report.info_vector3(follower.position, "follower position after 1 second:")
|
||||
Report.info_vector3(lead.position, "lead position after test run:")
|
||||
Report.info_vector3(follower.position, "follower position after test run:")
|
||||
|
||||
leadPositionDelta = lead.position.Subtract(leadInitialPosition)
|
||||
leadRemainedStill = JointsHelper.vector3SmallerThanScalar(leadPositionDelta, FLOAT_EPSILON)
|
||||
Report.critical_result(Tests.check_lead_position, leadRemainedStill)
|
||||
|
||||
followerSwingedOverLead = (follower.position.x < leadInitialPosition.x and
|
||||
follower.position.z > leadInitialPosition.z)
|
||||
Report.critical_result(Tests.check_follower_position, followerSwingedOverLead)
|
||||
Report.critical_result(Tests.check_follower_position, conditionMet and waitCondition.isFollowerPositionCorrect())
|
||||
|
||||
# 6) Exit Game Mode
|
||||
helper.exit_game_mode(Tests.exit_game_mode)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Joints_HingeNoLimitsConstrained)
|
||||
|
||||
+17
-9
@@ -29,21 +29,29 @@ class TestAutomation(TestAutomationBase):
|
||||
autotest_mode=autotest_mode)
|
||||
|
||||
def test_PrefabLevel_OpensLevelWithEntities(self, request, workspace, editor, launcher_platform):
|
||||
from . import PrefabLevel_OpensLevelWithEntities as test_module
|
||||
from .tests import PrefabLevel_OpensLevelWithEntities as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module)
|
||||
|
||||
def test_Prefab_BasicWorkflow_CreatePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from . import Prefab_BasicWorkflow_CreatePrefab as test_module
|
||||
def test_PrefabBasicWorkflow_CreatePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_CreatePrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module)
|
||||
|
||||
def test_Prefab_BasicWorkflow_InstantiatePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from . import Prefab_BasicWorkflow_InstantiatePrefab as test_module
|
||||
def test_PrefabBasicWorkflow_InstantiatePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_InstantiatePrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module)
|
||||
|
||||
def test_Prefab_BasicWorkflow_CreateAndDeletePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from . import Prefab_BasicWorkflow_CreateAndDeletePrefab as test_module
|
||||
def test_PrefabBasicWorkflow_CreateAndDeletePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_CreateAndDeletePrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module)
|
||||
|
||||
def test_Prefab_BasicWorkflow_CreateAndReparentPrefab(self, request, workspace, editor, launcher_platform):
|
||||
from . import Prefab_BasicWorkflow_CreateAndReparentPrefab as test_module
|
||||
def test_PrefabBasicWorkflow_CreateAndReparentPrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_CreateAndReparentPrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module, autotest_mode=False)
|
||||
|
||||
def test_PrefabBasicWorkflow_CreateReparentAndDetachPrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_CreateReparentAndDetachPrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module, autotest_mode=False)
|
||||
|
||||
def test_PrefabBasicWorkflow_CreateAndDuplicatePrefab(self, request, workspace, editor, launcher_platform):
|
||||
from .tests import PrefabBasicWorkflow_CreateAndDuplicatePrefab as test_module
|
||||
self._run_prefab_test(request, workspace, editor, test_module)
|
||||
+7
-8
@@ -5,29 +5,28 @@ For complete copyright and license terms please see the LICENSE at the root of t
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def Prefab_BasicWorkflow_CreateAndDeletePrefab():
|
||||
def PrefabBasicWorkflow_CreateAndDeletePrefab():
|
||||
|
||||
CAR_PREFAB_FILE_NAME = 'car_prefab'
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from prefab.Prefab import Prefab
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import prefab.Prefab_Test_Utils as prefab_test_utils
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Creates a new Entity at the root level
|
||||
# Asserts if creation didn't succeed
|
||||
# Creates a new entity at the root level
|
||||
car_entity = EditorEntity.create_editor_entity()
|
||||
car_prefab_entities = [car_entity]
|
||||
|
||||
# Checks for prefab creation passed or not
|
||||
# Creates a prefab from the new entity
|
||||
_, car = Prefab.create_prefab(
|
||||
car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||
|
||||
# Checks for prefab deletion passed or not
|
||||
# Deletes the prefab instance
|
||||
Prefab.remove_prefabs([car])
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Prefab_BasicWorkflow_CreateAndDeletePrefab)
|
||||
Report.start_test(PrefabBasicWorkflow_CreateAndDeletePrefab)
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def PrefabBasicWorkflow_CreateAndDuplicatePrefab():
|
||||
|
||||
CAR_PREFAB_FILE_NAME = 'car_prefab'
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Creates a new entity at the root level
|
||||
car_entity = EditorEntity.create_editor_entity()
|
||||
car_prefab_entities = [car_entity]
|
||||
|
||||
# Creates a prefab from the new entity
|
||||
_, car = Prefab.create_prefab(
|
||||
car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||
|
||||
# Duplicates the prefab instance
|
||||
Prefab.duplicate_prefabs([car])
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(PrefabBasicWorkflow_CreateAndDuplicatePrefab)
|
||||
+9
-10
@@ -5,7 +5,7 @@ For complete copyright and license terms please see the LICENSE at the root of t
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def Prefab_BasicWorkflow_CreateAndReparentPrefab():
|
||||
def PrefabBasicWorkflow_CreateAndReparentPrefab():
|
||||
|
||||
CAR_PREFAB_FILE_NAME = 'car_prefab'
|
||||
WHEEL_PREFAB_FILE_NAME = 'wheel_prefab'
|
||||
@@ -16,34 +16,33 @@ def Prefab_BasicWorkflow_CreateAndReparentPrefab():
|
||||
async def run_test():
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from prefab.Prefab import Prefab
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import prefab.Prefab_Test_Utils as prefab_test_utils
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Creates a new Entity at the root level
|
||||
# Asserts if creation didn't succeed
|
||||
# Creates a new car entity at the root level
|
||||
car_entity = EditorEntity.create_editor_entity()
|
||||
car_prefab_entities = [car_entity]
|
||||
|
||||
# Checks for prefab creation passed or not
|
||||
# Creates a prefab from the car entity
|
||||
_, car = Prefab.create_prefab(
|
||||
car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||
|
||||
# Creates another new Entity at the root level
|
||||
# Creates another new wheel entity at the root level
|
||||
wheel_entity = EditorEntity.create_editor_entity()
|
||||
wheel_prefab_entities = [wheel_entity]
|
||||
|
||||
# Checks for wheel prefab creation passed or not
|
||||
# Creates another prefab from the wheel entity
|
||||
_, wheel = Prefab.create_prefab(
|
||||
wheel_prefab_entities, WHEEL_PREFAB_FILE_NAME)
|
||||
|
||||
# Checks for prefab reparenting passed or not
|
||||
# Reparents the wheel prefab instance to the container entity of the car prefab instance
|
||||
await wheel.ui_reparent_prefab_instance(car.container_entity.id)
|
||||
|
||||
run_test()
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Prefab_BasicWorkflow_CreateAndReparentPrefab)
|
||||
Report.start_test(PrefabBasicWorkflow_CreateAndReparentPrefab)
|
||||
+6
-7
@@ -5,26 +5,25 @@ For complete copyright and license terms please see the LICENSE at the root of t
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def Prefab_BasicWorkflow_CreatePrefab():
|
||||
def PrefabBasicWorkflow_CreatePrefab():
|
||||
|
||||
CAR_PREFAB_FILE_NAME = 'car_prefab'
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report
|
||||
from prefab.Prefab import Prefab
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import prefab.Prefab_Test_Utils as prefab_test_utils
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Creates a new Entity at the root level
|
||||
# Asserts if creation didn't succeed
|
||||
# Creates a new entity at the root level
|
||||
car_entity = EditorEntity.create_editor_entity()
|
||||
car_prefab_entities = [car_entity]
|
||||
|
||||
# Checks for prefab creation passed or not
|
||||
# Creates a prefab from the new entity
|
||||
Prefab.create_prefab(car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Prefab_BasicWorkflow_CreatePrefab)
|
||||
Report.start_test(PrefabBasicWorkflow_CreatePrefab)
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def PrefabBasicWorkflow_CreateReparentAndDetachPrefab():
|
||||
|
||||
CAR_PREFAB_FILE_NAME = 'car_prefab'
|
||||
WHEEL_PREFAB_FILE_NAME = 'wheel_prefab'
|
||||
|
||||
import editor_python_test_tools.pyside_utils as pyside_utils
|
||||
|
||||
@pyside_utils.wrap_async
|
||||
async def run_test():
|
||||
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Creates a new car entity at the root level
|
||||
car_entity = EditorEntity.create_editor_entity()
|
||||
car_prefab_entities = [car_entity]
|
||||
|
||||
# Creates a prefab from the car entity
|
||||
_, car = Prefab.create_prefab(
|
||||
car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||
|
||||
# Creates another new wheel entity at the root level
|
||||
wheel_entity = EditorEntity.create_editor_entity()
|
||||
wheel_prefab_entities = [wheel_entity]
|
||||
|
||||
# Creates another prefab from the wheel entity
|
||||
_, wheel = Prefab.create_prefab(
|
||||
wheel_prefab_entities, WHEEL_PREFAB_FILE_NAME)
|
||||
|
||||
# Reparents the wheel prefab instance to the container entity of the car prefab instance
|
||||
await wheel.ui_reparent_prefab_instance(car.container_entity.id)
|
||||
|
||||
# Detaches the wheel prefab instance
|
||||
Prefab.detach_prefab(wheel)
|
||||
|
||||
run_test()
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(PrefabBasicWorkflow_CreateReparentAndDetachPrefab)
|
||||
+6
-7
@@ -5,23 +5,22 @@ For complete copyright and license terms please see the LICENSE at the root of t
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
def Prefab_BasicWorkflow_InstantiatePrefab():
|
||||
def PrefabBasicWorkflow_InstantiatePrefab():
|
||||
|
||||
from azlmbr.math import Vector3
|
||||
|
||||
EXISTING_TEST_PREFAB_FILE_NAME = "Test"
|
||||
EXISTING_TEST_PREFAB_FILE_NAME = "Gem/PythonTests/Prefab/data/Test.prefab"
|
||||
INSTANTIATED_TEST_PREFAB_POSITION = Vector3(10.00, 20.0, 30.0)
|
||||
EXPECTED_TEST_PREFAB_CHILDREN_COUNT = 1
|
||||
|
||||
from prefab.Prefab import Prefab
|
||||
from editor_python_test_tools.prefab_utils import Prefab
|
||||
|
||||
import prefab.Prefab_Test_Utils as prefab_test_utils
|
||||
import PrefabTestUtils as prefab_test_utils
|
||||
|
||||
prefab_test_utils.open_base_tests_level()
|
||||
|
||||
# Checks for prefab instantiation passed or not
|
||||
# Instantiates a new car prefab instance
|
||||
test_prefab = Prefab.get_prefab(EXISTING_TEST_PREFAB_FILE_NAME)
|
||||
|
||||
test_instance = test_prefab.instantiate(
|
||||
prefab_position=INSTANTIATED_TEST_PREFAB_POSITION)
|
||||
|
||||
@@ -31,4 +30,4 @@ def Prefab_BasicWorkflow_InstantiatePrefab():
|
||||
|
||||
if __name__ == "__main__":
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(Prefab_BasicWorkflow_InstantiatePrefab)
|
||||
Report.start_test(PrefabBasicWorkflow_InstantiatePrefab)
|
||||
+3
-3
@@ -7,9 +7,9 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
|
||||
# fmt:off
|
||||
class Tests():
|
||||
find_empty_entity = ("Entity: 'EmptyEntity' found", "Entity: 'EmptyEntity' *not* found in level")
|
||||
empty_entity_pos = ("'EmptyEntity' position is at the expected position", "'EmptyEntity' position is *not* at the expected position")
|
||||
find_pxentity = ("Entity: 'EntityWithPxCollider' found", "Entity: 'EntityWithPxCollider' *not* found in level")
|
||||
find_empty_entity = ("Entity: 'EmptyEntity' found", "Entity: 'EmptyEntity' *not* found in level")
|
||||
empty_entity_pos = ("'EmptyEntity' position is at the expected position", "'EmptyEntity' position is *not* at the expected position")
|
||||
find_pxentity = ("Entity: 'EntityWithPxCollider' found", "Entity: 'EntityWithPxCollider' *not* found in level")
|
||||
pxentity_component = ("Entity: 'EntityWithPxCollider' has a Physx Collider", "Entity: 'EntityWithPxCollider' does *not* have a Physx Collider")
|
||||
|
||||
# fmt:on
|
||||
@@ -0,0 +1,38 @@
|
||||
"""
|
||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
|
||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from azlmbr.entity import EntityId
|
||||
from azlmbr.math import Vector3
|
||||
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||
from editor_python_test_tools.utils import Report
|
||||
from editor_python_test_tools.utils import TestHelper as helper
|
||||
|
||||
import azlmbr.bus as bus
|
||||
import azlmbr.components as components
|
||||
import azlmbr.entity as entity
|
||||
import azlmbr.legacy.general as general
|
||||
|
||||
def check_entity_children_count(entity_id, expected_children_count):
|
||||
entity_children_count_matched_result = (
|
||||
"Entity with a unique name found",
|
||||
"Entity with a unique name *not* found")
|
||||
|
||||
entity = EditorEntity(entity_id)
|
||||
children_entity_ids = entity.get_children_ids()
|
||||
entity_children_count_matched = len(children_entity_ids) == expected_children_count
|
||||
Report.result(entity_children_count_matched_result, entity_children_count_matched)
|
||||
|
||||
if not entity_children_count_matched:
|
||||
Report.info(f"Entity '{entity_id.ToString()}' actual children count: {len(children_entity_ids)}. Expected children count: {expected_children_count}")
|
||||
|
||||
return entity_children_count_matched
|
||||
|
||||
def open_base_tests_level():
|
||||
helper.init_idle()
|
||||
helper.open_level("Prefab", "Base")
|
||||
+1515
File diff suppressed because it is too large
Load Diff
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c3384e88cd0f47ab8ec81eb75101b02ff9675c76dc070c726a9f3f39f1b2b2df
|
||||
size 4994448
|
||||
+160
-38
@@ -1,16 +1,34 @@
|
||||
ProductName: single_mesh_multiple_materials.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
single_mesh_multiple_materials
|
||||
Node Name: Torus
|
||||
Node Path: RootNode.Torus
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Torus_1
|
||||
Node Path: RootNode.Torus.Torus_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 2304. Hash: 12560656679477605282
|
||||
Normals: Count 2304. Hash: 14915939258818888021
|
||||
FaceList: Count 1152. Hash: 3035560221708475304
|
||||
FaceMaterialIds: Count 1152. Hash: 2033667258170256242
|
||||
|
||||
Node Name: Torus_optimized
|
||||
Node Path: RootNode.Torus_optimized
|
||||
Node Name: Torus_2
|
||||
Node Path: RootNode.Torus.Torus_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Torus_1_optimized
|
||||
Node Path: RootNode.Torus.Torus_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 2304. Hash: 12560656679477605282
|
||||
Normals: Count 2304. Hash: 14915939258818888021
|
||||
@@ -18,7 +36,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 1152. Hash: 2033667258170256242
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Torus.transform
|
||||
Node Path: RootNode.Torus.Torus_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -27,13 +45,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Torus.UV0
|
||||
Node Path: RootNode.Torus.Torus_1.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 2304. Hash: 6069930558565069665
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: OrangeMaterial
|
||||
Node Path: RootNode.Torus.OrangeMaterial
|
||||
Node Path: RootNode.Torus.Torus_1.OrangeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: OrangeMaterial
|
||||
UniqueId: 10937477720113828524
|
||||
@@ -63,7 +81,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SecondTextureMaterial
|
||||
Node Path: RootNode.Torus.SecondTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_1.SecondTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondTextureMaterial
|
||||
UniqueId: 16601413836225607467
|
||||
@@ -93,7 +111,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: FirstTextureMaterial
|
||||
Node Path: RootNode.Torus.FirstTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_1.FirstTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: FirstTextureMaterial
|
||||
UniqueId: 2580020563915538382
|
||||
@@ -122,40 +140,21 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Torus.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Torus.Torus_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 2304. Hash: 17641066831235827929
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Torus.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Torus.Torus_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 2304. Hash: 6274616552656695154
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Torus_optimized.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 2304. Hash: 6069930558565069665
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Torus_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 2304. Hash: 17641066831235827929
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Torus_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 2304. Hash: 6274616552656695154
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Torus_optimized.transform
|
||||
Node Path: RootNode.Torus.Torus_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -163,8 +162,14 @@ Node Type: TransformData
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Torus.Torus_2.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 2304. Hash: 6069930558565069665
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: OrangeMaterial
|
||||
Node Path: RootNode.Torus_optimized.OrangeMaterial
|
||||
Node Path: RootNode.Torus.Torus_2.OrangeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: OrangeMaterial
|
||||
UniqueId: 10937477720113828524
|
||||
@@ -194,7 +199,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SecondTextureMaterial
|
||||
Node Path: RootNode.Torus_optimized.SecondTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_2.SecondTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondTextureMaterial
|
||||
UniqueId: 16601413836225607467
|
||||
@@ -224,7 +229,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: FirstTextureMaterial
|
||||
Node Path: RootNode.Torus_optimized.FirstTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_2.FirstTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: FirstTextureMaterial
|
||||
UniqueId: 2580020563915538382
|
||||
@@ -253,3 +258,120 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXTestTexture.png
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 2304. Hash: 6069930558565069665
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 2304. Hash: 17641066831235827929
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 2304. Hash: 6274616552656695154
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: OrangeMaterial
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.OrangeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: OrangeMaterial
|
||||
UniqueId: 10937477720113828524
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.113346, 0.000000>
|
||||
SpecularColor: < 0.800000, 0.113346, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SecondTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.SecondTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondTextureMaterial
|
||||
UniqueId: 16601413836225607467
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: OneMeshMultipleMaterials/FBXSecondTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: FirstTextureMaterial
|
||||
Node Path: RootNode.Torus.Torus_1_optimized.FirstTextureMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: FirstTextureMaterial
|
||||
UniqueId: 2580020563915538382
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: OneMeshMultipleMaterials/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshMultipleMaterials/FBXTestTexture.png
|
||||
|
||||
+97
-34
@@ -1,16 +1,34 @@
|
||||
ProductName: OneMeshOneMaterial.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
OneMeshOneMaterial
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
@@ -18,7 +36,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -27,13 +45,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.UVMap
|
||||
Node Path: RootNode.Cube.Cube_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: CubeMaterial
|
||||
Node Path: RootNode.Cube.CubeMaterial
|
||||
Node Path: RootNode.Cube.Cube_1.CubeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: CubeMaterial
|
||||
UniqueId: 973942033197978066
|
||||
@@ -62,40 +80,21 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -103,8 +102,72 @@ Node Type: TransformData
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: CubeMaterial
|
||||
Node Path: RootNode.Cube_optimized.CubeMaterial
|
||||
Node Path: RootNode.Cube.Cube_2.CubeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: CubeMaterial
|
||||
UniqueId: 973942033197978066
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 36.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: OneMeshOneMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: OneMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: CubeMaterial
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.CubeMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: CubeMaterial
|
||||
UniqueId: 973942033197978066
|
||||
|
||||
+437
-213
@@ -1,64 +1,109 @@
|
||||
ProductName: lodtest.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
lodtest
|
||||
Node Name: lodtest
|
||||
Node Path: RootNode.lodtest
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: lodtest_1
|
||||
Node Path: RootNode.lodtest.lodtest_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: lodtest_lod3
|
||||
Node Path: RootNode.lodtest_lod3
|
||||
Node Name: lodtest_2
|
||||
Node Path: RootNode.lodtest.lodtest_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: lodtest_1_optimized
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: lodtest_lod3_1
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 1984. Hash: 6600975913707260286
|
||||
Normals: Count 1984. Hash: 2708036977889843831
|
||||
FaceList: Count 960. Hash: 10390417165025722786
|
||||
FaceMaterialIds: Count 960. Hash: 12510609185544665964
|
||||
|
||||
Node Name: lodtest_lod2
|
||||
Node Path: RootNode.lodtest_lod2
|
||||
Node Name: lodtest_lod3_2
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 2.298166, 0.000000>
|
||||
|
||||
Node Name: lodtest_lod3_1_optimized
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 1984. Hash: 6600975913707260286
|
||||
Normals: Count 1984. Hash: 2708036977889843831
|
||||
FaceList: Count 960. Hash: 10390417165025722786
|
||||
FaceMaterialIds: Count 960. Hash: 12510609185544665964
|
||||
|
||||
Node Name: lodtest_lod2_1
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 240. Hash: 219362421205407416
|
||||
Normals: Count 240. Hash: 11195242321181199939
|
||||
FaceList: Count 80. Hash: 11130917988116538993
|
||||
FaceMaterialIds: Count 80. Hash: 4190892684086530065
|
||||
|
||||
Node Name: lodtest_lod1
|
||||
Node Path: RootNode.lodtest_lod1
|
||||
Node Name: lodtest_lod2_2
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, -0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, -2.211498, 0.000000>
|
||||
|
||||
Node Name: lodtest_lod2_1_optimized
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 240. Hash: 219362421205407416
|
||||
Normals: Count 240. Hash: 11195242321181199939
|
||||
FaceList: Count 80. Hash: 11130917988116538993
|
||||
FaceMaterialIds: Count 80. Hash: 4190892684086530065
|
||||
|
||||
Node Name: lodtest_lod1_1
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 1283526254311745349
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
FaceList: Count 124. Hash: 3728991722746136013
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: lodtest_optimized
|
||||
Node Path: RootNode.lodtest_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
Node Name: lodtest_lod1_2
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 2.410331, 0.000000, 0.000000>
|
||||
|
||||
Node Name: lodtest_lod3_optimized
|
||||
Node Path: RootNode.lodtest_lod3_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 1984. Hash: 6600975913707260286
|
||||
Normals: Count 1984. Hash: 2708036977889843831
|
||||
FaceList: Count 960. Hash: 10390417165025722786
|
||||
FaceMaterialIds: Count 960. Hash: 12510609185544665964
|
||||
|
||||
Node Name: lodtest_lod2_optimized
|
||||
Node Path: RootNode.lodtest_lod2_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 240. Hash: 219362421205407416
|
||||
Normals: Count 240. Hash: 11195242321181199939
|
||||
FaceList: Count 80. Hash: 11130917988116538993
|
||||
FaceMaterialIds: Count 80. Hash: 4190892684086530065
|
||||
|
||||
Node Name: lodtest_lod1_optimized
|
||||
Node Path: RootNode.lodtest_lod1_optimized
|
||||
Node Name: lodtest_lod1_1_optimized
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 7921557352486854444
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
@@ -66,7 +111,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest.transform
|
||||
Node Path: RootNode.lodtest.lodtest_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -75,13 +120,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest.UVMap
|
||||
Node Path: RootNode.lodtest.lodtest_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.lodtest.Material
|
||||
Node Path: RootNode.lodtest.lodtest_1.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
@@ -110,21 +155,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest.lodtest_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest.lodtest_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod3.transform
|
||||
Node Path: RootNode.lodtest.lodtest_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest.lodtest_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.lodtest.lodtest_2.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 36.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.lodtest.lodtest_1_optimized.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 36.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -133,13 +281,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 2.298166, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod3.UVMap
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 1984. Hash: 14119273880200542497
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod3.DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -168,21 +316,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod3.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 1984. Hash: 5664494957869921957
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod3.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 1984. Hash: 5048878728906162461
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod2.transform
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 2.298166, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 1984. Hash: 14119273880200542497
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_2.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 1984. Hash: 14119273880200542497
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 1984. Hash: 5664494957869921957
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 1984. Hash: 5048878728906162461
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 2.298166, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod3.lodtest_lod3_1_optimized.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, -0.000000, 0.000000>
|
||||
@@ -191,13 +442,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, -2.211498, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod2.UVMap
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 240. Hash: 13702273589593616598
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod2.DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -226,21 +477,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod2.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 240. Hash: 1390901212717410749
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod2.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 240. Hash: 1379238632949267281
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod1.transform
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, -0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, -2.211498, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 240. Hash: 13702273589593616598
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_2.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 240. Hash: 13702273589593616598
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 240. Hash: 1390901212717410749
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 240. Hash: 1379238632949267281
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, -0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, -2.211498, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod2.lodtest_lod2_1_optimized.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -249,13 +603,13 @@ Node Type: TransformData
|
||||
Transl: < 2.410331, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod1.UVMap
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod1.DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -284,107 +638,36 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod1.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 11165448242141781141
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod1.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 7987814487334449536
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_optimized.transform
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.lodtest_optimized.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 36.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
Transl: < 2.410331, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod3_optimized.UVMap
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 1984. Hash: 14119273880200542497
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod3_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 1984. Hash: 5664494957869921957
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod3_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 1984. Hash: 5048878728906162461
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod3_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 2.298166, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod3_optimized.DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_2.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -414,84 +697,26 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod2_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 240. Hash: 13702273589593616598
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod2_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 240. Hash: 1390901212717410749
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod2_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 240. Hash: 1379238632949267281
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod2_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, -0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, -2.211498, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod2_optimized.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.lodtest_lod1_optimized.UVMap
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 13790301632763350589
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod1_optimized.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 7293001660047850407
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.lodtest_lod1_optimized.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 2874689498270494796
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.lodtest_lod1_optimized.transform
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -500,7 +725,7 @@ Node Type: TransformData
|
||||
Transl: < 2.410331, 0.000000, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod1_optimized.DefaultMaterial
|
||||
Node Path: RootNode.lodtest_lod1.lodtest_lod1_1_optimized.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -528,4 +753,3 @@ Node Type: MaterialData
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
|
||||
+167
-51
@@ -1,32 +1,59 @@
|
||||
ProductName: physicstest.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
physicstest
|
||||
Node Name: Cone
|
||||
Node Path: RootNode.Cone
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cone_1
|
||||
Node Path: RootNode.Cone.Cone_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 128. Hash: 7714223793259938211
|
||||
Normals: Count 128. Hash: 2352668179264002707
|
||||
FaceList: Count 62. Hash: 14563017593520122982
|
||||
FaceMaterialIds: Count 62. Hash: 12234218120113875284
|
||||
|
||||
Node Name: Cube_phys
|
||||
Node Path: RootNode.Cube_phys
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 3478903613105670818
|
||||
Normals: Count 24. Hash: 7251512570672401149
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
Node Name: Cone_2
|
||||
Node Path: RootNode.Cone.Cone_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cone_optimized
|
||||
Node Path: RootNode.Cone_optimized
|
||||
Node Name: Cone_1_optimized
|
||||
Node Path: RootNode.Cone.Cone_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 128. Hash: 10174710861731544050
|
||||
Normals: Count 128. Hash: 2352668179264002707
|
||||
FaceList: Count 62. Hash: 11332459830831720586
|
||||
FaceMaterialIds: Count 62. Hash: 12234218120113875284
|
||||
|
||||
Node Name: Cube_phys_1
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 3478903613105670818
|
||||
Normals: Count 24. Hash: 7251512570672401149
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cube_phys_2
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone.transform
|
||||
Node Path: RootNode.Cone.Cone_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -35,13 +62,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cone.UVMap
|
||||
Node Path: RootNode.Cone.Cone_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 10171083346831193808
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.Cone.DefaultMaterial
|
||||
Node Path: RootNode.Cone.Cone_1.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -70,21 +97,21 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 128. Hash: 14351734474754285313
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 128. Hash: 15997251922861304891
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_phys.transform
|
||||
Node Path: RootNode.Cone.Cone_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -93,13 +120,116 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_phys.UVMap
|
||||
Node Path: RootNode.Cone.Cone_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 10171083346831193808
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.Cone.Cone_2.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 7873368003484215433
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 128. Hash: 12937806066914201637
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 128. Hash: 873786942732834087
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 0.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 13623018071435219250
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.Cube_phys.DefaultMaterial
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -128,40 +258,21 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_phys.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 11965897353301448436
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_phys.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 17515781720544086759
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cone_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 7873368003484215433
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 128. Hash: 12937806066914201637
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 128. Hash: 873786942732834087
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone_optimized.transform
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -169,8 +280,14 @@ Node Type: TransformData
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 13623018071435219250
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: DefaultMaterial
|
||||
Node Path: RootNode.Cone_optimized.DefaultMaterial
|
||||
Node Path: RootNode.Cube_phys.Cube_phys_2.DefaultMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: DefaultMaterial
|
||||
UniqueId: 3809502407269006983
|
||||
@@ -198,4 +315,3 @@ Node Type: MaterialData
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
|
||||
+271
-95
@@ -1,32 +1,59 @@
|
||||
ProductName: multiple_mesh_linked_materials.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
multiple_mesh_linked_materials
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7113802799051126666
|
||||
|
||||
Node Name: Cone
|
||||
Node Path: RootNode.Cone
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7113802799051126666
|
||||
|
||||
Node Name: Cone_1
|
||||
Node Path: RootNode.Cone.Cone_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 128. Hash: 12506421592104186200
|
||||
Normals: Count 128. Hash: 367461522682321485
|
||||
FaceList: Count 62. Hash: 13208951979626973193
|
||||
FaceMaterialIds: Count 62. Hash: 15454348664434923102
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7113802799051126666
|
||||
Node Name: Cone_2
|
||||
Node Path: RootNode.Cone.Cone_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 2.000000>
|
||||
|
||||
Node Name: Cone_optimized
|
||||
Node Path: RootNode.Cone_optimized
|
||||
Node Name: Cone_1_optimized
|
||||
Node Path: RootNode.Cone.Cone_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 128. Hash: 14946490408303214595
|
||||
Normals: Count 128. Hash: 367461522682321485
|
||||
@@ -34,7 +61,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 62. Hash: 15454348664434923102
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -43,13 +70,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cube.UV0
|
||||
Node Path: RootNode.Cube.Cube_1.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cube.SharedBlack
|
||||
Node Path: RootNode.Cube.Cube_1.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
@@ -79,7 +106,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cube.SharedOrange
|
||||
Node Path: RootNode.Cube.Cube_1.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
@@ -108,21 +135,184 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cube.Cube_2.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cube.Cube_2.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.000000, 0.000000, 0.000000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cube.Cube_2.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.139382, 0.014429>
|
||||
SpecularColor: < 0.800000, 0.139382, 0.014429>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.000000, 0.000000, 0.000000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.139382, 0.014429>
|
||||
SpecularColor: < 0.800000, 0.139382, 0.014429>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone.Cone_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -131,13 +321,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 2.000000>
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cone.UV0
|
||||
Node Path: RootNode.Cone.Cone_1.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 10291654057525777310
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cone.SharedOrange
|
||||
Node Path: RootNode.Cone.Cone_1.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
@@ -167,7 +357,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cone.SharedBlack
|
||||
Node Path: RootNode.Cone.Cone_1.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
@@ -196,79 +386,36 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 128. Hash: 12695232913942738512
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 128. Hash: 9034210764777745751
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cube_optimized.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cone.Cone_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
Transl: < 0.000000, 0.000000, 2.000000>
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cube_optimized.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.000000, 0.000000, 0.000000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cone.Cone_2.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 10291654057525777310
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cube_optimized.SharedOrange
|
||||
Node Path: RootNode.Cone.Cone_2.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
@@ -297,27 +444,57 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cone.Cone_2.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.000000, 0.000000, 0.000000>
|
||||
SpecularColor: < 0.000000, 0.000000, 0.000000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UV0
|
||||
Node Path: RootNode.Cone_optimized.UV0
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.UV0
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 128. Hash: 7173974213247584731
|
||||
UVCustomName: UV0
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone_optimized.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 128. Hash: 10740776669168782230
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cone_optimized.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 128. Hash: 6990068477421150065
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cone_optimized.transform
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -326,7 +503,7 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 2.000000>
|
||||
|
||||
Node Name: SharedOrange
|
||||
Node Path: RootNode.Cone_optimized.SharedOrange
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.SharedOrange
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedOrange
|
||||
UniqueId: 9470651048605569128
|
||||
@@ -356,7 +533,7 @@ Node Type: MaterialData
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: SharedBlack
|
||||
Node Path: RootNode.Cone_optimized.SharedBlack
|
||||
Node Path: RootNode.Cone.Cone_1_optimized.SharedBlack
|
||||
Node Type: MaterialData
|
||||
MaterialName: SharedBlack
|
||||
UniqueId: 5248829540156873090
|
||||
@@ -384,4 +561,3 @@ Node Type: MaterialData
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
|
||||
+179
-63
@@ -1,32 +1,59 @@
|
||||
ProductName: multiple_mesh_one_material.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
multiple_mesh_one_material
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder
|
||||
Node Path: RootNode.Cylinder
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder_1
|
||||
Node Path: RootNode.Cylinder.Cylinder_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 1283526254311745349
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
FaceList: Count 124. Hash: 3728991722746136013
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
Node Name: Cylinder_2
|
||||
Node Path: RootNode.Cylinder.Cylinder_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cylinder_optimized
|
||||
Node Path: RootNode.Cylinder_optimized
|
||||
Node Name: Cylinder_1_optimized
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 7921557352486854444
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
@@ -34,7 +61,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -43,13 +70,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.UVMap
|
||||
Node Path: RootNode.Cube.Cube_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -78,21 +105,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_2.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -101,13 +231,13 @@ Node Type: TransformData
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cylinder.SingleMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -136,49 +266,36 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 11165448242141781141
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 7987814487334449536
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube_optimized.SingleMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -208,26 +325,26 @@ Node Type: MaterialData
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder_optimized.UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 13790301632763350589
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder_optimized.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 7293001660047850407
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder_optimized.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 2874689498270494796
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder_optimized.transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -236,7 +353,7 @@ Node Type: TransformData
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cylinder_optimized.SingleMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -264,4 +381,3 @@ Node Type: MaterialData
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshOneMaterial/FBXTestTexture.png
|
||||
|
||||
|
||||
+186
-70
@@ -1,32 +1,59 @@
|
||||
ProductName: multiple_mesh_multiple_material.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
multiple_mesh_multiple_material
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder
|
||||
Node Path: RootNode.Cylinder
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder_1
|
||||
Node Path: RootNode.Cylinder.Cylinder_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 1283526254311745349
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
FaceList: Count 124. Hash: 3728991722746136013
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
Node Name: Cylinder_2
|
||||
Node Path: RootNode.Cylinder.Cylinder_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cylinder_optimized
|
||||
Node Path: RootNode.Cylinder_optimized
|
||||
Node Name: Cylinder_1_optimized
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 7921557352486854444
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
@@ -34,7 +61,7 @@ Node Type: MeshData
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -43,13 +70,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.UVMap
|
||||
Node Path: RootNode.Cube.Cube_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -78,21 +105,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_2.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -101,13 +231,13 @@ Node Type: TransformData
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SecondMaterial
|
||||
Node Path: RootNode.Cylinder.SecondMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.SecondMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondMaterial
|
||||
UniqueId: 5229255358802505087
|
||||
@@ -136,55 +266,42 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 11165448242141781141
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 7987814487334449536
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube_optimized.SingleMaterial
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SecondMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.SecondMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
MaterialName: SecondMaterial
|
||||
UniqueId: 5229255358802505087
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
@@ -197,7 +314,7 @@ Node Type: MaterialData
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
@@ -205,29 +322,29 @@ Node Type: MaterialData
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder_optimized.UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 13790301632763350589
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder_optimized.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 7293001660047850407
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder_optimized.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 2874689498270494796
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder_optimized.transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -236,7 +353,7 @@ Node Type: TransformData
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SecondMaterial
|
||||
Node Path: RootNode.Cylinder_optimized.SecondMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_1_optimized.SecondMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondMaterial
|
||||
UniqueId: 5229255358802505087
|
||||
@@ -264,4 +381,3 @@ Node Type: MaterialData
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
|
||||
|
||||
+175
-59
@@ -1,32 +1,59 @@
|
||||
ProductName: multiple_mesh_multiple_material.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
multiple_mesh_multiple_material
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder
|
||||
Node Path: RootNode.Cylinder
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
|
||||
Node Name: Cylinder_1
|
||||
Node Path: RootNode.Cylinder.Cylinder_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 192. Hash: 1283526254311745349
|
||||
Normals: Count 192. Hash: 1873340970602844856
|
||||
FaceList: Count 124. Hash: 3728991722746136013
|
||||
FaceMaterialIds: Count 124. Hash: 2372486708814455910
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24. Hash: 8661923109306356285
|
||||
Normals: Count 24. Hash: 5807525742165000561
|
||||
FaceList: Count 12. Hash: 9888799799190757436
|
||||
FaceMaterialIds: Count 12. Hash: 7110546404675862471
|
||||
Node Name: Cylinder_2
|
||||
Node Path: RootNode.Cylinder.Cylinder_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -35,13 +62,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.UVMap
|
||||
Node Path: RootNode.Cube.Cube_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
@@ -70,21 +97,124 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_2.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.SingleMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -93,13 +223,13 @@ Node Type: TransformData
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SecondMaterial
|
||||
Node Path: RootNode.Cylinder.SecondMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.SecondMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SecondMaterial
|
||||
UniqueId: 5229255358802505087
|
||||
@@ -128,55 +258,42 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 192. Hash: 11165448242141781141
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cylinder.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cylinder.Cylinder_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 192. Hash: 7987814487334449536
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24. Hash: 1622169145591646736
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24. Hash: 13438447437797057049
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24. Hash: 11372562338897179017
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
Transl: <-4.388482, 0.000000, 0.000000>
|
||||
|
||||
Node Name: SingleMaterial
|
||||
Node Path: RootNode.Cube_optimized.SingleMaterial
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 192. Hash: 27253578623892681
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: SecondMaterial
|
||||
Node Path: RootNode.Cylinder.Cylinder_2.SecondMaterial
|
||||
Node Type: MaterialData
|
||||
MaterialName: SingleMaterial
|
||||
UniqueId: 14432700632681398127
|
||||
MaterialName: SecondMaterial
|
||||
UniqueId: 5229255358802505087
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.814049, 0.814049, 0.814049>
|
||||
SpecularColor: < 0.814049, 0.814049, 0.814049>
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 25.000000
|
||||
@@ -189,7 +306,7 @@ Node Type: MaterialData
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
DiffuseTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
@@ -197,5 +314,4 @@ Node Type: MaterialData
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXTestTexture.png
|
||||
|
||||
BaseColorTexture: TwoMeshTwoMaterial/FBXSecondTestTexture.png
|
||||
|
||||
+107
-39
@@ -1,30 +1,48 @@
|
||||
ProductName: vertexcolor.dbgsg
|
||||
debugSceneGraphVersion: 1
|
||||
vertexcolor
|
||||
Node Name: Cube
|
||||
Node Path: RootNode.Cube
|
||||
Node Name: RootNode
|
||||
Node Path: RootNode
|
||||
Node Type: RootBoneData
|
||||
WorldTransform:
|
||||
BasisX: < 1.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, 1.000000, 0.000000>
|
||||
BasisZ: < 0.000000, 0.000000, 1.000000>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1
|
||||
Node Path: RootNode.Cube.Cube_1
|
||||
Node Type: MeshData
|
||||
Positions: Count 24576. Hash: 7031773714680283213
|
||||
Normals: Count 24576. Hash: 8968157737282745201
|
||||
FaceList: Count 12288. Hash: 13183441914179219962
|
||||
FaceMaterialIds: Count 12288. Hash: 12545154121625736090
|
||||
|
||||
Node Name: Cube_optimized
|
||||
Node Path: RootNode.Cube_optimized
|
||||
Node Name: Cube_2
|
||||
Node Path: RootNode.Cube.Cube_2
|
||||
Node Type: BoneData
|
||||
WorldTransform:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Cube_1_optimized
|
||||
Node Path: RootNode.Cube.Cube_1_optimized
|
||||
Node Type: MeshData
|
||||
Positions: Count 24576. Hash: 7031773714680283213
|
||||
Normals: Count 24576. Hash: 8968157737282745201
|
||||
FaceList: Count 12288. Hash: 13183441914179219962
|
||||
Positions: Count 6376. Hash: 10806296444120211070
|
||||
Normals: Count 6376. Hash: 3814626075063770280
|
||||
FaceList: Count 12288. Hash: 15242182080304859208
|
||||
FaceMaterialIds: Count 12288. Hash: 12545154121625736090
|
||||
|
||||
Node Name: Col0
|
||||
Node Path: RootNode.Cube.Col0
|
||||
Node Path: RootNode.Cube.Cube_1.Col0
|
||||
Node Type: MeshVertexColorData
|
||||
Colors: Count 24576. Hash: 17169952715183318502
|
||||
ColorsCustomName:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.transform
|
||||
Node Path: RootNode.Cube.Cube_1.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -33,13 +51,13 @@ Node Type: TransformData
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.UVMap
|
||||
Node Path: RootNode.Cube.Cube_1.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24576. Hash: 4554678369329207802
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.Cube.Material
|
||||
Node Path: RootNode.Cube.Cube_1.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
@@ -68,46 +86,27 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.TangentSet_MikkT_0
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24576. Hash: 13321090379606717973
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube.BitangentSet_MikkT_0
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24576. Hash: 17217515414004886507
|
||||
TangentSpace: 1
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24576. Hash: 4554678369329207802
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.TangentSet_MikkT_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 24576. Hash: 13321090379606717973
|
||||
TangentSpace: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_MikkT_0
|
||||
Node Path: RootNode.Cube_optimized.BitangentSet_MikkT_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 24576. Hash: 17217515414004886507
|
||||
TangentSpace: 1
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: Col0
|
||||
Node Path: RootNode.Cube_optimized.Col0
|
||||
Node Path: RootNode.Cube.Cube_2.Col0
|
||||
Node Type: MeshVertexColorData
|
||||
Colors: Count 24576. Hash: 17169952715183318502
|
||||
ColorsCustomName:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube_optimized.transform
|
||||
Node Path: RootNode.Cube.Cube_2.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
@@ -115,8 +114,14 @@ Node Type: TransformData
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_2.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 24576. Hash: 4554678369329207802
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.Cube_optimized.Material
|
||||
Node Path: RootNode.Cube.Cube_2.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
@@ -145,3 +150,66 @@ Node Type: MaterialData
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Node Name: UVMap
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.UVMap
|
||||
Node Type: MeshVertexUVData
|
||||
UVs: Count 6376. Hash: 12957930967905951851
|
||||
UVCustomName: UVMap
|
||||
|
||||
Node Name: TangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.TangentSet_0
|
||||
Node Type: MeshVertexTangentData
|
||||
Tangents: Count 6376. Hash: 7712841033379094373
|
||||
GenerationMethod: 1
|
||||
SetIndex: 0
|
||||
|
||||
Node Name: BitangentSet_0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.BitangentSet_0
|
||||
Node Type: MeshVertexBitangentData
|
||||
Bitangents: Count 6376. Hash: 12547048737213169362
|
||||
GenerationMethod: 1
|
||||
|
||||
Node Name: Col0
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.Col0
|
||||
Node Type: MeshVertexColorData
|
||||
Colors: Count 6376. Hash: 8761962599807935159
|
||||
ColorsCustomName:
|
||||
|
||||
Node Name: transform
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.transform
|
||||
Node Type: TransformData
|
||||
Matrix:
|
||||
BasisX: < 100.000000, 0.000000, 0.000000>
|
||||
BasisY: < 0.000000, -0.000016, 100.000000>
|
||||
BasisZ: < 0.000000, -100.000000, -0.000016>
|
||||
Transl: < 0.000000, 0.000000, 0.000000>
|
||||
|
||||
Node Name: Material
|
||||
Node Path: RootNode.Cube.Cube_1_optimized.Material
|
||||
Node Type: MaterialData
|
||||
MaterialName: Material
|
||||
UniqueId: 11127505492038345244
|
||||
IsNoDraw: false
|
||||
DiffuseColor: < 0.800000, 0.800000, 0.800000>
|
||||
SpecularColor: < 0.800000, 0.800000, 0.800000>
|
||||
EmissiveColor: < 0.000000, 0.000000, 0.000000>
|
||||
Opacity: 1.000000
|
||||
Shininess: 36.000000
|
||||
UseColorMap: Not set
|
||||
BaseColor: Not set
|
||||
UseMetallicMap: Not set
|
||||
MetallicFactor: Not set
|
||||
UseRoughnessMap: Not set
|
||||
RoughnessFactor: Not set
|
||||
UseEmissiveMap: Not set
|
||||
EmissiveIntensity: Not set
|
||||
UseAOMap: Not set
|
||||
DiffuseTexture:
|
||||
SpecularTexture:
|
||||
BumpTexture:
|
||||
NormalTexture:
|
||||
MetallicTexture:
|
||||
RoughnessTexture:
|
||||
AmbientOcclusionTexture:
|
||||
EmissiveTexture:
|
||||
BaseColorTexture:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user