diff options
author | Mats Honkamaa <mats.honkamaa@qt.io> | 2017-11-27 15:17:09 +0200 |
---|---|---|
committer | Antti Kokko <antti.kokko@qt.io> | 2017-11-28 09:38:37 +0000 |
commit | ba8c626bc57fefcb34a0035cd34205b55c3c4723 (patch) | |
tree | d3bda5b4a3e56b5df55bf082db7e1227a3377279 | |
parent | e158a52263d4852ff0d5b0703dfea9659ce74d8b (diff) |
Add sample project to Qt 3D Studio
Adding a simple sample project to Qt 3D Studio.
Task-number: QT3DS-569
Task-number: QT3DS-572
Change-Id: I11677ee355882d354855feb3e5f1b2044f91cf82
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
-rw-r--r-- | examples/studio3d/SampleProject/SampleProject.uia | 16 | ||||
-rw-r--r-- | examples/studio3d/SampleProject/SampleProject.uip | 80 | ||||
-rw-r--r-- | examples/studio3d/SampleProject/effects/Corona.effect | 97 | ||||
-rw-r--r-- | examples/studio3d/SampleProject/maps/effects/noise.dds | bin | 0 -> 4224 bytes | |||
-rw-r--r-- | examples/studio3d/SampleProject/maps/materials/shadow.png | bin | 0 -> 334 bytes | |||
-rw-r--r-- | examples/studio3d/SampleProject/maps/materials/spherical_checker.png | bin | 0 -> 11066 bytes | |||
-rw-r--r-- | examples/studio3d/SampleProject/materials/simple_glass.material | 197 | ||||
-rw-r--r-- | examples/studio3d/SampleProject/models/Speedometer/Speedometer.import | 39 | ||||
-rw-r--r-- | examples/studio3d/SampleProject/models/Speedometer/maps/Speed.png | bin | 0 -> 485677 bytes | |||
-rw-r--r-- | examples/studio3d/SampleProject/models/Speedometer/meshes/NeedleSpeed.mesh | bin | 0 -> 10880 bytes | |||
-rw-r--r-- | examples/studio3d/SampleProject/models/Speedometer/meshes/Speedometer.mesh | bin | 0 -> 484416 bytes | |||
-rw-r--r-- | examples/studio3d/studio3d.pro | 6 |
12 files changed, 435 insertions, 0 deletions
diff --git a/examples/studio3d/SampleProject/SampleProject.uia b/examples/studio3d/SampleProject/SampleProject.uia new file mode 100644 index 00000000..d59165ec --- /dev/null +++ b/examples/studio3d/SampleProject/SampleProject.uia @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<application xmlns="http://qt.io/qt3dstudio/uia"> + <assets initial="SampleProject"> + <presentation id="SampleProject" src="SampleProject.uip"/> + </assets> + + <statemachine ref="#logic"> + <visual-states> + <state ref="Initial"> + <enter> + <goto-slide element="main:Scene" rel="next"/> + </enter> + </state> + </visual-states> + </statemachine> +</application> diff --git a/examples/studio3d/SampleProject/SampleProject.uip b/examples/studio3d/SampleProject/SampleProject.uip new file mode 100644 index 00000000..8b3bb837 --- /dev/null +++ b/examples/studio3d/SampleProject/SampleProject.uip @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<UIP version="3" > + <Project > + <ProjectSettings author="" company="" presentationWidth="800" presentationHeight="800" maintainAspect="True" > + <CustomColors count="16" >#ff5500 #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff #ffffff</CustomColors> + </ProjectSettings> + <Classes > + <Effect id="Corona" name="Corona" sourcepath="effects/Corona.effect" /> + <CustomMaterial id="simple_glass" name="simple_glass" sourcepath="materials/simple_glass.material" /> + </Classes> + <Graph > + <Scene id="Scene" > + <Layer id="Layer2" > + <Camera id="Camera_001" /> + <Light id="Light_001" /> + <Model id="NeedleSpeed_001" name="NeedleSpeed" importid="NeedleSpeed" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" sourcepath="models/Speedometer/meshes/NeedleSpeed.mesh" > + <Material id="NeedleBlack_002" name="NeedleBlack" blendmode="Normal" diffuse="0 0 0" emissivepower="0" importid="NeedleBlack" opacity="100" specularamount="0" specularroughness="9.41177" /> + <Material id="NeedleWhite_002" /> + </Model> + <Effect id="Corona_001" class="#Corona" /> + </Layer> + <Layer id="Layer" > + <Camera id="Camera" /> + <Light id="Light" /> + <Group id="Speedometer" importid="__import__root__" > + <Group id="Group_Speedometer_Master" name="Group_Speedometer_Master" importid="Group_Speedometer_Master" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" > + <Model id="Speedometer_001" name="Speedometer" importid="Speedometer" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" sourcepath="models/Speedometer/meshes/Speedometer.mesh" > + <CustomMaterial id="BaseMetal" class="#simple_glass" /> + <ReferencedMaterial id="HighLight" /> + <Material id="NeedleWhite_001" name="NeedleWhite" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" importid="NeedleWhite_0005" opacity="100" specularamount="0" specularroughness="27.451" /> + <Material id="BlackMetalRing" name="BlackMetalRing" blendmode="Normal" diffuse="0.0578313 0.0578313 0.0578313" emissivepower="0" importid="BlackMetalRing" opacity="100" specularamount="0" specularroughness="99.8039" /> + <Material id="NeedleBlack_001" name="NeedleBlack" blendmode="Normal" diffuse="0 0 0" emissivepower="0" importid="NeedleBlack_0006" opacity="100" specularamount="0" specularroughness="9.41177" /> + <Material id="SpeedometerBg" name="SpeedometerBg" blendmode="Normal" diffuse="1 1 1" diffusemap="#SpeedometerBg_diffusemap" emissivepower="0" importid="SpeedometerBg" opacity="100" specularamount="0" specularroughness="9.41177" > + <Image id="SpeedometerBg_diffusemap" name="SpeedometerBg_diffusemap" importid="SpeedometerBg_diffusemap" sourcepath="models/Speedometer/maps/Speed.png" /> + </Material> + </Model> + </Group> + </Group> + </Layer> + </Scene> + </Graph> + <Logic > + <State name="Master Slide" component="#Scene" > + <Add ref="#Layer" multisampleaa="4x" probebright="500" /> + <Add ref="#Camera" fov="30" position="0 0 -400" /> + <Add ref="#Light" brightness="200" lightdiffuse="1 1 1" lightspecular="0 0.666667 1" lighttype="Point" pivot="100 0 0" position="0 0 -50" > + <AnimationTrack property="rotation.x" type="EaseInOut" >0 0 100 100 5 0 100 100</AnimationTrack> + <AnimationTrack property="rotation.y" type="EaseInOut" >0 0 100 100 5 0 100 100</AnimationTrack> + <AnimationTrack property="rotation.z" type="EaseInOut" >0 45 100 100 5 -225 100 100</AnimationTrack> + </Add> + <State id="Scene-Slide1" name="Slide1" playmode="PingPong" playthroughto="Next" > + <Set ref="#Layer" endtime="5000" /> + <Set ref="#Camera" endtime="5000" /> + <Set ref="#Light" endtime="5000" /> + <Add ref="#Layer2" name="Layer2" endtime="5000" multisampleaa="4x" /> + <Add ref="#Camera_001" endtime="5000" fov="30" position="0 0 -600" /> + <Add ref="#Light_001" endtime="5000" /> + <Add ref="#NeedleSpeed_001" name="NeedleSpeed" endtime="5000" importfile="models/Speedometer/Speedometer.import" pivot="5 5 0" > + <AnimationTrack property="rotation.x" type="EaseInOut" >0 0 100 100 2.13 0 0 0 5 0 100 100</AnimationTrack> + <AnimationTrack property="rotation.y" type="EaseInOut" >0 0 100 100 2.13 0 0 0 5 0 100 100</AnimationTrack> + <AnimationTrack property="rotation.z" type="EaseInOut" >0 0 100 100 2.13 -105.249 0 0 5 -270 100 100</AnimationTrack> + </Add> + <Add ref="#NeedleBlack_002" diffuse="0 0.333333 1" importfile="models/Speedometer/Speedometer.import" /> + <Add ref="#NeedleWhite_002" name="NeedleWhite" diffuse="1 1 1" specularamount="0" /> + <Add ref="#Corona_001" name="Corona" GlowCol="0 0.333333 1" NoiseRatio="0" NoiseScale="0" Trailfade="0.96" endtime="5000" /> + <Add ref="#Speedometer" name="Speedometer" endtime="5000" importfile="models/Speedometer/Speedometer.import" position="0 0 0" scale="0.7 0.7 0.7" sourcepath="models/Speedometer/Speedometer.import" /> + <Add ref="#Group_Speedometer_Master" endtime="5000" importfile="models/Speedometer/Speedometer.import" /> + <Add ref="#Speedometer_001" endtime="5000" importfile="models/Speedometer/Speedometer.import" /> + <Add ref="#BaseMetal" name="BaseMetal" glass_color="0 0.333333 1" /> + <Add ref="#HighLight" name="HighLight" endtime="5000" referencedmaterial="#BaseMetal" /> + <Add ref="#NeedleWhite_001" importfile="models/Speedometer/Speedometer.import" /> + <Add ref="#BlackMetalRing" diffuse="0 0.0862745 0.596078" importfile="models/Speedometer/Speedometer.import" specularamount="0" /> + <Add ref="#NeedleBlack_001" importfile="models/Speedometer/Speedometer.import" /> + <Add ref="#SpeedometerBg" diffuse="0.270588 0.501961 1" importfile="models/Speedometer/Speedometer.import" specularamount="0.1" specularroughness="1" speculartint="0.529412 0.772549 1" /> + <Add ref="#SpeedometerBg_diffusemap" importfile="models/Speedometer/Speedometer.import" /> + </State> + </State> + </Logic> + </Project> +</UIP> diff --git a/examples/studio3d/SampleProject/effects/Corona.effect b/examples/studio3d/SampleProject/effects/Corona.effect new file mode 100644 index 00000000..bdbd1b72 --- /dev/null +++ b/examples/studio3d/SampleProject/effects/Corona.effect @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Effect> + <MetaData> + <!--Creates a corona around a sprite.--> + <Property name="HBlurBias" formalName="Horizontal Blur" min="0" max="10" default="2" description="Amount of corona horizontally."/> + <Property name="VBlurBias" formalName="Vertical Blur" min="0" max="10" default="2" description="Amount of corona vertically."/> + <Property name="Trailfade" formalName="Fade Amount" min="0" max="1" default="0.8" description="0=no glow, 0.5=fade quickly, 1.0=persistent trails"/> + <Property name="GlowSampler" filter="nearest" clamp="clamp" type="Texture" /> + <Property name="GlowCol" formalName="Glow Color" type="Color" default="1 0.6 0.0" description="The color to use for the glow."/> + <Property name="NoiseSamp" formalName="Noise" filter="linear" clamp="repeat" default="./maps/effects/noise.dds" type="Texture" description="Texture to be used for the noise texture"/> + <Property name="NoiseScale" formalName="Noise Density" min="0" max="10" default="2" description="The density of the noise in corona. The higher the value, the denser and smaller of the noise; the lower the value, the bigger of the noise scale."/> + <Property name="NoiseBright" formalName="Noise Brightness" min="0" max="5" default="4" description="Brightness of the noise."/> + <Property name="NoiseRatio" formalName="Noise Amount" min="0" max="1" default=".15" description="Magnitude of the noise."/> + <Property name="CrawlLen" formalName="Crawl Length" min="0" max="1" default=".3" description="Length of the corona trail in animation."/> + <Property name="CrawlAngle" formalName="Crawl Angle" default="0" description="Angle of the corona trail in animation."/> + <Property name="Sprite" filter="nearest" clamp="clamp" type="Texture" /> + </MetaData> + <Shaders> + <Shared> +#include "blur.glsllib" +uniform float AppFrame; // frame number since app starts +uniform float FPS; + </Shared> + <Shader name="CORONA_HBLUR"> + <Shared> +varying vec2 crawl; // corona crawl direction and magnitude + </Shared> + <VertexShader> +void vert () +{ + SetupHorizontalGaussianBlur(Texture0Info.x, HBlurBias, TexCoord); + // compute crawl + float alpha = radians(CrawlAngle + 180.0); + crawl = vec2(CrawlLen * sin(alpha), CrawlLen * cos(alpha)); +} + </VertexShader> + <FragmentShader> +void frag() +{ + //Passing in 1.0 means the value will not get alpha-multiplied again + float OutCol = GaussianAlphaBlur( GlowSampler, 1.0 ); + OutCol *= Trailfade; // fade away glow color + OutCol += texture2D_0( TexCoord ).a; // add glow color in the original tex area + + vec2 nuv = NoiseScale * TexCoord3 + AppFrame / FPS * crawl; + vec4 noise = texture2D_NoiseSamp(fract(nuv)); + float ns = (1.0 - NoiseRatio) + NoiseRatio * NoiseBright * noise.x; + OutCol *= ns; + gl_FragColor = vec4( OutCol ); +} + </FragmentShader> + </Shader> + <Shader name="CORONA_VBLUR"> + <VertexShader> +void vert () +{ + SetupVerticalGaussianBlur( Texture0Info.y, VBlurBias, TexCoord ); +} + </VertexShader> + <FragmentShader> +void frag() // PS_Blur_Vertical_9tap +{ + float OutCol = GaussianAlphaBlur( Texture0, Texture0Info.z ); + gl_FragColor = OutCol * vec4(GlowCol, 1.0); +} + </FragmentShader> + </Shader> + <Shader name="CORONA_BLEND"> + <VertexShader> +void vert() +{ +} + </VertexShader> + <FragmentShader> +void frag () +{ + vec4 src = texture2D_0( TexCoord ); + vec4 dst = texture2D_Sprite(TexCoord); + colorOutput( src * (1.0 - dst.a) + dst ); +} + </FragmentShader> + </Shader> + </Shaders> + <Passes> + <Buffer name="glow_buffer" type="ubyte" format="rgba" filter="linear" wrap="clamp" size="0.55" lifetime="scene"/> + <Buffer name="temp_buffer" type="ubyte" format="rgba" filter="linear" wrap="clamp" size="0.55" lifetime="frame"/> + + <Pass shader="CORONA_HBLUR" input="[source]" output="temp_buffer"> + <BufferInput param="GlowSampler" value="glow_buffer"/> + </Pass> + <Pass shader="CORONA_VBLUR" input="temp_buffer" output="glow_buffer"/> + + <Pass shader="CORONA_BLEND" input="glow_buffer"> + <BufferInput param="Sprite" value="[source]"/> + </Pass> + </Passes> +</Effect>
\ No newline at end of file diff --git a/examples/studio3d/SampleProject/maps/effects/noise.dds b/examples/studio3d/SampleProject/maps/effects/noise.dds Binary files differnew file mode 100644 index 00000000..fdb5f205 --- /dev/null +++ b/examples/studio3d/SampleProject/maps/effects/noise.dds diff --git a/examples/studio3d/SampleProject/maps/materials/shadow.png b/examples/studio3d/SampleProject/maps/materials/shadow.png Binary files differnew file mode 100644 index 00000000..599b1ccc --- /dev/null +++ b/examples/studio3d/SampleProject/maps/materials/shadow.png diff --git a/examples/studio3d/SampleProject/maps/materials/spherical_checker.png b/examples/studio3d/SampleProject/maps/materials/spherical_checker.png Binary files differnew file mode 100644 index 00000000..e42394dd --- /dev/null +++ b/examples/studio3d/SampleProject/maps/materials/spherical_checker.png diff --git a/examples/studio3d/SampleProject/materials/simple_glass.material b/examples/studio3d/SampleProject/materials/simple_glass.material new file mode 100644 index 00000000..216a3fce --- /dev/null +++ b/examples/studio3d/SampleProject/materials/simple_glass.material @@ -0,0 +1,197 @@ +<Material name="simple_glass" 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="Fresnel Power" name="uFresnelPower" description="Fresnel power of the material" type="Float" default="1.0" category="Material"/> + <Property formalName="Minimum Opacity" name="uMinOpacity" description="Minimum opacity of the material" type="Float" default="0.5" category="Material"/> + <Property formalName="Reflectivity" name="reflectivity_amount" type="Float" min="0.000000" max="1.000000" default="1.000000" description="Reflectivity factor" category="Material"/> + <Property formalName="Glass ior" name="glass_ior" hidden="True" type="Float" default="1.100000" description="Index of refraction of the material" category="Material"/> + <Property formalName="Glass Color" name="glass_color" type="Color" default="0.9 0.9 0.9" 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 +vec3 ftmp0; + 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 "abbeNumberIOR.glsllib" +#include "fresnelLayer.glsllib" +#include "refraction.glsllib" + +bool evalTwoSided() +{ + return( true ); +} + +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 * microfacetBSDF( layers[0].tanFrame, lightDir, viewDir, lightSpecular, materialIOR, 0.000000, 0.000000, scatter_reflect_transmit ); + +#endif +} + +void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular ) +{ +#if QT3DS_ENABLE_CG_LIGHTING + layers[0].base += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layers[0].tanFrame, varWorldPos, lightIdx, viewDir, 0.000000, 0.000000 ); + +#endif +} + +void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor ) +{ +#if !QT3DS_ENABLE_LIGHT_PROBE + layers[0].base += tmpShadowTerm * microfacetSampledBSDF( layers[0].tanFrame, viewDir, 0.000000, 0.000000, scatter_reflect_transmit ); + +#else + layers[0].base += tmpShadowTerm * sampleGlossyAniso( layers[0].tanFrame, viewDir, 0.000000, 0.000000 ); + +#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( true ? 1.0f : luminance( vec3( abbeNumberIOR(glass_ior, 0.000000 ) ) ) ); +} + +float evalCutout() +{ + return( 1.000000 ); +} + +vec3 computeNormal() +{ + return( normal ); +} + +void computeTemporaries() +{ + ftmp0 = vec3( reflectivity_amount ); + tmpShadowTerm = evalBakedShadowMap( texCoord0 ); +} + +vec4 computeLayerWeights( in float alpha ) +{ + vec4 color; + color = layers[0].base * vec4( ftmp0, 1.0); + 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( tangentFrame( normal, varWorldPos ) ); +} + +vec4 computeGlass(in vec3 normal, in float materialIOR, in float alpha, in vec4 color) +{ + vec4 rgba = color; + float ratio = simpleFresnel( normal, materialIOR, uFresnelPower ); + vec3 absorb_color = ( log( glass_color )/-1.000000 ); + // prevent log(0) -> inf number issue + if ( isinf(absorb_color.r) ) absorb_color.r = 1.0; + if ( isinf(absorb_color.g) ) absorb_color.g = 1.0; + if ( isinf(absorb_color.b) ) absorb_color.b = 1.0; + rgba.rgb = mix(vec3(1.0) - absorb_color, rgba.rgb * (vec3(1.0) - absorb_color), ratio); + rgba.a = mix(uMinOpacity, alpha, ratio); + return rgba; +} + + </FragmentShader> + </Shader> + </Shaders> +<Passes > + <ShaderKey value="36"/> + <LayerKey count="1"/> + <Pass > + <Blending source="SrcAlpha" dest="OneMinusSrcAlpha"/> + <RenderState name="CullFace"/> + </Pass> +</Passes> +</Material> diff --git a/examples/studio3d/SampleProject/models/Speedometer/Speedometer.import b/examples/studio3d/SampleProject/models/Speedometer/Speedometer.import new file mode 100644 index 00000000..d74ef62d --- /dev/null +++ b/examples/studio3d/SampleProject/models/Speedometer/Speedometer.import @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<UIP Version="1" > + <Project Revision="1" > + <Graph > + <Group id="__import__root__" > + <Group id="Group_Speedometer_Master" name="Group_Speedometer_Master" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" > + <Model id="NeedleSpeed" name="NeedleSpeed" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" sourcepath="meshes/NeedleSpeed.mesh" > + <Material id="NeedleBlack" name="NeedleBlack" blendmode="Normal" diffuse="0 0 0" emissivepower="0" opacity="100" specularamount="0" specularroughness="9.41177" /> + <Material id="NeedleWhite" name="NeedleWhite" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" opacity="100" specularamount="0" specularroughness="27.451" /> + </Model> + <Model id="Speedometer" name="Speedometer" orientation="Right Handed" position="0 0 -0" rotation="0 -0 0" rotationorder="XYZr" scale="1 1 1" sourcepath="meshes/Speedometer.mesh" > + <Material id="BaseMetal" name="BaseMetal" blendmode="Normal" diffuse="0.01728 0.01728 0.01728" emissivepower="0" opacity="100" specularamount="0" specularroughness="11.3725" /> + <Material id="HighLight" name="HighLight" blendmode="Normal" diffuse="0.298 0.54088 0.8" emissivepower="0" opacity="66.8675" specularamount="0" specularroughness="100" /> + <Material id="NeedleWhite_0005" name="NeedleWhite" blendmode="Normal" diffuse="0.8 0.8 0.8" emissivepower="0" opacity="100" specularamount="0" specularroughness="27.451" /> + <Material id="BlackMetalRing" name="BlackMetalRing" blendmode="Normal" diffuse="0.0578313 0.0578313 0.0578313" emissivepower="0" opacity="100" specularamount="0" specularroughness="99.8039" /> + <Material id="NeedleBlack_0006" name="NeedleBlack" blendmode="Normal" diffuse="0 0 0" emissivepower="0" opacity="100" specularamount="0" specularroughness="9.41177" /> + <Material id="SpeedometerBg" name="SpeedometerBg" blendmode="Normal" diffuse="1 1 1" diffusemap="SpeedometerBg_diffusemap" emissivepower="0" opacity="100" specularamount="0" specularroughness="9.41177" > + <Image id="SpeedometerBg_diffusemap" name="SpeedometerBg_diffusemap" sourcepath="maps/Speed.png" /> + </Material> + </Model> + </Group> + </Group> + </Graph> + <Import SrcFile="" ImageDir="Images" MeshDir="Meshes" > + <Image > + <Source >Speed.png</Source> + <Dest >maps/Speed.png</Dest> + </Image> + <Mesh > + <Source >Speedometer</Source> + <Dest >meshes/Speedometer.mesh</Dest> + </Mesh> + <Mesh > + <Source >NeedleSpeed</Source> + <Dest >meshes/NeedleSpeed.mesh</Dest> + </Mesh> + </Import> + </Project> +</UIP> diff --git a/examples/studio3d/SampleProject/models/Speedometer/maps/Speed.png b/examples/studio3d/SampleProject/models/Speedometer/maps/Speed.png Binary files differnew file mode 100644 index 00000000..84b7e4db --- /dev/null +++ b/examples/studio3d/SampleProject/models/Speedometer/maps/Speed.png diff --git a/examples/studio3d/SampleProject/models/Speedometer/meshes/NeedleSpeed.mesh b/examples/studio3d/SampleProject/models/Speedometer/meshes/NeedleSpeed.mesh Binary files differnew file mode 100644 index 00000000..72220cd6 --- /dev/null +++ b/examples/studio3d/SampleProject/models/Speedometer/meshes/NeedleSpeed.mesh diff --git a/examples/studio3d/SampleProject/models/Speedometer/meshes/Speedometer.mesh b/examples/studio3d/SampleProject/models/Speedometer/meshes/Speedometer.mesh Binary files differnew file mode 100644 index 00000000..9f7ba34b --- /dev/null +++ b/examples/studio3d/SampleProject/models/Speedometer/meshes/Speedometer.mesh diff --git a/examples/studio3d/studio3d.pro b/examples/studio3d/studio3d.pro index 434b30aa..6c10a4ea 100644 --- a/examples/studio3d/studio3d.pro +++ b/examples/studio3d/studio3d.pro @@ -7,4 +7,10 @@ TEMPLATE = subdirs widgetviewer \ surfaceviewer \ surfaceviewer_offscreen + + # Sample project only has the presentation. + # We do not want to pollute the sample folder with .pro file, so do the install here. + INSTALLS += sampleProject + sampleProject.path = $$[QT_INSTALL_EXAMPLES]/studio3d/SampleProject + sampleProject.files = SampleProject/* } |