Browse Source

using diffuse color from assimp

master
cinnaboot 8 years ago
parent
commit
37957a596f
  1. 857
      data/animated.block.dae
  2. 13
      src/mesh.cpp
  3. 14
      src/mesh.h
  4. 12
      src/render_group.cpp

857
data/animated.block.dae

@ -5,737 +5,190 @@
<author>Blender User</author> <author>Blender User</author>
<authoring_tool>Blender 2.79.0 commit date:2018-05-26, commit time:21:51, hash:32432d91bbe</authoring_tool> <authoring_tool>Blender 2.79.0 commit date:2018-05-26, commit time:21:51, hash:32432d91bbe</authoring_tool>
</contributor> </contributor>
<created>2018-07-09T16:03:11</created> <created>2018-08-06T23:43:57</created>
<modified>2018-07-09T16:03:11</modified> <modified>2018-08-06T23:43:57</modified>
<unit name="meter" meter="1"/> <unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis> <up_axis>Z_UP</up_axis>
</asset> </asset>
<library_cameras>
<camera id="Camera-camera" name="Camera">
<optics>
<technique_common>
<perspective>
<xfov sid="xfov">49.13434</xfov>
<aspect_ratio>1.777778</aspect_ratio>
<znear sid="znear">0.1</znear>
<zfar sid="zfar">100</zfar>
</perspective>
</technique_common>
</optics>
<extra>
<technique profile="blender">
<shiftx sid="shiftx" type="float">0</shiftx>
<shifty sid="shifty" type="float">0</shifty>
<YF_dofdist sid="YF_dofdist" type="float">0</YF_dofdist>
</technique>
</extra>
</camera>
</library_cameras>
<library_lights>
<light id="Lamp-light" name="Lamp">
<technique_common>
<point>
<color sid="color">1 1 1</color>
<constant_attenuation>1</constant_attenuation>
<linear_attenuation>0</linear_attenuation>
<quadratic_attenuation>0.00111109</quadratic_attenuation>
</point>
</technique_common>
<extra>
<technique profile="blender">
<type sid="type" type="int">0</type>
<flag sid="flag" type="int">0</flag>
<mode sid="mode" type="int">8192</mode>
<gamma sid="blender_gamma" type="float">1</gamma>
<red sid="red" type="float">1</red>
<green sid="green" type="float">1</green>
<blue sid="blue" type="float">1</blue>
<shadow_r sid="blender_shadow_r" type="float">0</shadow_r>
<shadow_g sid="blender_shadow_g" type="float">0</shadow_g>
<shadow_b sid="blender_shadow_b" type="float">0</shadow_b>
<energy sid="blender_energy" type="float">1</energy>
<dist sid="blender_dist" type="float">29.99998</dist>
<spotsize sid="spotsize" type="float">75</spotsize>
<spotblend sid="spotblend" type="float">0.15</spotblend>
<halo_intensity sid="blnder_halo_intensity" type="float">1</halo_intensity>
<att1 sid="att1" type="float">0</att1>
<att2 sid="att2" type="float">1</att2>
<falloff_type sid="falloff_type" type="int">2</falloff_type>
<clipsta sid="clipsta" type="float">1.000799</clipsta>
<clipend sid="clipend" type="float">30.002</clipend>
<bias sid="bias" type="float">1</bias>
<soft sid="soft" type="float">3</soft>
<compressthresh sid="compressthresh" type="float">0.04999995</compressthresh>
<bufsize sid="bufsize" type="int">2880</bufsize>
<samp sid="samp" type="int">3</samp>
<buffers sid="buffers" type="int">1</buffers>
<filtertype sid="filtertype" type="int">0</filtertype>
<bufflag sid="bufflag" type="int">0</bufflag>
<buftype sid="buftype" type="int">2</buftype>
<ray_samp sid="ray_samp" type="int">1</ray_samp>
<ray_sampy sid="ray_sampy" type="int">1</ray_sampy>
<ray_sampz sid="ray_sampz" type="int">1</ray_sampz>
<ray_samp_type sid="ray_samp_type" type="int">0</ray_samp_type>
<area_shape sid="area_shape" type="int">1</area_shape>
<area_size sid="area_size" type="float">0.1</area_size>
<area_sizey sid="area_sizey" type="float">0.1</area_sizey>
<area_sizez sid="area_sizez" type="float">1</area_sizez>
<adapt_thresh sid="adapt_thresh" type="float">0.000999987</adapt_thresh>
<ray_samp_method sid="ray_samp_method" type="int">1</ray_samp_method>
<shadhalostep sid="shadhalostep" type="int">0</shadhalostep>
<sun_effect_type sid="sun_effect_type" type="int">0</sun_effect_type>
<skyblendtype sid="skyblendtype" type="int">1</skyblendtype>
<horizon_brightness sid="horizon_brightness" type="float">1</horizon_brightness>
<spread sid="spread" type="float">1</spread>
<sun_brightness sid="sun_brightness" type="float">1</sun_brightness>
<sun_size sid="sun_size" type="float">1</sun_size>
<backscattered_light sid="backscattered_light" type="float">1</backscattered_light>
<sun_intensity sid="sun_intensity" type="float">1</sun_intensity>
<atm_turbidity sid="atm_turbidity" type="float">2</atm_turbidity>
<atm_extinction_factor sid="atm_extinction_factor" type="float">1</atm_extinction_factor>
<atm_distance_factor sid="atm_distance_factor" type="float">1</atm_distance_factor>
<skyblendfac sid="skyblendfac" type="float">1</skyblendfac>
<sky_exposure sid="sky_exposure" type="float">1</sky_exposure>
<sky_colorspace sid="sky_colorspace" type="int">0</sky_colorspace>
</technique>
</extra>
</light>
</library_lights>
<library_images/> <library_images/>
<library_effects>
<effect id="Material-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.64 0.01209755 0.05099041 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_materials>
<material id="Material-material" name="Material">
<instance_effect url="#Material-effect"/>
</material>
</library_materials>
<library_geometries> <library_geometries>
<geometry id="Cube_002-mesh" name="Cube.002"> <geometry id="Cube-mesh" name="Cube">
<mesh> <mesh>
<source id="Cube_002-mesh-positions"> <source id="Cube-mesh-positions">
<float_array id="Cube_002-mesh-positions-array" count="294">-1 -1 0 -1 -1 2 -1 1 0 -1 1 2 1 -1 0 1 -1 2 1 1 0 1 1 2 -1 0 0 -1 -1 1 -1 0 2 -1 1 1 0 1 0 0 1 2 1 1 1 1 0 0 1 0 2 1 -1 1 0 -1 0 0 -1 2 0 0 2 0 0 0 0 -1 1 1 0 1 0 1 1 -1 0 1 -1 -0.5 0 -1 -1 1.5 -1 0.5 2 -1 1 0.5 -0.5 1 0 0.5 1 2 1 1 0.5 1 0.5 0 1 -0.5 2 1 -1 0.5 0.5 -1 0 -0.5 -1 2 -1 0.5 0 -1 -1 0.5 -1 -0.5 2 -1 1 1.5 0.5 1 0 -0.5 1 2 1 1 1.5 1 -0.5 0 1 0.5 2 1 -1 1.5 -0.5 -1 0 0.5 -1 2 0 -0.5 2 0 0.5 2 0.5 0 2 -0.5 0 2 0 -0.5 0 0 0.5 0 -0.5 0 0 0.5 0 0 -0.5 -1 1 0.5 -1 1 0 -1 0.5 0 -1 1.5 1 -0.5 1 1 0.5 1 1 0 0.5 1 0 1.5 0.5 1 1 -0.5 1 1 0 1 0.5 0 1 1.5 -1 0.5 1 -1 -0.5 1 -1 0 0.5 -1 0 1.5 -1 -0.5 1.5 -1 -0.5 0.5 -1 0.5 0.5 -0.5 1 1.5 -0.5 1 0.5 0.5 1 0.5 1 0.5 1.5 1 0.5 0.5 1 -0.5 0.5 0.5 -1 1.5 0.5 -1 0.5 -0.5 -1 0.5 0.5 0.5 0 -0.5 0.5 0 -0.5 -0.5 0 -0.5 0.5 2 0.5 0.5 2 0.5 -0.5 2 -0.5 -0.5 2 0.5 -0.5 0 -0.5 -1 1.5 1 -0.5 1.5 0.5 1 1.5 -1 0.5 1.5</float_array> <float_array id="Cube-mesh-positions-array" count="24">1 1 -1 1 -1 -1 -1 -0.9999998 -1 -0.9999997 1 -1 1 0.9999995 1 0.9999994 -1.000001 1 -1 -0.9999997 1 -1 1 1</float_array>
<technique_common> <technique_common>
<accessor source="#Cube_002-mesh-positions-array" count="98" stride="3"> <accessor source="#Cube-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/> <param name="X" type="float"/>
<param name="Y" type="float"/> <param name="Y" type="float"/>
<param name="Z" type="float"/> <param name="Z" type="float"/>
</accessor> </accessor>
</technique_common> </technique_common>
</source> </source>
<source id="Cube_002-mesh-normals"> <source id="Cube-mesh-normals">
<float_array id="Cube_002-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array> <float_array id="Cube-mesh-normals-array" count="36">0 0 -1 0 0 1 1 0 -2.38419e-7 0 -1 -4.76837e-7 -1 2.38419e-7 -1.49012e-7 2.68221e-7 1 2.38419e-7 0 0 -1 0 0 1 1 -5.96046e-7 3.27825e-7 -4.76837e-7 -1 0 -1 2.38419e-7 -1.19209e-7 2.08616e-7 1 0</float_array>
<technique_common> <technique_common>
<accessor source="#Cube_002-mesh-normals-array" count="6" stride="3"> <accessor source="#Cube-mesh-normals-array" count="12" stride="3">
<param name="X" type="float"/> <param name="X" type="float"/>
<param name="Y" type="float"/> <param name="Y" type="float"/>
<param name="Z" type="float"/> <param name="Z" type="float"/>
</accessor> </accessor>
</technique_common> </technique_common>
</source> </source>
<vertices id="Cube_002-mesh-vertices"> <vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube_002-mesh-positions"/> <input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices> </vertices>
<triangles count="192"> <triangles material="Material-material" count="12">
<input semantic="VERTEX" source="#Cube_002-mesh-vertices" offset="0"/> <input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_002-mesh-normals" offset="1"/> <input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<p>28 0 41 0 97 0 31 1 44 1 96 1 34 2 47 2 95 2 37 3 27 3 94 3 45 4 36 4 93 4 40 5 37 5 92 5 50 5 49 5 91 5 51 5 52 5 90 5 28 5 53 5 89 5 54 4 48 4 88 4 55 4 56 4 87 4 33 4 57 4 86 4 58 3 39 3 85 3 59 3 60 3 84 3 49 3 61 3 83 3 62 2 35 2 82 2 63 2 64 2 81 2 46 2 65 2 80 2 66 1 32 1 79 1 67 1 68 1 78 1 43 1 69 1 77 1 70 0 29 0 76 0 71 0 72 0 75 0 40 0 73 0 74 0 74 0 25 0 71 0 27 0 71 0 9 0 1 0 74 0 27 0 75 0 8 0 26 0 39 0 26 0 0 0 9 0 75 0 39 0 76 0 2 0 38 0 72 0 38 0 8 0 25 0 76 0 72 0 77 1 24 1 67 1 41 1 67 1 11 1 3 1 77 1 41 1 78 1 12 1 30 1 29 1 30 1 2 1 11 1 78 1 29 1 79 1 6 1 42 1 68 1 42 1 12 1 24 1 79 1 68 1 80 2 23 2 63 2 44 2 63 2 14 2 7 2 80 2 44 2 81 2 15 2 33 2 32 2 33 2 6 2 14 2 81 2 32 2 82 2 4 2 45 2 64 2 45 2 15 2 23 2 82 2 64 2 83 3 22 3 59 3 47 3 59 3 17 3 5 3 83 3 47 3 84 3 18 3 36 3 35 3 36 3 4 3 17 3 84 3 35 3 85 3 0 3 48 3 60 3 48 3 18 3 22 3 85 3 60 3 86 4 21 4 55 4 42 4 55 4 12 4 6 4 86 4 42 4 87 4 8 4 38 4 30 4 38 4 2 4 12 4 87 4 30 4 88 4 0 4 26 4 56 4 26 4 8 4 21 4 88 4 56 4 89 5 20 5 51 5 43 5 51 5 13 5 3 5 89 5 43 5 90 5 16 5 46 5 31 5 46 5 7 5 13 5 90 5 31 5 91 5 5 5 34 5 52 5 34 5 16 5 20 5 91 5 52 5 92 5 19 5 50 5 53 5 50 5 20 5 10 5 92 5 53 5 93 4 18 4 54 4 57 4 54 4 21 4 15 4 93 4 57 4 94 3 9 3 58 3 61 3 58 3 22 3 19 3 94 3 61 3 95 2 17 2 62 2 65 2 62 2 23 2 16 2 95 2 65 2 96 1 14 1 66 1 69 1 66 1 24 1 13 1 96 1 69 1 97 0 11 0 70 0 73 0 70 0 25 0 10 0 97 0 73 0 28 0 3 0 41 0 31 1 7 1 44 1 34 2 5 2 47 2 37 3 1 3 27 3 45 4 4 4 36 4 40 5 1 5 37 5 50 5 19 5 49 5 51 5 20 5 52 5 28 5 10 5 53 5 54 4 18 4 48 4 55 4 21 4 56 4 33 4 15 4 57 4 58 3 9 3 39 3 59 3 22 3 60 3 49 3 19 3 61 3 62 2 17 2 35 2 63 2 23 2 64 2 46 2 16 2 65 2 66 1 14 1 32 1 67 1 24 1 68 1 43 1 13 1 69 1 70 0 11 0 29 0 71 0 25 0 72 0 40 0 10 0 73 0 74 0 73 0 25 0 27 0 74 0 71 0 1 0 40 0 74 0 75 0 72 0 8 0 39 0 75 0 26 0 9 0 71 0 75 0 76 0 29 0 2 0 72 0 76 0 38 0 25 0 70 0 76 0 77 1 69 1 24 1 41 1 77 1 67 1 3 1 43 1 77 1 78 1 68 1 12 1 29 1 78 1 30 1 11 1 67 1 78 1 79 1 32 1 6 1 68 1 79 1 42 1 24 1 66 1 79 1 80 2 65 2 23 2 44 2 80 2 63 2 7 2 46 2 80 2 81 2 64 2 15 2 32 2 81 2 33 2 14 2 63 2 81 2 82 2 35 2 4 2 64 2 82 2 45 2 23 2 62 2 82 2 83 3 61 3 22 3 47 3 83 3 59 3 5 3 49 3 83 3 84 3 60 3 18 3 35 3 84 3 36 3 17 3 59 3 84 3 85 3 39 3 0 3 60 3 85 3 48 3 22 3 58 3 85 3 86 4 57 4 21 4 42 4 86 4 55 4 6 4 33 4 86 4 87 4 56 4 8 4 30 4 87 4 38 4 12 4 55 4 87 4 88 4 48 4 0 4 56 4 88 4 26 4 21 4 54 4 88 4 89 5 53 5 20 5 43 5 89 5 51 5 3 5 28 5 89 5 90 5 52 5 16 5 31 5 90 5 46 5 13 5 51 5 90 5 91 5 49 5 5 5 52 5 91 5 34 5 20 5 50 5 91 5 92 5 37 5 19 5 53 5 92 5 50 5 10 5 40 5 92 5 93 4 36 4 18 4 57 4 93 4 54 4 15 4 45 4 93 4 94 3 27 3 9 3 61 3 94 3 58 3 19 3 37 3 94 3 95 2 47 2 17 2 65 2 95 2 62 2 16 2 34 2 95 2 96 1 44 1 14 1 69 1 96 1 66 1 13 1 31 1 96 1 97 0 41 0 11 0 73 0 97 0 70 0 10 0 28 0 97 0</p> <p>0 0 2 0 3 0 7 1 5 1 4 1 4 2 1 2 0 2 5 3 2 3 1 3 2 4 7 4 3 4 0 5 7 5 4 5 0 6 1 6 2 6 7 7 6 7 5 7 4 8 5 8 1 8 5 9 6 9 2 9 2 10 6 10 7 10 0 11 3 11 7 11</p>
</triangles> </triangles>
</mesh> </mesh>
</geometry> </geometry>
</library_geometries> </library_geometries>
<library_animations> <library_controllers/>
<animation id="Cube_location_X">
<source id="Cube_location_X-input">
<float_array id="Cube_location_X-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_location_X-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_X-output">
<float_array id="Cube_location_X-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_location_X-output-array" count="2" stride="1">
<param name="X" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_X-interpolation">
<Name_array id="Cube_location_X-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_location_X-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_X-intangent">
<float_array id="Cube_location_X-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_location_X-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_X-outtangent">
<float_array id="Cube_location_X-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_location_X-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_location_X-sampler">
<input semantic="INPUT" source="#Cube_location_X-input"/>
<input semantic="OUTPUT" source="#Cube_location_X-output"/>
<input semantic="INTERPOLATION" source="#Cube_location_X-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_location_X-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_location_X-outtangent"/>
</sampler>
<channel source="#Cube_location_X-sampler" target="Cube/location.X"/>
</animation>
<animation id="Cube_location_Y">
<source id="Cube_location_Y-input">
<float_array id="Cube_location_Y-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_location_Y-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Y-output">
<float_array id="Cube_location_Y-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_location_Y-output-array" count="2" stride="1">
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Y-interpolation">
<Name_array id="Cube_location_Y-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_location_Y-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Y-intangent">
<float_array id="Cube_location_Y-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_location_Y-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Y-outtangent">
<float_array id="Cube_location_Y-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_location_Y-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_location_Y-sampler">
<input semantic="INPUT" source="#Cube_location_Y-input"/>
<input semantic="OUTPUT" source="#Cube_location_Y-output"/>
<input semantic="INTERPOLATION" source="#Cube_location_Y-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_location_Y-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_location_Y-outtangent"/>
</sampler>
<channel source="#Cube_location_Y-sampler" target="Cube/location.Y"/>
</animation>
<animation id="Cube_location_Z">
<source id="Cube_location_Z-input">
<float_array id="Cube_location_Z-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_location_Z-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Z-output">
<float_array id="Cube_location_Z-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_location_Z-output-array" count="2" stride="1">
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Z-interpolation">
<Name_array id="Cube_location_Z-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_location_Z-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Z-intangent">
<float_array id="Cube_location_Z-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_location_Z-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_location_Z-outtangent">
<float_array id="Cube_location_Z-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_location_Z-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_location_Z-sampler">
<input semantic="INPUT" source="#Cube_location_Z-input"/>
<input semantic="OUTPUT" source="#Cube_location_Z-output"/>
<input semantic="INTERPOLATION" source="#Cube_location_Z-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_location_Z-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_location_Z-outtangent"/>
</sampler>
<channel source="#Cube_location_Z-sampler" target="Cube/location.Z"/>
</animation>
<animation id="Cube_rotation_euler_X">
<source id="Cube_rotation_euler_X-input">
<float_array id="Cube_rotation_euler_X-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_X-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_X-output">
<float_array id="Cube_rotation_euler_X-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_X-output-array" count="2" stride="1">
<param name="ANGLE" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_X-interpolation">
<Name_array id="Cube_rotation_euler_X-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_rotation_euler_X-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_X-intangent">
<float_array id="Cube_rotation_euler_X-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_X-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_X-outtangent">
<float_array id="Cube_rotation_euler_X-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_X-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_rotation_euler_X-sampler">
<input semantic="INPUT" source="#Cube_rotation_euler_X-input"/>
<input semantic="OUTPUT" source="#Cube_rotation_euler_X-output"/>
<input semantic="INTERPOLATION" source="#Cube_rotation_euler_X-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_rotation_euler_X-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_rotation_euler_X-outtangent"/>
</sampler>
<channel source="#Cube_rotation_euler_X-sampler" target="Cube/rotationX.ANGLE"/>
</animation>
<animation id="Cube_rotation_euler_Y">
<source id="Cube_rotation_euler_Y-input">
<float_array id="Cube_rotation_euler_Y-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Y-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Y-output">
<float_array id="Cube_rotation_euler_Y-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Y-output-array" count="2" stride="1">
<param name="ANGLE" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Y-interpolation">
<Name_array id="Cube_rotation_euler_Y-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Y-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Y-intangent">
<float_array id="Cube_rotation_euler_Y-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Y-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Y-outtangent">
<float_array id="Cube_rotation_euler_Y-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Y-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_rotation_euler_Y-sampler">
<input semantic="INPUT" source="#Cube_rotation_euler_Y-input"/>
<input semantic="OUTPUT" source="#Cube_rotation_euler_Y-output"/>
<input semantic="INTERPOLATION" source="#Cube_rotation_euler_Y-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_rotation_euler_Y-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_rotation_euler_Y-outtangent"/>
</sampler>
<channel source="#Cube_rotation_euler_Y-sampler" target="Cube/rotationY.ANGLE"/>
</animation>
<animation id="Cube_rotation_euler_Z">
<source id="Cube_rotation_euler_Z-input">
<float_array id="Cube_rotation_euler_Z-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Z-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Z-output">
<float_array id="Cube_rotation_euler_Z-output-array" count="2">0 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Z-output-array" count="2" stride="1">
<param name="ANGLE" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Z-interpolation">
<Name_array id="Cube_rotation_euler_Z-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Z-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Z-intangent">
<float_array id="Cube_rotation_euler_Z-intangent-array" count="4">-0.2674091 0 0.5242576 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Z-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_rotation_euler_Z-outtangent">
<float_array id="Cube_rotation_euler_Z-outtangent-array" count="4">0.3507424 0 1.142409 0</float_array>
<technique_common>
<accessor source="#Cube_rotation_euler_Z-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_rotation_euler_Z-sampler">
<input semantic="INPUT" source="#Cube_rotation_euler_Z-input"/>
<input semantic="OUTPUT" source="#Cube_rotation_euler_Z-output"/>
<input semantic="INTERPOLATION" source="#Cube_rotation_euler_Z-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_rotation_euler_Z-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_rotation_euler_Z-outtangent"/>
</sampler>
<channel source="#Cube_rotation_euler_Z-sampler" target="Cube/rotationZ.ANGLE"/>
</animation>
<animation id="Cube_scale_X">
<source id="Cube_scale_X-input">
<float_array id="Cube_scale_X-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_scale_X-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_X-output">
<float_array id="Cube_scale_X-output-array" count="2">1 1</float_array>
<technique_common>
<accessor source="#Cube_scale_X-output-array" count="2" stride="1">
<param name="X" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_X-interpolation">
<Name_array id="Cube_scale_X-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_scale_X-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_X-intangent">
<float_array id="Cube_scale_X-intangent-array" count="4">-0.2674091 1 0.5242576 1</float_array>
<technique_common>
<accessor source="#Cube_scale_X-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_X-outtangent">
<float_array id="Cube_scale_X-outtangent-array" count="4">0.3507424 1 1.142409 1</float_array>
<technique_common>
<accessor source="#Cube_scale_X-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_scale_X-sampler">
<input semantic="INPUT" source="#Cube_scale_X-input"/>
<input semantic="OUTPUT" source="#Cube_scale_X-output"/>
<input semantic="INTERPOLATION" source="#Cube_scale_X-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_scale_X-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_scale_X-outtangent"/>
</sampler>
<channel source="#Cube_scale_X-sampler" target="Cube/scale.X"/>
</animation>
<animation id="Cube_scale_Y">
<source id="Cube_scale_Y-input">
<float_array id="Cube_scale_Y-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_scale_Y-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Y-output">
<float_array id="Cube_scale_Y-output-array" count="2">1 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Y-output-array" count="2" stride="1">
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Y-interpolation">
<Name_array id="Cube_scale_Y-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_scale_Y-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Y-intangent">
<float_array id="Cube_scale_Y-intangent-array" count="4">-0.2674091 1 0.5242576 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Y-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Y-outtangent">
<float_array id="Cube_scale_Y-outtangent-array" count="4">0.3507424 1 1.142409 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Y-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_scale_Y-sampler">
<input semantic="INPUT" source="#Cube_scale_Y-input"/>
<input semantic="OUTPUT" source="#Cube_scale_Y-output"/>
<input semantic="INTERPOLATION" source="#Cube_scale_Y-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_scale_Y-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_scale_Y-outtangent"/>
</sampler>
<channel source="#Cube_scale_Y-sampler" target="Cube/scale.Y"/>
</animation>
<animation id="Cube_scale_Z">
<source id="Cube_scale_Z-input">
<float_array id="Cube_scale_Z-input-array" count="2">0.04166662 0.8333333</float_array>
<technique_common>
<accessor source="#Cube_scale_Z-input-array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Z-output">
<float_array id="Cube_scale_Z-output-array" count="2">1 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Z-output-array" count="2" stride="1">
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Z-interpolation">
<Name_array id="Cube_scale_Z-interpolation-array" count="2">BEZIER BEZIER</Name_array>
<technique_common>
<accessor source="#Cube_scale_Z-interpolation-array" count="2" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Z-intangent">
<float_array id="Cube_scale_Z-intangent-array" count="4">-0.2674091 1 0.5242576 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Z-intangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_scale_Z-outtangent">
<float_array id="Cube_scale_Z-outtangent-array" count="4">0.3507424 1 1.142409 1</float_array>
<technique_common>
<accessor source="#Cube_scale_Z-outtangent-array" count="2" stride="2">
<param name="X" type="float"/>
<param name="Y" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="Cube_scale_Z-sampler">
<input semantic="INPUT" source="#Cube_scale_Z-input"/>
<input semantic="OUTPUT" source="#Cube_scale_Z-output"/>
<input semantic="INTERPOLATION" source="#Cube_scale_Z-interpolation"/>
<input semantic="IN_TANGENT" source="#Cube_scale_Z-intangent"/>
<input semantic="OUT_TANGENT" source="#Cube_scale_Z-outtangent"/>
</sampler>
<channel source="#Cube_scale_Z-sampler" target="Cube/scale.Z"/>
</animation>
<animation id="Armature_Bone_pose_matrix">
<source id="Armature_Bone_pose_matrix-input">
<float_array id="Armature_Bone_pose_matrix-input-array" count="3">0.04166662 0.8333333 1.666667</float_array>
<technique_common>
<accessor source="#Armature_Bone_pose_matrix-input-array" count="3" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_pose_matrix-output">
<float_array id="Armature_Bone_pose_matrix-output-array" count="48">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Bone_pose_matrix-output-array" count="3" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_pose_matrix-interpolation">
<Name_array id="Armature_Bone_pose_matrix-interpolation-array" count="3">LINEAR LINEAR LINEAR</Name_array>
<technique_common>
<accessor source="#Armature_Bone_pose_matrix-interpolation-array" count="3" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<sampler id="Armature_Bone_pose_matrix-sampler">
<input semantic="INPUT" source="#Armature_Bone_pose_matrix-input"/>
<input semantic="OUTPUT" source="#Armature_Bone_pose_matrix-output"/>
<input semantic="INTERPOLATION" source="#Armature_Bone_pose_matrix-interpolation"/>
</sampler>
<channel source="#Armature_Bone_pose_matrix-sampler" target="Armature_Bone/transform"/>
</animation>
<animation id="Armature_Bone_002_pose_matrix">
<source id="Armature_Bone_002_pose_matrix-input">
<float_array id="Armature_Bone_002_pose_matrix-input-array" count="3">0.04166662 0.8333333 1.666667</float_array>
<technique_common>
<accessor source="#Armature_Bone_002_pose_matrix-input-array" count="3" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_002_pose_matrix-output">
<float_array id="Armature_Bone_002_pose_matrix-output-array" count="48">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Bone_002_pose_matrix-output-array" count="3" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_002_pose_matrix-interpolation">
<Name_array id="Armature_Bone_002_pose_matrix-interpolation-array" count="3">LINEAR LINEAR LINEAR</Name_array>
<technique_common>
<accessor source="#Armature_Bone_002_pose_matrix-interpolation-array" count="3" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<sampler id="Armature_Bone_002_pose_matrix-sampler">
<input semantic="INPUT" source="#Armature_Bone_002_pose_matrix-input"/>
<input semantic="OUTPUT" source="#Armature_Bone_002_pose_matrix-output"/>
<input semantic="INTERPOLATION" source="#Armature_Bone_002_pose_matrix-interpolation"/>
</sampler>
<channel source="#Armature_Bone_002_pose_matrix-sampler" target="Armature_Bone_002/transform"/>
</animation>
<animation id="Armature_Bone_001_pose_matrix">
<source id="Armature_Bone_001_pose_matrix-input">
<float_array id="Armature_Bone_001_pose_matrix-input-array" count="3">0.04166662 0.8333333 1.666667</float_array>
<technique_common>
<accessor source="#Armature_Bone_001_pose_matrix-input-array" count="3" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_001_pose_matrix-output">
<float_array id="Armature_Bone_001_pose_matrix-output-array" count="48">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1 0.5406476 0.3529544 -0.1763822 0 -0.2424221 0.8341969 -0.2256688 0.5 0.04301937 0.2650852 0.9450057 0 0 0 0 1 1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Bone_001_pose_matrix-output-array" count="3" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_001_pose_matrix-interpolation">
<Name_array id="Armature_Bone_001_pose_matrix-interpolation-array" count="3">LINEAR LINEAR LINEAR</Name_array>
<technique_common>
<accessor source="#Armature_Bone_001_pose_matrix-interpolation-array" count="3" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<sampler id="Armature_Bone_001_pose_matrix-sampler">
<input semantic="INPUT" source="#Armature_Bone_001_pose_matrix-input"/>
<input semantic="OUTPUT" source="#Armature_Bone_001_pose_matrix-output"/>
<input semantic="INTERPOLATION" source="#Armature_Bone_001_pose_matrix-interpolation"/>
</sampler>
<channel source="#Armature_Bone_001_pose_matrix-sampler" target="Armature_Bone_001/transform"/>
</animation>
<animation id="Armature_Bone_003_pose_matrix">
<source id="Armature_Bone_003_pose_matrix-input">
<float_array id="Armature_Bone_003_pose_matrix-input-array" count="3">0.04166662 0.8333333 1.666667</float_array>
<technique_common>
<accessor source="#Armature_Bone_003_pose_matrix-input-array" count="3" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_003_pose_matrix-output">
<float_array id="Armature_Bone_003_pose_matrix-output-array" count="48">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Bone_003_pose_matrix-output-array" count="3" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Bone_003_pose_matrix-interpolation">
<Name_array id="Armature_Bone_003_pose_matrix-interpolation-array" count="3">LINEAR LINEAR LINEAR</Name_array>
<technique_common>
<accessor source="#Armature_Bone_003_pose_matrix-interpolation-array" count="3" stride="1">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<sampler id="Armature_Bone_003_pose_matrix-sampler">
<input semantic="INPUT" source="#Armature_Bone_003_pose_matrix-input"/>
<input semantic="OUTPUT" source="#Armature_Bone_003_pose_matrix-output"/>
<input semantic="INTERPOLATION" source="#Armature_Bone_003_pose_matrix-interpolation"/>
</sampler>
<channel source="#Armature_Bone_003_pose_matrix-sampler" target="Armature_Bone_003/transform"/>
</animation>
</library_animations>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_002-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="4">Bone Bone_002 Bone_001 Bone_003</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="4" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="64">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 1 0 0 0 0 0 1 -0.5 0 -1 0 0 0 0 0 1 1 0 0 0 0 0 1 -1 0 -1 0 0 0 0 0 1 1 0 0 0 0 0 1 -1.5 0 -1 0 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="4" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="338">0.3447096 0.5641419 0.09114837 0.09121769 0.6926597 0.2161225 0.2161225 0.6926597 0.09121769 0.09114837 0.5641419 0.3447096 0.2161225 0.6926597 0.09121769 0.09114837 0.5641419 0.3447096 0.3447096 0.5641419 0.09114837 0.09121769 0.6926597 0.2161225 0.22878 0.7084835 0.06273645 0.1114824 0.3886053 0.3970124 0.1029 0.06273645 0.7084835 0.22878 0.1029 0.3970124 0.3886052 0.1114823 0.2287799 0.7084835 0.06273645 0.06273645 0.7084835 0.22878 0.1114824 0.3886053 0.3970124 0.1029 0.22878 0.7084835 0.06273645 0.06273645 0.7084835 0.22878 0.1029 0.3970124 0.3886052 0.1114823 0.22878 0.7084835 0.06273645 0.06273645 0.7084835 0.22878 1 1 0.09136503 0.408635 0.408635 0.09136503 0.09136503 0.408635 0.408635 0.09136503 0.09136503 0.408635 0.408635 0.09136503 0.09136503 0.408635 0.408635 0.09136503 0.2443717 0.6823307 0.07329744 0.0321002 0.1517159 0.5311362 0.2850476 0.07329744 0.6823308 0.2443718 0.2850476 0.5311361 0.1517159 0.0321002 0.210599 0.7163642 0.07303678 0.07303678 0.7163642 0.210599 0.3181867 0.5004422 0.1543055 0.02706557 0.2443717 0.6823307 0.07329744 0.07329744 0.6823308 0.2443718 0.2850476 0.5311361 0.1517159 0.0321002 0.210599 0.7163642 0.07303678 0.07303678 0.7163642 0.210599 0.210599 0.7163642 0.07303678 0.3181867 0.5004422 0.1543055 0.02706557 0.07303678 0.7163642 0.210599 0.02706557 0.1543055 0.5004422 0.3181867 0.2443718 0.6823308 0.07329744 0.07329744 0.6823308 0.2443718 0.0321002 0.1517159 0.5311362 0.2850476 0.210599 0.7163642 0.07303678 0.07303678 0.7163642 0.210599 0.02706557 0.1543055 0.5004422 0.3181867 0.2443717 0.6823307 0.07329744 0.07329744 0.6823308 0.2443718 0.002464354 0.6834716 0.314064 0.002464354 0.6834716 0.314064 0.002464354 0.6834716 0.314064 0.002464354 0.6834716 0.314064 0.314064 0.6834716 0.002464354 0.314064 0.6834716 0.002464354 0.314064 0.6834716 0.002464354 0.314064 0.6834716 0.002464354 0.1010656 0.398977 0.4030711 0.09688621 0.09688621 0.4030711 0.398977 0.1010656 0.328189 0.5365397 0.1269097 0.008361637 0.008361637 0.1269097 0.5365397 0.328189 0.09688621 0.4030711 0.398977 0.1010656 0.1010656 0.398977 0.4030711 0.09688627 0.328189 0.5365397 0.1269097 0.008361637 0.008361637 0.1269097 0.5365397 0.328189 0.1010656 0.398977 0.4030711 0.09688627 0.09688621 0.4030711 0.398977 0.1010656 0.328189 0.5365397 0.1269097 0.008361637 0.008361637 0.1269097 0.5365397 0.328189 0.09688621 0.4030711 0.398977 0.1010656 0.1010656 0.398977 0.4030711 0.09688621 0.328189 0.5365397 0.1269097 0.008361637 0.008361637 0.1269097 0.5365397 0.328189 0.01992881 0.1391872 0.5372208 0.3036632 0.3170841 0.5251039 0.140608 0.01720398 0.3036632 0.5372208 0.1391872 0.01992881 0.01720398 0.140608 0.5251039 0.3170841 0.3036632 0.5372208 0.1391872 0.01992881 0.3170841 0.5251039 0.140608 0.01720398 0.01992881 0.1391872 0.5372208 0.3036632 0.3170841 0.5251039 0.140608 0.01720398 0.3036632 0.5372208 0.1391872 0.01992881 0.01720398 0.140608 0.5251039 0.3170841 0.3036632 0.5372208 0.1391872 0.01992881 0.3170841 0.5251039 0.140608 0.01720398 0.2299401 0.7381219 0.03193795 0.2159614 0.7523441 0.03169441 0.2299401 0.7381219 0.03193795 0.03193795 0.7381219 0.2299401 0.03169441 0.7523441 0.2159614 0.03193795 0.7381219 0.2299401 0.03169441 0.7523441 0.2159614 0.2159614 0.7523441 0.03169441 0.01992881 0.1391872 0.5372208 0.3036632 0.01720398 0.140608 0.5251039 0.3170841 0.01992881 0.1391872 0.5372208 0.3036632 0.01720398 0.140608 0.5251039 0.3170841</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="338" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="98">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 4 3 4 3 3 4 3 3 4 3 3 1 1 4 4 4 4 3 4 3 4 3 3 4 3 3 4 3 3 3 4 3 4 3 3 4 3 3 4 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 </vcount>
<v>0 0 1 1 2 2 1 3 2 4 3 5 0 6 1 7 2 8 1 9 2 10 3 11 0 12 1 13 2 14 1 15 2 16 3 17 0 18 1 19 2 20 1 21 2 22 3 23 0 24 1 25 2 26 0 27 1 28 2 29 3 30 1 31 2 32 3 33 0 34 1 35 2 36 3 37 0 38 1 39 2 40 1 41 2 42 3 43 0 44 1 45 2 46 3 47 0 48 1 49 2 50 1 51 2 52 3 53 0 54 1 55 2 56 3 57 0 58 1 59 2 60 1 61 2 62 3 63 3 64 0 65 0 66 1 67 2 68 3 69 0 70 1 71 2 72 3 73 0 74 1 75 2 76 3 77 0 78 1 79 2 80 3 81 0 82 1 83 2 84 0 85 1 86 2 87 3 88 1 89 2 90 3 91 0 92 1 93 2 94 3 95 0 96 1 97 2 98 1 99 2 100 3 101 0 102 1 103 2 104 3 105 0 106 1 107 2 108 1 109 2 110 3 111 0 112 1 113 2 114 3 115 0 116 1 117 2 118 1 119 2 120 3 121 0 122 1 123 2 124 0 125 1 126 2 127 3 128 1 129 2 130 3 131 0 132 1 133 2 134 3 135 0 136 1 137 2 138 1 139 2 140 3 141 0 142 1 143 2 144 3 145 0 146 1 147 2 148 1 149 2 150 3 151 0 152 1 153 2 154 3 155 0 156 1 157 2 158 1 159 2 160 3 161 1 162 2 163 3 164 1 165 2 166 3 167 1 168 2 169 3 170 1 171 2 172 3 173 0 174 1 175 2 176 0 177 1 178 2 179 0 180 1 181 2 182 0 183 1 184 2 185 0 186 1 187 2 188 3 189 0 190 1 191 2 192 3 193 0 194 1 195 2 196 3 197 0 198 1 199 2 200 3 201 0 202 1 203 2 204 3 205 0 206 1 207 2 208 3 209 0 210 1 211 2 212 3 213 0 214 1 215 2 216 3 217 0 218 1 219 2 220 3 221 0 222 1 223 2 224 3 225 0 226 1 227 2 228 3 229 0 230 1 231 2 232 3 233 0 234 1 235 2 236 3 237 0 238 1 239 2 240 3 241 0 242 1 243 2 244 3 245 0 246 1 247 2 248 3 249 0 250 1 251 2 252 3 253 0 254 1 255 2 256 3 257 0 258 1 259 2 260 3 261 0 262 1 263 2 264 3 265 0 266 1 267 2 268 3 269 0 270 1 271 2 272 3 273 0 274 1 275 2 276 3 277 0 278 1 279 2 280 3 281 0 282 1 283 2 284 3 285 0 286 1 287 2 288 3 289 0 290 1 291 2 292 3 293 0 294 1 295 2 296 3 297 0 298 1 299 2 300 0 301 1 302 2 303 0 304 1 305 2 306 1 307 2 308 3 309 1 310 2 311 3 312 1 313 2 314 3 315 1 316 2 317 3 318 0 319 1 320 2 321 0 322 1 323 2 324 3 325 0 326 1 327 2 328 3 329 0 330 1 331 2 332 3 333 0 334 1 335 2 336 3 337</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes> <library_visual_scenes>
<visual_scene id="Scene" name="Scene"> <visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE"> <node id="Camera" name="Camera" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix> <matrix sid="transform">0.6859207 -0.3240135 0.6515582 7.481132 0.7276763 0.3054208 -0.6141704 -6.50764 0 0.8953956 0.4452714 5.343665 0 0 0 1</matrix>
<node id="Armature_Bone" name="Bone" sid="Bone" type="JOINT"> <instance_camera url="#Camera-camera"/>
<matrix sid="transform">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1</matrix> </node>
<node id="Armature_Bone_002" name="Bone.002" sid="Bone_002" type="JOINT"> <node id="Lamp" name="Lamp" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</matrix> <matrix sid="transform">-0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 5.903862 0 0 0 1</matrix>
<node id="Armature_Bone_001" name="Bone.001" sid="Bone_001" type="JOINT"> <instance_light url="#Lamp-light"/>
<matrix sid="transform">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</matrix>
<node id="Armature_Bone_003" name="Bone.003" sid="Bone_003" type="JOINT">
<matrix sid="transform">1 0 0 0 0 1 0 0.5 0 0 1 0 0 0 0 1</matrix>
<extra>
<technique profile="blender">
<connect sid="connect" type="bool">1</connect>
<layer sid="layer" type="string">0</layer>
<tip_x sid="tip_x" type="float">0</tip_x>
<tip_y sid="tip_y" type="float">0</tip_y>
<tip_z sid="tip_z" type="float">0.5</tip_z>
</technique>
</extra>
</node>
<extra>
<technique profile="blender">
<connect sid="connect" type="bool">1</connect>
<layer sid="layer" type="string">0</layer>
</technique>
</extra>
</node>
<extra>
<technique profile="blender">
<connect sid="connect" type="bool">1</connect>
<layer sid="layer" type="string">0</layer>
</technique>
</extra>
</node>
<extra>
<technique profile="blender">
<layer sid="layer" type="string">0</layer>
</technique>
</extra>
</node>
</node> </node>
<node id="Cube" name="Cube" type="NODE"> <node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate> <matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<rotate sid="rotationZ">0 0 1 0</rotate> <instance_geometry url="#Cube-mesh" name="Cube">
<rotate sid="rotationY">0 1 0 0</rotate> <bind_material>
<rotate sid="rotationX">1 0 0 0</rotate> <technique_common>
<scale sid="scale">1 1 1</scale> <instance_material symbol="Material-material" target="#Material-material"/>
<instance_controller url="#Armature_Cube-skin"> </technique_common>
<skeleton>#Armature_Bone</skeleton> </bind_material>
</instance_controller> </instance_geometry>
</node> </node>
</visual_scene> </visual_scene>
</library_visual_scenes> </library_visual_scenes>

