From 25d84a6aff678e308e7ab4b8c7558004c8f8b76a Mon Sep 17 00:00:00 2001 From: ciechowoj Date: Thu, 21 Apr 2016 00:25:50 +0200 Subject: [PATCH] Adds support for area lights. --- code/AssxmlExporter.cpp | 2 +- code/BlenderLoader.cpp | 17 ++++ code/BlenderScene.cpp | 4 + code/BlenderScene.h | 4 +- code/PretransformVertices.cpp | 1 + include/assimp/light.h | 16 ++++ test/CMakeLists.txt | 1 + test/models/BLEND/AreaLight_269.blend | Bin 0 -> 498580 bytes test/unit/utBlendImportAreaLight.cpp | 113 ++++++++++++++++++++++++++ 9 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 test/models/BLEND/AreaLight_269.blend create mode 100644 test/unit/utBlendImportAreaLight.cpp diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index bcf805501..8ddbf8abc 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -179,7 +179,7 @@ static std::string encodeXML(const std::string& data) { // ----------------------------------------------------------------------------------- // Write a text model dump -static +static void WriteDump(const aiScene* scene, IOStream* io, bool shortened) { time_t tt = ::time( NULL ); tm* p = ::gmtime( &tt ); diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 574cdce9f..c5071cc26 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -1049,7 +1049,24 @@ aiLight* BlenderImporter::ConvertLight(const Scene& /*in*/, const Object* obj, c // blender orients directional lights as facing toward -z out->mDirection = aiVector3D(0.f, 0.f, -1.f); + out->mUp = aiVector3D(0.f, 1.f, 0.f); break; + + case Lamp::Type_Area: + out->mType = aiLightSource_AREA; + + if (lamp->area_shape == 0) { + out->mSize = aiVector2D(lamp->area_size, lamp->area_size); + } + else { + out->mSize = aiVector2D(lamp->area_size, lamp->area_sizey); + } + + // blender orients directional lights as facing toward -z + out->mDirection = aiVector3D(0.f, 0.f, -1.f); + out->mUp = aiVector3D(0.f, 1.f, 0.f); + break; + default: break; } diff --git a/code/BlenderScene.cpp b/code/BlenderScene.cpp index 0addd013b..cb0245fce 100644 --- a/code/BlenderScene.cpp +++ b/code/BlenderScene.cpp @@ -206,6 +206,10 @@ template <> void Structure :: Convert ( ReadField(dest.att2,"att2",db); ReadField((int&)dest.falloff_type,"falloff_type",db); ReadField(dest.sun_brightness,"sun_brightness",db); + ReadField(dest.area_size,"area_size",db); + ReadField(dest.area_sizey,"area_sizey",db); + ReadField(dest.area_sizez,"area_sizez",db); + ReadField(dest.area_shape,"area_shape",db); db.reader->IncPtr(size); } diff --git a/code/BlenderScene.h b/code/BlenderScene.h index 051b54ed3..5305789b7 100644 --- a/code/BlenderScene.h +++ b/code/BlenderScene.h @@ -371,8 +371,8 @@ struct Lamp : ElemBase { //short ray_samp, ray_sampy, ray_sampz; //short ray_samp_type; - //short area_shape; - //float area_size, area_sizey, area_sizez; + short area_shape; + float area_size, area_sizey, area_sizez; //float adapt_thresh; //short ray_samp_method; diff --git a/code/PretransformVertices.cpp b/code/PretransformVertices.cpp index d37bfd599..8158bdd6f 100644 --- a/code/PretransformVertices.cpp +++ b/code/PretransformVertices.cpp @@ -618,6 +618,7 @@ void PretransformVertices::Execute( aiScene* pScene) // transformation of the corresponding node l->mPosition = nd->mTransformation * l->mPosition; l->mDirection = aiMatrix3x3( nd->mTransformation ) * l->mDirection; + l->mUp = aiMatrix3x3( nd->mTransformation ) * l->mUp; } if( !configKeepHierarchy ) { diff --git a/include/assimp/light.h b/include/assimp/light.h index cc53a18f4..939d5b6cd 100644 --- a/include/assimp/light.h +++ b/include/assimp/light.h @@ -82,6 +82,10 @@ enum aiLightSourceType //! other properties, just a color. aiLightSource_AMBIENT = 0x4, + //! An area light is a rectangle with predefined size that uniformly + //! emits light from one of its sides. The position is center of the + //! rectangle and direction is its normal vector. + aiLightSource_AREA = 0x5, /** This value is not used. It is just there to force the * compiler to map this enum to a 32 Bit integer. @@ -135,6 +139,14 @@ struct aiLight */ C_STRUCT aiVector3D mDirection; + /** Up direction of the light source in space. Relative to the + * transformation of the node corresponding to the light. + * + * The direction is undefined for point lights. The vector + * may be normalized, but it needn't. + */ + C_STRUCT aiVector3D mUp; + /** Constant light attenuation factor. * * The intensity of the light source at a given distance 'd' from @@ -217,6 +229,9 @@ struct aiLight */ float mAngleOuterCone; + /** Size of area light source. */ + C_STRUCT aiVector2D mSize; + #ifdef __cplusplus aiLight() @@ -226,6 +241,7 @@ struct aiLight , mAttenuationQuadratic (0.f) , mAngleInnerCone ((float)AI_MATH_TWO_PI) , mAngleOuterCone ((float)AI_MATH_TWO_PI) + , mSize (0.f, 0.f) { } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a6c00dde1..0a9e10e40 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -54,6 +54,7 @@ SOURCE_GROUP( unit FILES SET( TEST_SRCS unit/AssimpAPITest.cpp + unit/utBlendImportAreaLight.cpp unit/utFastAtof.cpp unit/utFindDegenerates.cpp unit/utFindInvalidData.cpp diff --git a/test/models/BLEND/AreaLight_269.blend b/test/models/BLEND/AreaLight_269.blend new file mode 100644 index 0000000000000000000000000000000000000000..9337d5799adb12781e682f4af0373631df0e3731 GIT binary patch literal 498580 zcmeF431A#&efHN!Vi5ufx0(VKw<%X3kcg1j@{vRdIZT|xTy+#%i4<(hmE_=1N*o|y zt^@+1hEkFeDCQ2376FOl9A7b4xk1p6Oa7q|6U#*gketp^UE+^ zxu$H}3D zsQN(F2dX|$^?|AnRDGc8163cW`asnOsyH}3DsQN(F2dX|$^?|AnRDGc8163cW`asnOsyu;r;!=vj1Ov@x^dWbo+ce+h6_QKt4Cv-}nDk_xagu zfAxa{^}50Sy8jp7(-pVxRF7Z%>eprO`?O7GIzG_O4feT~Y1-?e&2J zVf*iI`+uWzx|uvzo&QZff7qY)|Cwy-M$=Z?zr6hqrv3jdZ@G5Q>)-Had*%0k)$zaF zk7oLwquuEn?bFje7q|PiZ8z+B*SkJg|GDa_ckdYG(h0wZC?^d)gOTJvJN& z+kb!B|C??9y|vxbelVRA4utK$Kkxtd=5|l}LOeD!I$vz}Ja%8I+h5-QYybakZuhhw zq{oJRX*;&FEc?^`f5{~qCcTeKx6f~r2QS%tKzs&tf7$H}3DsQN(F2dX|$^?|AnRDGc8 z163cW`asnOsyH}3DsQN(F2dX|$^?|AnRDEDy=mV#me%8{X=htdSfB2C<{ol)LwI7Br|IP_N zVcCujquQYX;{RJ;({o7V?eAEYjcZ5N=5DEl!hCqzz|i{sr@eIOk~M?4O&!jIMshvCn?$h3on^tW^`$xJsZ( zU_VXZ{4;8`RY4THmMzZwa5LVRc5Ti-~o! z!fbiRo^&2wOIjLV{isZGyB_@P?Dekj`rP~{nRG_DZSX7EB5ZyMWAWBY%FlQI#R=Jb z)A8~p=PZe0*81JjB=5V|(VjAr$F;B{Yli##XOaHA+H>ZtIOK;hlCU_3)P6Sakhoa2 zt=DYy!9g<%W98oQre9^R5B%R3XX{rVKjZFfl3hnL-uCqJc}0n8KZM6|d3v|N;bFsJ<=Mw9?>cX=|D|0gZ(6sm;Uv>Osf>#gj;$DCJ$sq| zcs}0zTzGdr-ufqvm#==j%^N+m*mw(%V?XH%(`h-rA0Ef$9Jq<)3J)6&s?&6;>-{*} zRqeUBJ6liHX*$)d`V4hyPjy=slLyMh7q#a)9%+7>PIUu$&T3C}wb~=*&j|^r zPSdGQ)2Ti2mIba`7@pL2{KxP(>tCmqx1ZKCUG6yFSl^pZulli^)voeQmtXaoUiAx4 z%X7-xQGL1|s@L?Y-_T`hmJdQGqTj=UeMU9GqBRgRj!rdPf82eqs9ZdR}9Rj>Bd zu9mw|{qPhDxvwZc6b5@TI4XqnlJ#^tE{cA?!Tg=Au zNuQl<{aM-ky3UC+Pup&l|L?E&?1`IXPh8=`aKFN1JycH0MLCV1O-{;B(`%fr=Y_+Y zMh5g^3**_=FP-818ZFW-zuB|r>hQvolAN-W&7?p%DHr9`eGWM(zoe|za6PlWl}_21 zXImdTQsb6efA+LIrxWuM?d}>ETT)KSMLBIdmz)BcYs>i*lMckDQdB+S0i3dal_td}&KDHOaa4`eiN8NlQF={H7*3 zHG1!%oRo`lTD6LtlwUfR#yRzE+}PhY+_z!Pv|-J*eo4!7N|)TcsYy=v@g(&}%1OB> zr?Kaglk%$<7)&Lw)JOi9333m(DtD&Tc&Hn@h*D&nq&zN zPdK7-QZCA=^M&N3{L<2NJ+tH8>JZiFrr~KjQ)q0q_2;xar*z59FK*JG8lCPbC*`7? zHou6Rl%HGYk=Ju%&8Br5M^_KcYy;1>esA=rhcwA4e;Za>W#yz?l+*Z&$w~Q@iULep z&yma4ukRlnzAT-v3D35E<;-T+a4CMB?{|7p$GZ+aQ5Y*H<)WOrSCfuSd_VmaIsIj_a>?m=_NsDHF3L&o8oVWTCunwEMz5=#e7rb}Cta5r z55Ef^PbO>!x&C!%?a|>17(;8VPOK#djoX=btf}|MyuGwPHfz`YXZe(CcAfA; zce<$sW-k!@l9`gb%L0Z2r9PlT6tF z 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 z&G^)ePtEw$j8Dz@)QnHf_|%L~&G^)ePtEw$j8Dz@)QnHf_|%L~&G^)ePtEw$j8Dz@ z)QnHf_|%L~&G^)ePtEw$j8Dz@)QnHf_|%L~&G^)ePtEw$j8Dz@)QnHf_|%L~&G^)e zPtEw$j8Dz@)QnHf_|%L~&G^)ePtEw$j8Dz@)QnHfwal+N-KoO8Lc%U(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)F{`3L#Mj9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0^m!`z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU-bD*`NfQ1%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9>J5Z~4WH zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)F{{So=aj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0^nEn>#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU-bP}`NfQ1%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9>J9dHKbRU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ec{|))Y zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0bUz>Y#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOUvz&k`NfQ1%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9+xWLHWguU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ec|5EwIj9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0 z%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7 z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0bU$SI z#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEO zU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff z_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ zj9<+7#f)Ff_{EH0%=pEOUvz(U`NfQ1%=pEOU(EQ$j9<+7#f)Ff_{EH0%=pEOU(EQ$ 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 YHTBcHCuiU+ob!~cR<<+^+<*T4AI`?dN&o-= literal 0 HcmV?d00001 diff --git a/test/unit/utBlendImportAreaLight.cpp b/test/unit/utBlendImportAreaLight.cpp new file mode 100644 index 000000000..603a5e513 --- /dev/null +++ b/test/unit/utBlendImportAreaLight.cpp @@ -0,0 +1,113 @@ +/* +--------------------------------------------------------------------------- +Open Asset Import Library (assimp) +--------------------------------------------------------------------------- + +Copyright (c) 2006-2016, assimp team + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following +conditions are met: + +* Redistributions of source code must retain the above +copyright notice, this list of conditions and the +following disclaimer. + +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other +materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its +contributors may be used to endorse or promote products +derived from this software without specific prior +written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------------- +*/ +#include "UnitTestPCH.h" + +#include +#include +#include +#include + +class BlendImportAreaLight : public ::testing::Test { +public: + + virtual void SetUp() + { + im = new Assimp::Importer(); + } + + virtual void TearDown() + { + delete im; + } + +protected: + + Assimp::Importer* im; +}; + +// ------------------------------------------------------------------------------------------------ +TEST_F(BlendImportAreaLight, testImportLight) +{ + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/AreaLight_269.blend",0); + ASSERT_TRUE(pTest != NULL); + ASSERT_TRUE(pTest->HasLights()); + + std::vector< std::pair > lightNames; + + for (size_t i = 0; i < pTest->mNumLights; i++) { + lightNames.push_back(std::make_pair(pTest->mLights[i]->mName.C_Str(), i)); + } + + std::sort(lightNames.begin(), lightNames.end()); + + std::vector lights; + + for (size_t i = 0; i < pTest->mNumLights; ++i) { + lights.push_back(*pTest->mLights[lightNames[i].second]); + } + + ASSERT_STREQ(lights[0].mName.C_Str(), "Bar"); + ASSERT_STREQ(lights[1].mName.C_Str(), "Baz"); + ASSERT_STREQ(lights[2].mName.C_Str(), "Foo"); + + ASSERT_EQ(lights[0].mType, aiLightSource_AREA); + ASSERT_EQ(lights[1].mType, aiLightSource_POINT); + ASSERT_EQ(lights[2].mType, aiLightSource_AREA); + + EXPECT_FLOAT_EQ(lights[0].mSize.x, 0.5f); + EXPECT_FLOAT_EQ(lights[0].mSize.y, 2.0f); + EXPECT_FLOAT_EQ(lights[2].mSize.x, 1.0f); + EXPECT_FLOAT_EQ(lights[2].mSize.y, 1.0f); + + EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.r, 42.0f); + EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.g, 42.0f); + EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.b, 42.0f); + EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.r, 1.0f); + EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.g, 1.0f); + EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.b, 1.0f); + + EXPECT_FLOAT_EQ(lights[0].mDirection.x, 0.0f); + EXPECT_FLOAT_EQ(lights[0].mDirection.y, 0.0f); + EXPECT_FLOAT_EQ(lights[0].mDirection.z, -1.0f); + EXPECT_FLOAT_EQ(lights[2].mDirection.x, 0.0f); + EXPECT_FLOAT_EQ(lights[2].mDirection.y, 0.0f); + EXPECT_FLOAT_EQ(lights[2].mDirection.z, -1.0f); +}