summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2018-04-19 13:19:28 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-04-19 13:51:37 +0000
commita261818093dfa6f3c6bf83cccb3c1a068596c575 (patch)
treec5d286a34962e8793a9fbc233fd697ae921e46dc
parentf350435221b1e638997cf86a5aa076cf0a744aa1 (diff)
Copy IBL tests to tests/scenes as well
It is cheaper to have a copy of them than to repeatedly waste time on trying to dig them out from the lancelot test set. Change-Id: I9857008a6187131cdd47896f5623862be441bcd7 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
-rw-r--r--tests/scenes/lighting/copper.material178
-rw-r--r--tests/scenes/lighting/imagebasedlighting.uip169
-rw-r--r--tests/scenes/lighting/lightmaps_custom_material.uip40
-rw-r--r--tests/scenes/lighting/lightmaps_default_material.uip96
-rw-r--r--tests/scenes/lighting/lightmaps_referenced_material.uip51
-rw-r--r--tests/scenes/lighting/maps/Cork1.jpgbin0 -> 79513 bytes
-rw-r--r--tests/scenes/lighting/maps/OpenfootageNET_Gerlos-512.hdrbin0 -> 401151 bytes
-rw-r--r--tests/scenes/lighting/maps/OpenfootageNET_fieldairport-512.hdrbin0 -> 385303 bytes
-rw-r--r--tests/scenes/lighting/maps/OpenfootageNET_lowerAustria01-512.hdrbin0 -> 407359 bytes
-rw-r--r--tests/scenes/lighting/maps/core_lightmap_radiosity.jpgbin0 -> 47989 bytes
-rw-r--r--tests/scenes/lighting/maps/core_lightmap_shadow.jpgbin0 -> 7681 bytes
-rw-r--r--tests/scenes/lighting/maps/cork_lightmap_indirect.jpgbin0 -> 9957 bytes
-rw-r--r--tests/scenes/lighting/materials/copper.material178
-rw-r--r--tests/scenes/lighting/models/testCube/meshes/Cube.meshbin0 -> 2372 bytes
-rw-r--r--tests/scenes/lighting/models/testCube/testCube.import18
15 files changed, 730 insertions, 0 deletions
diff --git a/tests/scenes/lighting/copper.material b/tests/scenes/lighting/copper.material
new file mode 100644
index 0000000..a4fdfc7
--- /dev/null
+++ b/tests/scenes/lighting/copper.material
@@ -0,0 +1,178 @@
+<Material name="copper" version="1.0">
+ <MetaData >
+ <Property formalName="Environment Map" name="uEnvironmentTexture" description="Environment texture for the material" type="Texture" filter="linear" minfilter="linearMipmapLinear" clamp="repeat" usage="environment" default="./maps/materials/spherical_checker.png" category="Material"/>
+ <Property formalName="Enable Environment" name="uEnvironmentMappingEnabled" description="Enable environment mapping" type="Boolean" default="True" category="Material"/>
+ <Property formalName="Baked Shadow Map" name="uBakedShadowTexture" description="Baked shadow texture for the material" type="Texture" filter="linear" minfilter="linearMipmapLinear" clamp="repeat" usage="shadow" default="./maps/materials/shadow.png" category="Material"/>
+ <Property formalName="Enable Shadow Mapping" name="uShadowMappingEnabled" description="Enable shadow mapping" type="Boolean" default="False" category="Material"/>
+ <Property formalName="Roughness" name="roughness" type="Float" min="0.000000" max="1.000000" default="0.000000" description="Roughness of the material. 0 is fully specular, 1 is fully diffuse" category="Material"/>
+ <Property formalName="Metal Color" name="metal_color" type="Color" default="0.805 0.395 0.305" description="Color of the material" category="Material"/>
+ </MetaData>
+ <Shaders type="GLSL" version="330">
+ <Shader>
+ <Shared> </Shared>
+<VertexShader>
+ </VertexShader>
+ <FragmentShader>
+
+// add enum defines
+#define scatter_reflect 0
+#define scatter_transmit 1
+#define scatter_reflect_transmit 2
+
+#define QT3DS_ENABLE_UV0 1
+#define QT3DS_ENABLE_WORLD_POSITION 1
+#define QT3DS_ENABLE_TEXTAN 1
+#define QT3DS_ENABLE_BINORMAL 0
+
+#include "vertexFragmentBase.glsllib"
+
+// set shader output
+out vec4 fragColor;
+
+// add structure defines
+struct layer_result
+{
+ vec4 base;
+ vec4 layer;
+ mat3 tanFrame;
+};
+
+
+// temporary declarations
+ vec4 tmpShadowTerm;
+
+layer_result layers[1];
+
+#include "SSAOCustomMaterial.glsllib"
+#include "sampleLight.glsllib"
+#include "sampleProbe.glsllib"
+#include "sampleArea.glsllib"
+#include "square.glsllib"
+#include "calculateRoughness.glsllib"
+#include "evalBakedShadowMap.glsllib"
+#include "evalEnvironmentMap.glsllib"
+#include "luminance.glsllib"
+#include "microfacetBSDF.glsllib"
+#include "physGlossyBSDF.glsllib"
+#include "simpleGlossyBSDF.glsllib"
+#include "fresnelLayer.glsllib"
+
+bool evalTwoSided()
+{
+ return( false );
+}
+
+vec3 computeFrontMaterialEmissive()
+{
+ return( vec3( 0, 0, 0 ) );
+}
+
+void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * microfacetBSDF( layers[0].tanFrame, lightDir, viewDir, lightSpecular, materialIOR, roughness, roughness, scatter_reflect );
+
+#endif
+}
+
+void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layers[0].tanFrame, varWorldPos, lightIdx, viewDir, roughness, roughness );
+
+#endif
+}
+
+void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
+{
+#if !QT3DS_ENABLE_LIGHT_PROBE
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * microfacetSampledBSDF( layers[0].tanFrame, viewDir, roughness, roughness, scatter_reflect );
+
+#else
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * sampleGlossyAniso( layers[0].tanFrame, viewDir, roughness, roughness );
+
+#endif
+}
+
+vec3 computeBackMaterialEmissive()
+{
+ return( vec3(0, 0, 0) );
+}
+
+void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
+{
+#if !QT3DS_ENABLE_LIGHT_PROBE
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#else
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+float computeIOR()
+{
+ return( false ? 1.0f : luminance( vec3( 1, 1, 1 ) ) );
+}
+
+float evalCutout()
+{
+ return( 1.000000 );
+}
+
+vec3 computeNormal()
+{
+ return( normal );
+}
+
+void computeTemporaries()
+{
+ tmpShadowTerm = evalBakedShadowMap( texCoord0 );
+}
+
+vec4 computeLayerWeights( in float alpha )
+{
+ vec4 color;
+ color = fresnelLayer( normal, vec3( 25.65, 25.65, 25.65 ), 1.000000, vec4( metal_color, 1.0).rgb, layers[0].layer, layers[0].base, alpha );
+ return color;
+}
+
+
+void initializeLayerVariables(void)
+{
+ // clear layers
+ layers[0].base = vec4(0.0, 0.0, 0.0, 1.0);
+ layers[0].layer = vec4(0.0, 0.0, 0.0, 1.0);
+ layers[0].tanFrame = orthoNormalize( mat3( tangent, cross(normal, tangent), normal ) );
+}
+
+ </FragmentShader>
+ </Shader>
+ </Shaders>
+<Passes >
+ <ShaderKey value="4"/>
+ <LayerKey count="1"/>
+ <Pass >
+ </Pass>
+</Passes>
+</Material>
diff --git a/tests/scenes/lighting/imagebasedlighting.uip b/tests/scenes/lighting/imagebasedlighting.uip
new file mode 100644
index 0000000..53da4cb
--- /dev/null
+++ b/tests/scenes/lighting/imagebasedlighting.uip
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<UIP version="3" >
+ <Project >
+ <ProjectSettings author="" company="" presentationWidth="1920" presentationHeight="1080" maintainAspect="False" >
+ <CustomColors count="16" >#ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff</CustomColors>
+ </ProjectSettings>
+ <Classes >
+ <CustomMaterial id="copper" name="copper" sourcepath="materials/copper.material" />
+ </Classes>
+ <Graph >
+ <Scene id="Scene" >
+ <Layer id="Layer" >
+ <Camera id="Camera" />
+ <Image id="Layer_lightprobe" />
+ <Image id="Layer_lightprobe2" />
+ <Group id="Group" >
+ <Model id="Cylinder" >
+ <ReferencedMaterial id="Default" />
+ </Model>
+ <Model id="Cone" >
+ <CustomMaterial id="Default_001" class="#copper" />
+ </Model>
+ <Model id="Sphere" >
+ <Material id="Default_002" name="Default" />
+ </Model>
+ <Model id="DefaultOverride" >
+ <Material id="Default_003" name="Default" >
+ <Image id="Default_003_iblprobe" />
+ </Material>
+ </Model>
+ <Model id="ReferenceMaterialOverride" >
+ <ReferencedMaterial id="Default_004" >
+ <Image id="Default_004_iblprobe" />
+ </ReferencedMaterial>
+ </Model>
+ <Model id="CustomMaterialOverride" >
+ <CustomMaterial id="Default_005" class="#copper" >
+ <Image id="Default_005_iblprobe" />
+ </CustomMaterial>
+ </Model>
+ <Model id="DefaultMaterialSpecial" >
+ <Material id="Default_006" name="Default" >
+ <Image id="Default_006_iblprobe" />
+ </Material>
+ </Model>
+ <Model id="ReferenceMaterialSpecial" >
+ <ReferencedMaterial id="Default_007" >
+ <Image id="Default_007_iblprobe" />
+ </ReferencedMaterial>
+ </Model>
+ <Model id="CustomMaterialSpecial" >
+ <CustomMaterial id="copper_001" class="#copper" >
+ <Image id="copper_001_iblprobe" />
+ </CustomMaterial>
+ </Model>
+ </Group>
+ </Layer>
+ <Layer id="OneLightProbe" >
+ <Camera id="Camera_001" />
+ <Image id="OneLightProbe_lightprobe" />
+ <Group id="Group_001" >
+ <Model id="ReferenceMaterial" >
+ <ReferencedMaterial id="Default_008" />
+ </Model>
+ <Model id="CustomMaterial" >
+ <CustomMaterial id="copper_002" class="#copper" />
+ </Model>
+ <Model id="DefaultMaterial" >
+ <Material id="Default_009" name="Default" />
+ </Model>
+ <Model id="DefaultOverride_001" >
+ <Material id="Default_010" name="Default" >
+ <Image id="Default_010_iblprobe" />
+ </Material>
+ </Model>
+ <Model id="ReferenceMaterialOverride_001" >
+ <ReferencedMaterial id="Default_011" >
+ <Image id="Default_011_iblprobe" />
+ </ReferencedMaterial>
+ </Model>
+ <Model id="CustomMaterialOverride_001" >
+ <CustomMaterial id="copper_003" class="#copper" >
+ <Image id="copper_003_iblprobe" />
+ </CustomMaterial>
+ </Model>
+ <Model id="DefaultMaterialSpecial_001" >
+ <Material id="Default_012" name="Default" >
+ <Image id="Default_012_iblprobe" />
+ </Material>
+ </Model>
+ <Model id="ReferenceMaterialSpecial_001" >
+ <ReferencedMaterial id="Default_013" >
+ <Image id="Default_013_iblprobe" />
+ </ReferencedMaterial>
+ </Model>
+ <Model id="CustomMaterialSpecial_001" >
+ <CustomMaterial id="copper_004" class="#copper" >
+ <Image id="copper_004_iblprobe" />
+ </CustomMaterial>
+ </Model>
+ </Group>
+ </Layer>
+ </Scene>
+ </Graph>
+ <Logic >
+ <State name="Master Slide" component="#Scene" >
+ <Add ref="#Layer" name="TwoLightProbes" lightprobe="#Layer_lightprobe" lightprobe2="#Layer_lightprobe2" probe2fade="0.33" probebright="1000" width="50" />
+ <Add ref="#Camera" fov="60" />
+ <Add ref="#Layer_lightprobe" mappingmode="Light Probe" sourcepath="maps/OpenfootageNET_fieldairport-512.hdr" />
+ <Add ref="#Layer_lightprobe2" mappingmode="Light Probe" sourcepath="maps/OpenfootageNET_Gerlos-512.hdr" />
+ <State id="Scene-Slide1" name="Slide1" >
+ <Add ref="#Group" name="Group" position="468.305 -129.677 0" scale="2 2 2" />
+ <Add ref="#Cylinder" name="ReferenceMaterial" position="-448.399 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default" name="Default" referencedmaterial="#Default_002" />
+ <Add ref="#Cone" name="CustomMaterial" position="-452.899 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#Default_001" name="Default" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#Sphere" name="DefaultMaterial" position="-441.352 255.317 0" sourcepath="#Sphere" />
+ <Add ref="#Default_002" />
+ <Add ref="#DefaultOverride" name="DefaultOverride" position="-233.489 252.353 0" sourcepath="#Sphere" />
+ <Add ref="#Default_003" iblprobe="#Default_003_iblprobe" />
+ <Add ref="#Default_003_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#ReferenceMaterialOverride" name="ReferenceMaterialOverride" position="-235.717 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default_004" name="Default" iblprobe="#Default_004_iblprobe" referencedmaterial="#Default_002" />
+ <Add ref="#Default_004_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#CustomMaterialOverride" name="CustomMaterialOverride" position="-245.686 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#Default_005" name="Default" iblprobe="#Default_005_iblprobe" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#Default_005_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#DefaultMaterialSpecial" name="DefaultMaterialSpecial" position="-18.5029 255.317 0" sourcepath="#Sphere" />
+ <Add ref="#Default_006" iblprobe="#Default_006_iblprobe" />
+ <Add ref="#Default_006_iblprobe" mappingmode="IBL Override" scaleu="20" scalev="0" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#ReferenceMaterialSpecial" name="ReferenceMaterialSpecial" position="-14.5576 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default_007" name="Default" iblprobe="#Default_007_iblprobe" referencedmaterial="#Default_002" />
+ <Add ref="#Default_007_iblprobe" mappingmode="IBL Override" scaleu="20" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#CustomMaterialSpecial" name="CustomMaterialSpecial" position="-17.4744 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#copper_001" name="Default" iblprobe="#copper_001_iblprobe" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#copper_001_iblprobe" mappingmode="IBL Override" scaleu="20" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#OneLightProbe" name="OneLightProbe" left="50" lightprobe="#OneLightProbe_lightprobe" probe2fade="0" probebright="1000" width="50" />
+ <Add ref="#Camera_001" />
+ <Add ref="#OneLightProbe_lightprobe" mappingmode="Light Probe" sourcepath="maps/OpenfootageNET_fieldairport-512.hdr" />
+ <Add ref="#Group_001" name="Group" position="468.305 -129.677 0" scale="2 2 2" />
+ <Add ref="#ReferenceMaterial" name="ReferenceMaterial" position="-448.399 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default_008" name="Default" referencedmaterial="#Default_009" />
+ <Add ref="#CustomMaterial" name="CustomMaterial" position="-452.899 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#copper_002" name="Default" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#DefaultMaterial" name="DefaultMaterial" position="-441.352 255.317 0" sourcepath="#Sphere" />
+ <Add ref="#Default_009" />
+ <Add ref="#DefaultOverride_001" name="DefaultOverride" position="-233.489 252.353 0" sourcepath="#Sphere" />
+ <Add ref="#Default_010" iblprobe="#Default_010_iblprobe" />
+ <Add ref="#Default_010_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#ReferenceMaterialOverride_001" name="ReferenceMaterialOverride" position="-235.717 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default_011" name="Default" iblprobe="#Default_011_iblprobe" referencedmaterial="#Default_009" />
+ <Add ref="#Default_011_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#CustomMaterialOverride_001" name="CustomMaterialOverride" position="-245.686 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#copper_003" name="Default" iblprobe="#copper_003_iblprobe" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#copper_003_iblprobe" mappingmode="IBL Override" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#DefaultMaterialSpecial_001" name="DefaultMaterialSpecial" position="-18.5029 255.317 0" sourcepath="#Sphere" />
+ <Add ref="#Default_012" iblprobe="#Default_012_iblprobe" />
+ <Add ref="#Default_012_iblprobe" mappingmode="IBL Override" scaleu="20" scalev="0" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#ReferenceMaterialSpecial_001" name="ReferenceMaterialSpecial" position="-14.5576 78.869 0" sourcepath="#Cylinder" />
+ <Add ref="#Default_013" name="Default" iblprobe="#Default_013_iblprobe" referencedmaterial="#Default_009" />
+ <Add ref="#Default_013_iblprobe" mappingmode="IBL Override" scaleu="20" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ <Add ref="#CustomMaterialSpecial_001" name="CustomMaterialSpecial" position="-17.4744 -147.545 0" sourcepath="#Cone" />
+ <Add ref="#copper_004" name="Default" iblprobe="#copper_004_iblprobe" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#copper_004_iblprobe" mappingmode="IBL Override" scaleu="20" sourcepath="maps/OpenfootageNET_lowerAustria01-512.hdr" />
+ </State>
+ </State>
+ </Logic>
+ </Project>
+</UIP>
diff --git a/tests/scenes/lighting/lightmaps_custom_material.uip b/tests/scenes/lighting/lightmaps_custom_material.uip
new file mode 100644
index 0000000..ec99fa7
--- /dev/null
+++ b/tests/scenes/lighting/lightmaps_custom_material.uip
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<UIP version="3" >
+ <Project >
+ <ProjectSettings author="" company="" presentationWidth="1920" presentationHeight="1080" maintainAspect="False" >
+ <CustomColors count="16" >#ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff</CustomColors>
+ </ProjectSettings>
+ <Classes >
+ <CustomMaterial id="copper" name="copper" sourcepath="copper.material" />
+ </Classes>
+ <Graph >
+ <Scene id="Scene" >
+ <Layer id="Layer" >
+ <Camera id="Camera" />
+ <Group id="testCube2" importid="__import__root__" >
+ <Model id="Cube" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <CustomMaterial id="Material" class="#copper" >
+ <Image id="Material_lightmapindirect" />
+ <Image id="Material_lightmapradiosity" />
+ <Image id="Material_lightmapshadow" />
+ </CustomMaterial>
+ </Model>
+ </Group>
+ </Layer>
+ </Scene>
+ </Graph>
+ <Logic >
+ <State name="Master Slide" component="#Scene" >
+ <Add ref="#Layer" />
+ <Add ref="#Camera" />
+ <Add ref="#testCube2" name="everything" importfile="models/testCube/testCube.import" position="8.92529 -33.3906 -88.9147" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material" name="Material" lightmapindirect="#Material_lightmapindirect" lightmapradiosity="#Material_lightmapradiosity" lightmapshadow="#Material_lightmapshadow" uBakedShadowTexture="" uEnvironmentTexture="" />
+ <Add ref="#Material_lightmapindirect" sourcepath="maps/cork_lightmap_indirect.jpg" />
+ <Add ref="#Material_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#Material_lightmapshadow" sourcepath="maps/core_lightmap_shadow.jpg" />
+ <State id="Scene-Everything" name="Everything" />
+ </State>
+ </Logic>
+ </Project>
+</UIP>
diff --git a/tests/scenes/lighting/lightmaps_default_material.uip b/tests/scenes/lighting/lightmaps_default_material.uip
new file mode 100644
index 0000000..f1a335c
--- /dev/null
+++ b/tests/scenes/lighting/lightmaps_default_material.uip
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<UIP version="3" >
+ <Project >
+ <ProjectSettings author="" company="" presentationWidth="1920" presentationHeight="1080" maintainAspect="False" >
+ <CustomColors count="16" >#ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff</CustomColors>
+ </ProjectSettings>
+ <BufferData >
+ <ImageBuffer sourcepath="maps/core_lightmap_radiosity.jpg" hasTransparency="True" />
+ <ImageBuffer sourcepath="maps/core_lightmap_shadow.jpg" hasTransparency="True" />
+ <ImageBuffer sourcepath="maps/cork_lightmap_indirect.jpg" hasTransparency="True" />
+ </BufferData>
+ <Graph >
+ <Scene id="Scene" >
+ <Layer id="Layer" >
+ <Camera id="Camera" />
+ <Group id="testCube2" importid="__import__root__" >
+ <Model id="Cube" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="Material" opacity="100" specularamount="0" specularroughness="20" >
+ <Image id="Material_diffusemap" />
+ <Image id="Material_lightmapindirect" />
+ <Image id="Material_lightmapradiosity" />
+ <Image id="Material_lightmapshadow" />
+ </Material>
+ </Model>
+ </Group>
+ <Group id="NoShadow" importid="__import__root__" >
+ <Model id="Cube_001" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material_001" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="Material" opacity="100" specularamount="0" specularroughness="20" >
+ <Image id="Material_001_diffusemap" />
+ <Image id="Material_001_lightmapindirect" />
+ <Image id="Material_001_lightmapradiosity" />
+ </Material>
+ </Model>
+ </Group>
+ <Group id="IndirectOnly" importid="__import__root__" >
+ <Model id="Cube_002" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material_002" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="Material" opacity="100" specularamount="0" specularroughness="20" >
+ <Image id="Material_002_diffusemap" />
+ <Image id="Material_002_lightmapindirect" />
+ </Material>
+ </Model>
+ </Group>
+ <Group id="RadiosityOnly" importid="__import__root__" >
+ <Model id="Cube_003" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material_003" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="Material" opacity="100" specularamount="0" specularroughness="20" >
+ <Image id="Material_003_diffusemap" />
+ <Image id="Material_003_lightmapradiosity" />
+ </Material>
+ </Model>
+ </Group>
+ <Group id="UnLit" importid="__import__root__" >
+ <Model id="Cube_004" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material_004" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="Material" opacity="100" specularamount="0" specularroughness="20" >
+ <Image id="Material_004_diffusemap" />
+ </Material>
+ </Model>
+ </Group>
+ </Layer>
+ </Scene>
+ </Graph>
+ <Logic >
+ <State name="Master Slide" component="#Scene" >
+ <Add ref="#Layer" />
+ <Add ref="#Camera" />
+ <Add ref="#testCube2" name="everything" importfile="models/testCube/testCube.import" position="8.92529 -33.3906 -88.9147" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material" diffusemap="#Material_diffusemap" importfile="models/testCube/testCube.import" lightmapindirect="#Material_lightmapindirect" lightmapradiosity="#Material_lightmapradiosity" lightmapshadow="#Material_lightmapshadow" shaderlighting="Pixel" />
+ <Add ref="#Material_diffusemap" sourcepath="maps/Cork1.jpg" />
+ <Add ref="#Material_lightmapindirect" sourcepath="maps/cork_lightmap_indirect.jpg" />
+ <Add ref="#Material_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#Material_lightmapshadow" sourcepath="maps/core_lightmap_shadow.jpg" />
+ <Add ref="#NoShadow" name="NoShadow" importfile="models/testCube/testCube.import" position="-270.428 9.34266 -88.9069" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube_001" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material_001" diffusemap="#Material_001_diffusemap" importfile="models/testCube/testCube.import" lightmapindirect="#Material_001_lightmapindirect" lightmapradiosity="#Material_001_lightmapradiosity" shaderlighting="Pixel" />
+ <Add ref="#Material_001_diffusemap" sourcepath="maps/Cork1.jpg" />
+ <Add ref="#Material_001_lightmapindirect" sourcepath="maps/cork_lightmap_indirect.jpg" />
+ <Add ref="#Material_001_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#IndirectOnly" name="IndirectOnly" importfile="models/testCube/testCube.import" position="266.005 81.2868 -88.9395" rotation="-1.05041 -78.4043 -264.953" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube_002" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material_002" diffusemap="#Material_002_diffusemap" importfile="models/testCube/testCube.import" lightmapindirect="#Material_002_lightmapindirect" shaderlighting="Pixel" />
+ <Add ref="#Material_002_diffusemap" sourcepath="maps/Cork1.jpg" />
+ <Add ref="#Material_002_lightmapindirect" sourcepath="maps/cork_lightmap_indirect.jpg" />
+ <Add ref="#RadiosityOnly" name="RadiosityOnly" importfile="models/testCube/testCube.import" position="223.385 -186.454 -88.9396" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube_003" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material_003" diffusemap="#Material_003_diffusemap" importfile="models/testCube/testCube.import" lightmapradiosity="#Material_003_lightmapradiosity" shaderlighting="Pixel" />
+ <Add ref="#Material_003_diffusemap" sourcepath="maps/Cork1.jpg" />
+ <Add ref="#Material_003_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#UnLit" name="UnLit" importfile="models/testCube/testCube.import" position="-131.581 -186.634 -245.316" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube_004" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material_004" diffusemap="#Material_004_diffusemap" importfile="models/testCube/testCube.import" shaderlighting="None" />
+ <Add ref="#Material_004_diffusemap" sourcepath="maps/Cork1.jpg" />
+ <State id="Scene-Everything" name="Everything" />
+ </State>
+ </Logic>
+ </Project>
+</UIP>
diff --git a/tests/scenes/lighting/lightmaps_referenced_material.uip b/tests/scenes/lighting/lightmaps_referenced_material.uip
new file mode 100644
index 0000000..fe3ba5e
--- /dev/null
+++ b/tests/scenes/lighting/lightmaps_referenced_material.uip
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<UIP version="3" >
+ <Project >
+ <ProjectSettings author="" company="" presentationWidth="1920" presentationHeight="1080" maintainAspect="False" >
+ <CustomColors count="16" >#ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff</CustomColors>
+ </ProjectSettings>
+ <Graph >
+ <Scene id="Scene" >
+ <Layer id="Layer" >
+ <Camera id="Camera" />
+ <Group id="testCube2" importid="__import__root__" >
+ <Model id="Cube" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <Material id="Material" >
+ <Image id="Material_lightmapradiosity" />
+ <Image id="Material_lightmapshadow" />
+ </Material>
+ </Model>
+ </Group>
+ <Group id="everything" importid="__import__root__" >
+ <Model id="Cube_001" name="Cube" importid="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="models/testCube/meshes/Cube.mesh" >
+ <ReferencedMaterial id="Material_001" >
+ <Image id="Material_001_lightmapradiosity" />
+ <Image id="Material_001_lightmapshadow" />
+ <Image id="Material_001_lightmapindirect" />
+ </ReferencedMaterial>
+ </Model>
+ </Group>
+ </Layer>
+ </Scene>
+ </Graph>
+ <Logic >
+ <State name="Master Slide" component="#Scene" >
+ <Add ref="#Layer" />
+ <Add ref="#Camera" />
+ <Add ref="#testCube2" name="everything" importfile="models/testCube/testCube.import" position="-189.977 8.13851 -88.9147" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material" name="Material" lightmapradiosity="#Material_lightmapradiosity" lightmapshadow="#Material_lightmapshadow" />
+ <Add ref="#Material_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#Material_lightmapshadow" sourcepath="maps/core_lightmap_shadow.jpg" />
+ <State id="Scene-Everything" name="Everything" >
+ <Add ref="#everything" name="everything" importfile="models/testCube/testCube.import" position="157.556 -3.88307 -88.9147" rotation="38.717 127.514 -31.7476" sourcepath="models/testCube/testCube.import" />
+ <Add ref="#Cube_001" importfile="models/testCube/testCube.import" />
+ <Add ref="#Material_001" name="Material" lightmapindirect="#Material_001_lightmapindirect" lightmapradiosity="#Material_001_lightmapradiosity" lightmapshadow="#Material_001_lightmapshadow" referencedmaterial="#Material" />
+ <Add ref="#Material_001_lightmapradiosity" sourcepath="maps/core_lightmap_radiosity.jpg" />
+ <Add ref="#Material_001_lightmapshadow" sourcepath="maps/core_lightmap_shadow.jpg" />
+ <Add ref="#Material_001_lightmapindirect" sourcepath="maps/cork_lightmap_indirect.jpg" />
+ </State>
+ </State>
+ </Logic>
+ </Project>
+</UIP>
diff --git a/tests/scenes/lighting/maps/Cork1.jpg b/tests/scenes/lighting/maps/Cork1.jpg
new file mode 100644
index 0000000..9466098
--- /dev/null
+++ b/tests/scenes/lighting/maps/Cork1.jpg
Binary files differ
diff --git a/tests/scenes/lighting/maps/OpenfootageNET_Gerlos-512.hdr b/tests/scenes/lighting/maps/OpenfootageNET_Gerlos-512.hdr
new file mode 100644
index 0000000..7119b26
--- /dev/null
+++ b/tests/scenes/lighting/maps/OpenfootageNET_Gerlos-512.hdr
Binary files differ
diff --git a/tests/scenes/lighting/maps/OpenfootageNET_fieldairport-512.hdr b/tests/scenes/lighting/maps/OpenfootageNET_fieldairport-512.hdr
new file mode 100644
index 0000000..abdebdb
--- /dev/null
+++ b/tests/scenes/lighting/maps/OpenfootageNET_fieldairport-512.hdr
Binary files differ
diff --git a/tests/scenes/lighting/maps/OpenfootageNET_lowerAustria01-512.hdr b/tests/scenes/lighting/maps/OpenfootageNET_lowerAustria01-512.hdr
new file mode 100644
index 0000000..df12f02
--- /dev/null
+++ b/tests/scenes/lighting/maps/OpenfootageNET_lowerAustria01-512.hdr
Binary files differ
diff --git a/tests/scenes/lighting/maps/core_lightmap_radiosity.jpg b/tests/scenes/lighting/maps/core_lightmap_radiosity.jpg
new file mode 100644
index 0000000..c51f007
--- /dev/null
+++ b/tests/scenes/lighting/maps/core_lightmap_radiosity.jpg
Binary files differ
diff --git a/tests/scenes/lighting/maps/core_lightmap_shadow.jpg b/tests/scenes/lighting/maps/core_lightmap_shadow.jpg
new file mode 100644
index 0000000..db94264
--- /dev/null
+++ b/tests/scenes/lighting/maps/core_lightmap_shadow.jpg
Binary files differ
diff --git a/tests/scenes/lighting/maps/cork_lightmap_indirect.jpg b/tests/scenes/lighting/maps/cork_lightmap_indirect.jpg
new file mode 100644
index 0000000..801dbda
--- /dev/null
+++ b/tests/scenes/lighting/maps/cork_lightmap_indirect.jpg
Binary files differ
diff --git a/tests/scenes/lighting/materials/copper.material b/tests/scenes/lighting/materials/copper.material
new file mode 100644
index 0000000..a4fdfc7
--- /dev/null
+++ b/tests/scenes/lighting/materials/copper.material
@@ -0,0 +1,178 @@
+<Material name="copper" version="1.0">
+ <MetaData >
+ <Property formalName="Environment Map" name="uEnvironmentTexture" description="Environment texture for the material" type="Texture" filter="linear" minfilter="linearMipmapLinear" clamp="repeat" usage="environment" default="./maps/materials/spherical_checker.png" category="Material"/>
+ <Property formalName="Enable Environment" name="uEnvironmentMappingEnabled" description="Enable environment mapping" type="Boolean" default="True" category="Material"/>
+ <Property formalName="Baked Shadow Map" name="uBakedShadowTexture" description="Baked shadow texture for the material" type="Texture" filter="linear" minfilter="linearMipmapLinear" clamp="repeat" usage="shadow" default="./maps/materials/shadow.png" category="Material"/>
+ <Property formalName="Enable Shadow Mapping" name="uShadowMappingEnabled" description="Enable shadow mapping" type="Boolean" default="False" category="Material"/>
+ <Property formalName="Roughness" name="roughness" type="Float" min="0.000000" max="1.000000" default="0.000000" description="Roughness of the material. 0 is fully specular, 1 is fully diffuse" category="Material"/>
+ <Property formalName="Metal Color" name="metal_color" type="Color" default="0.805 0.395 0.305" description="Color of the material" category="Material"/>
+ </MetaData>
+ <Shaders type="GLSL" version="330">
+ <Shader>
+ <Shared> </Shared>
+<VertexShader>
+ </VertexShader>
+ <FragmentShader>
+
+// add enum defines
+#define scatter_reflect 0
+#define scatter_transmit 1
+#define scatter_reflect_transmit 2
+
+#define QT3DS_ENABLE_UV0 1
+#define QT3DS_ENABLE_WORLD_POSITION 1
+#define QT3DS_ENABLE_TEXTAN 1
+#define QT3DS_ENABLE_BINORMAL 0
+
+#include "vertexFragmentBase.glsllib"
+
+// set shader output
+out vec4 fragColor;
+
+// add structure defines
+struct layer_result
+{
+ vec4 base;
+ vec4 layer;
+ mat3 tanFrame;
+};
+
+
+// temporary declarations
+ vec4 tmpShadowTerm;
+
+layer_result layers[1];
+
+#include "SSAOCustomMaterial.glsllib"
+#include "sampleLight.glsllib"
+#include "sampleProbe.glsllib"
+#include "sampleArea.glsllib"
+#include "square.glsllib"
+#include "calculateRoughness.glsllib"
+#include "evalBakedShadowMap.glsllib"
+#include "evalEnvironmentMap.glsllib"
+#include "luminance.glsllib"
+#include "microfacetBSDF.glsllib"
+#include "physGlossyBSDF.glsllib"
+#include "simpleGlossyBSDF.glsllib"
+#include "fresnelLayer.glsllib"
+
+bool evalTwoSided()
+{
+ return( false );
+}
+
+vec3 computeFrontMaterialEmissive()
+{
+ return( vec3( 0, 0, 0 ) );
+}
+
+void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * microfacetBSDF( layers[0].tanFrame, lightDir, viewDir, lightSpecular, materialIOR, roughness, roughness, scatter_reflect );
+
+#endif
+}
+
+void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layers[0].tanFrame, varWorldPos, lightIdx, viewDir, roughness, roughness );
+
+#endif
+}
+
+void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
+{
+#if !QT3DS_ENABLE_LIGHT_PROBE
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * microfacetSampledBSDF( layers[0].tanFrame, viewDir, roughness, roughness, scatter_reflect );
+
+#else
+ layers[0].base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
+ layers[0].layer += tmpShadowTerm * sampleGlossyAniso( layers[0].tanFrame, viewDir, roughness, roughness );
+
+#endif
+}
+
+vec3 computeBackMaterialEmissive()
+{
+ return( vec3(0, 0, 0) );
+}
+
+void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
+{
+#if QT3DS_ENABLE_CG_LIGHTING
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
+{
+#if !QT3DS_ENABLE_LIGHT_PROBE
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#else
+ layers[0].base += vec4( 0.0, 0.0, 0.0, 1.0 );
+ layers[0].layer += vec4( 0.0, 0.0, 0.0, 1.0 );
+#endif
+}
+
+float computeIOR()
+{
+ return( false ? 1.0f : luminance( vec3( 1, 1, 1 ) ) );
+}
+
+float evalCutout()
+{
+ return( 1.000000 );
+}
+
+vec3 computeNormal()
+{
+ return( normal );
+}
+
+void computeTemporaries()
+{
+ tmpShadowTerm = evalBakedShadowMap( texCoord0 );
+}
+
+vec4 computeLayerWeights( in float alpha )
+{
+ vec4 color;
+ color = fresnelLayer( normal, vec3( 25.65, 25.65, 25.65 ), 1.000000, vec4( metal_color, 1.0).rgb, layers[0].layer, layers[0].base, alpha );
+ return color;
+}
+
+
+void initializeLayerVariables(void)
+{
+ // clear layers
+ layers[0].base = vec4(0.0, 0.0, 0.0, 1.0);
+ layers[0].layer = vec4(0.0, 0.0, 0.0, 1.0);
+ layers[0].tanFrame = orthoNormalize( mat3( tangent, cross(normal, tangent), normal ) );
+}
+
+ </FragmentShader>
+ </Shader>
+ </Shaders>
+<Passes >
+ <ShaderKey value="4"/>
+ <LayerKey count="1"/>
+ <Pass >
+ </Pass>
+</Passes>
+</Material>
diff --git a/tests/scenes/lighting/models/testCube/meshes/Cube.mesh b/tests/scenes/lighting/models/testCube/meshes/Cube.mesh
new file mode 100644
index 0000000..7b17e27
--- /dev/null
+++ b/tests/scenes/lighting/models/testCube/meshes/Cube.mesh
Binary files differ
diff --git a/tests/scenes/lighting/models/testCube/testCube.import b/tests/scenes/lighting/models/testCube/testCube.import
new file mode 100644
index 0000000..f1e6ef2
--- /dev/null
+++ b/tests/scenes/lighting/models/testCube/testCube.import
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<UIP Version="1" >
+ <Project Revision="1" >
+ <Graph >
+ <Group id="__import__root__" >
+ <Model id="Cube" name="Cube" orientation="Right Handed" position="0 0 -0" rotation="-90 -0 0" rotationorder="XYZr" scale="100 100 100" sourcepath="meshes/Cube.mesh" >
+ <Material id="Material" name="Material" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" opacity="100" specularamount="0" specularroughness="20" />
+ </Model>
+ </Group>
+ </Graph>
+ <Import SrcFile="../../../../Blender/testCube/testCube.fbx" ImageDir="Images" MeshDir="Meshes" >
+ <Mesh >
+ <Source >Cube</Source>
+ <Dest >meshes/Cube.mesh</Dest>
+ </Mesh>
+ </Import>
+ </Project>
+</UIP>