13
src/mesh.cpp

@ -61,16 +61,17 @@ meLoadFromFile(const char* filename)
for (uint j = 0; j < 3; j++) for (uint j = 0; j < 3; j++)
mesh->indices[i * 3 + j] = scene->mMeshes[0]->mFaces[i].mIndices[j]; mesh->indices[i * 3 + j] = scene->mMeshes[0]->mFaces[i].mIndices[j];
#if 0 #if 1
// testing // material
aiMaterial* mat = scene->mMaterials[0];
aiMaterial* mat = g_scene->mMaterials[0];
aiColor3D color(0.f, 0.f, 0.f); aiColor3D color(0.f, 0.f, 0.f);
if (AI_SUCCESS != mat->Get(AI_MATKEY_COLOR_DIFFUSE, color)) { if (AI_SUCCESS != mat->Get(AI_MATKEY_COLOR_DIFFUSE, color)) {
LOG(ERROR) << "Some Assimp-type-error\n"; LOG(ERROR) << "Some Assimp-type-error\n";
} else {
mesh->diffuse_color.r = color.r;
mesh->diffuse_color.g = color.g;
mesh->diffuse_color.b = color.b;
} }
//////////
#endif #endif
// free memeory from assimp // free memeory from assimp

14
src/mesh.h

@ -6,24 +6,14 @@
#pragma once #pragma once
struct meMatInfo
{
const char* name = "";
//aiColor3D diffuse_color;
};
struct meMeshInfo struct meMeshInfo
{ {
const char* name = ""; glm::mat4 model_transform;
meMatInfo* mat;
// TODO: thinking of what properties to store
// only handle 1 mesh, 1 material, 1 texture for nw
uint num_vertices = 0; uint num_vertices = 0;
glm::vec3* vertices = nullptr; glm::vec3* vertices = nullptr;
uint num_indices = 0; uint num_indices = 0;
uint* indices = nullptr; uint* indices = nullptr;
glm::mat4 model_transform; glm::vec3 diffuse_color;
}; };

12
src/render_group.cpp

@ -130,19 +130,17 @@ rgInitEntity(gl_render_group* rg, Entity* e)
// dump vertices into temporary buffer // dump vertices into temporary buffer
uint vertex_index = 0; uint vertex_index = 0;
uint vertex_prop_index = 0; uint vertex_prop_index = 0;
GLfloat entity_test_color[3];
convertColor(entity_test_color, 0xCCCCCCFF /*0xF46000FF*/);
for (uint j = 0; j < entity_buf_len; j++) { for (uint i = 0; i < entity_buf_len; i++) {
const glm::vec3& vertex = e->mesh->vertices[vertex_index]; const glm::vec3& vertex = e->mesh->vertices[vertex_index];
switch (vertex_prop_index) { switch (vertex_prop_index) {
case 0: entity_buf[j] = vertex.x; break; case 0: entity_buf[i] = vertex.x; break;
case 1: entity_buf[j] = vertex.y; break; case 1: entity_buf[i] = vertex.y; break;
case 2: entity_buf[j] = vertex.z; break; case 2: entity_buf[i] = vertex.z; break;
} }
entity_color_buf[j] = entity_test_color[vertex_prop_index]; entity_color_buf[i] = e->mesh->diffuse_color[vertex_prop_index];
vertex_prop_index++; vertex_prop_index++;
if (vertex_prop_index == 3) { if (vertex_prop_index == 3) {

Loading…
Cancel
Save