<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;
        mso-fareast-language:DE-AT;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:"Courier New";
        mso-fareast-language:DE-AT;}
span.E-MailFormatvorlage20
        {mso-style-type:personal;
        font-family:"Arial",sans-serif;
        color:windowtext;}
span.E-MailFormatvorlage21
        {mso-style-type:personal;
        font-family:"Arial",sans-serif;
        color:windowtext;}
span.E-MailFormatvorlage22
        {mso-style-type:personal-compose;
        font-family:"Arial",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:2033452768;
        mso-list-type:hybrid;
        mso-list-template-ids:-808007584 1079179518 201785347 201785349 201785345 201785347 201785349 201785345 201785347 201785349;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:21.0pt;
        text-indent:-18.0pt;
        font-family:"Arial",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:57.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:93.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:129.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:165.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:201.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:237.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:273.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:309.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=DE-AT link="#0563C1" vlink="#954F72"><div class=WordSection1><p>Hello,<span style='font-size:12.0pt;mso-fareast-language:DE-AT'><o:p></o:p></span></p><p style='margin-left:35.4pt'>QDiffuseSpecularMapMaterial should have a setDiffuse/setSpecular which expects a Qt3DRender::QAbstractTexture * so you would need to create Qt3DRender::QTexture2D instances and set your painted images on these.<o:p></o:p></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>I have been experimented a bit and discovered:<o:p></o:p></span></p><p style='margin-left:21.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>Although I get the shader error message the resulting 3D scene looks reasonable (the texture and some dump-mapping effect are visible).<o:p></o:p></span></p><p style='margin-left:21.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>The problem seems to be specific to my computer/configuration/hardware. My office neighbor (with a newer computer and a better graphics card) has no problems.<o:p></o:p></span></p><p style='margin-left:21.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span lang=EN-US>QDiffuseSpecularMapMaterial is obsolete, so I tried to replace it with  </span><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#2AA198;mso-fareast-language:DE-AT'>QDiffuseSpecularMaterial.</span><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'><o:p></o:p></span></p><p style='margin-left:35.4pt'><span lang=EN-US>There's a manual test in the qt3d sources which should be doing that: </span><a href="https://code.qt.io/cgit/qt/qt3d.git/tree/tests/manual/paintedtexture-cpp/scene.cpp"><span lang=EN-US>https://code.qt.io/cgit/qt/qt3d.git/tree/tests/manual/paintedtexture-cpp/scene.cpp</span></a><o:p></o:p></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>With </span><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#2AA198;mso-fareast-language:DE-AT'>QDiffuseSpecularMaterial </span><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>of course one has to use e.g. material->setNormal(QVariant::fromValue(normalTexture)).<o:p></o:p></span></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>But the resulting scene did now fulfill my expectations – with large rectangular pixels on the surfaces and no siginifact bump mapping.<o:p></o:p></span></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>What I really would like to achieve: I get the model data (a profile that is extended in z direction) and a surface texture from a database.<o:p></o:p></span></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>I would like to display this model with directional light from the camera viewpoint with the surface texture (with optional color table modification) and with some dump-mapping effect (derived from the surface texture and/or from random noise).<o:p></o:p></span></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>This worked reasonable well with Qt-5.9.4 using </span><span lang=EN-US>QNormalDiffuseMapMaterial. But I am sure there can be a better, more efficient solution that also looks better. Only problem: I am not yet experienced enough with OpenGL and Qt3D. </span><span lang=EN-US style='font-family:Wingdings'>J</span><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'><o:p></o:p></span></p><p style='margin-left:35.4pt'><span lang=EN-US>QNormalDiffuseMapMaterial should still be usable though. </span>What has changed however is that before we would provide shader versions for each GL version. Now instead we generate a graph that gets converted to (in theory) correct shader code at runtime based on the GL version we find at runtime. I suspect we may not be handling the ES2 case properly. What is odd though is that Qt3D seems to detect GL3 support but you say your driver's glsl compiler only supports ES2. If that's the case, in your main.cpp I'd suggest setting the QSurfaceFormat::defaultFormat() to OpenGL ES2.0 so that Qt3D only uses ES2 compatible GL functions.<o:p></o:p></p><p style='margin-left:35.4pt'>Please feel free to file a bug report about that and assign it to me please.<o:p></o:p></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>I will try to further isolate the problem and report then and would be thankful for hints where to look.<o:p></o:p></span></p><p><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext'>BTW: The “Qt 3D: PBR Materials QML Example” crashes on my computer but the GL 4.x and GL 3.x demos of the Geeks3d GUP Caps Viewer work.<o:p></o:p></span></p><div><p class=MsoNormal><span style='color:windowtext'>Helmut<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>On 4/2/19 1:13 PM, Helmut Mülner wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>Hi,</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>I have a Windows 10 (Qt-5.9.6, msvc2017_64) desktop application with a big C++ backend and the frontend in QML.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>I recently tried to upgrade to Qt-5.12.2, but now the </span><span lang=EN-US style='font-family:"Arial",sans-serif'>QNormalDiffuseMapMaterial does not work anymore.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>I display a 3D-model that is generated from database data.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>The front-end is simple:</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>Scene3D {</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    id: scene3d</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    width: 4</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    focus: true</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    aspects: ["input", "logic"]</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    cameraAspectRatioMode: Scene3D.AutomaticAspectRatio</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    enabled: visible</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    visible: false</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>    entity: controller.myCustomEntity</span><o:p></o:p></p><p class=MsoNormal style='background:#FDF6E3'><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#657B83;mso-fareast-language:DE-AT'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>myCustomEntity is derived from Qt3DCore:QEntity.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Setting up the material is done this way:</span><o:p></o:p></p><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>material</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:blue'>new</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>Qt3DExtras</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>::</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QNormalDiffuseMapMaterial</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>();</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:navy'>material</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>-></span><span lang=EN-US style='font-family:Consolas;color:#880000'>setShininess</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#2AA198'>10.0f</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:navy'>material</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>-></span><span lang=EN-US style='font-family:Consolas;color:#880000'>setAmbient</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QColor</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>colorString</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>));</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:navy'>material</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>-></span><span lang=EN-US style='font-family:Consolas;color:#880000'>setSpecular</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QColor</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#2AA198'>20</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>, </span><span lang=EN-US style='font-family:Consolas;color:#2AA198'>20</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>, </span><span lang=EN-US style='font-family:Consolas;color:#2AA198'>20</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>));</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>width</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>some_width()</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>;</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>height</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>some_height()</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>;</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>heightMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:#880000'>createSomeHeightMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> (</span><span lang=EN-US style='font-family:Consolas;color:navy'>width</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>, </span><span lang=EN-US style='font-family:Consolas;color:navy'>height, …</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#880000'>img</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:navy'>heightMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>convertToFormat</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>::</span><span lang=EN-US style='font-family:Consolas;color:#6F008A'>Format_Indexed8</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        // </span><span lang=EN-US style='font-family:Consolas;color:#880000'>img</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>setColorCount</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>colortable</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>size</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>());</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        // </span><span lang=EN-US style='font-family:Consolas;color:#880000'>img</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>setColorTable</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>colortable</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>); // use a specific color table</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>textureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:#880000'>img</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>convertToFormat</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>::</span><span lang=EN-US style='font-family:Consolas;color:#6F008A'>Format_ARGB32</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>* </span><span lang=EN-US style='font-family:Consolas;color:navy'>diffuseImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:blue'>new</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>MyTextureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>textureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:navy'>material</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>-></span><span lang=EN-US style='font-family:Consolas;color:#880000'>diffuse</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>()-></span><span lang=EN-US style='font-family:Consolas;color:#880000'>addTextureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>diffuseImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>normalMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>RailEntityPrivate</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>::</span><span lang=EN-US style='font-family:Consolas;color:#880000'>makeNormalMapFromHeightMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>heightMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>auto</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>* </span><span lang=EN-US style='font-family:Consolas;color:navy'>normalImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> = </span><span lang=EN-US style='font-family:Consolas;color:blue'>new</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>MyTextureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>normalMap</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span style='font-family:Consolas;color:navy'>material</span><span style='font-family:Consolas;color:#657B83'>-></span><span style='font-family:Consolas;color:navy'>normal</span><span style='font-family:Consolas;color:#657B83'>()-></span><span style='font-family:Consolas;color:#880000'>addTextureImage</span><span style='font-family:Consolas;color:#657B83'>(</span><span style='font-family:Consolas;color:navy'>normalImage</span><span style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'>         …</span><o:p></o:p></pre><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Using:</span><o:p></o:p></p><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#719A07'>class</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>MyTextureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> : </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>public</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>Qt3DRender</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>::</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QPaintedTextureImage</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>{</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#719A07'>public</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>:</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>    </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>explicit</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#216F85'>MyTextureImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QImage</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:navy'>image</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>)</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        : </span><span lang=EN-US style='font-family:Consolas;color:navy'>image</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>image</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>)</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>    {</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span lang=EN-US style='font-family:Consolas;color:#880000'>setSize</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:navy'>image</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>.</span><span lang=EN-US style='font-family:Consolas;color:#880000'>size</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>());</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>    }</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#719A07'>protected</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>:</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>    </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>void</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> </span><span lang=EN-US style='font-family:Consolas;color:#880000'>paint</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>(</span><span lang=EN-US style='font-family:Consolas;color:#216F85'>QPainter</span><span lang=EN-US style='font-family:Consolas;color:#657B83'> *</span><span lang=EN-US style='font-family:Consolas;color:navy'>painter</span><span lang=EN-US style='font-family:Consolas;color:#657B83'>) </span><span lang=EN-US style='font-family:Consolas;color:#719A07'>override</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>    {</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span lang=EN-US style='font-family:Consolas;color:#657B83'>        </span><span style='font-family:Consolas;color:navy'>painter</span><span style='font-family:Consolas;color:#657B83'>-></span><span style='font-family:Consolas;color:#880000'>drawImage</span><span style='font-family:Consolas;color:#657B83'>(</span><span style='font-family:Consolas;color:#2AA198'>0</span><span style='font-family:Consolas;color:#657B83'>, </span><span style='font-family:Consolas;color:#2AA198'>0</span><span style='font-family:Consolas;color:#657B83'>, </span><span style='font-family:Consolas;color:navy'>image</span><span style='font-family:Consolas;color:#657B83'>);</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'>    }</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'> </span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#719A07'>private</span><span style='font-family:Consolas;color:#657B83'>:</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'>    </span><span style='font-family:Consolas;color:#216F85'>QImage</span><span style='font-family:Consolas;color:#657B83'> </span><span style='font-family:Consolas;color:navy'>image</span><span style='font-family:Consolas;color:#657B83'>;</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'>};</span><o:p></o:p></pre><pre style='background:#FDF6E3'><span style='font-family:Consolas;color:#657B83'> </span><o:p></o:p></pre><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>After upgrading to Qt 5.12.2 and enabling some trace categories I get:</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Using sg animation driver</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Animation Driver: using vsync: 16.67 ms</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: texture atlas dimensions: 1024x1024</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: R/G/B/A Buffers:   8 8 8 8</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Depth Buffer:      24</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Stencil Buffer:    8</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Samples:           0</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: GL_VENDOR:         Intel</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: GL_RENDERER:       Intel(R) HD Graphics 4000</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: GL_VERSION:        4.0.0 - Build 10.18.10.5059</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: GL_EXTENSIONS:     GL_ARB_shading_language_packing GL_ARB_color_buffer_float GL_ARB_fragment_program_shadow GL_ARB_seamless_cube_map GL_EXT_texture_swizzle GL_NV_texgen_reflection GL_ARB_get_program_binary GL_EXT_texture_shared_exponent GL_ARB_vertex_array_bgra GL_EXT_framebuffer_multisample WGL_ARB_create_context_profile WGL_ARB_pixel_format GL_ARB_draw_elements_base_vertex GL_ARB_texture_compression_bptc GL_ARB_draw_instanced GL_ARB_blend_func_extended GL_ARB_transform_feedback3 WGL_ARB_buffer_region GL_SGIS_generate_mipmap GL_ATI_separate_stencil GL_ARB_fragment_program GL_EXT_texture_sRGB GL_EXT_texture_storage GL_ARB_map_buffer_range GL_EXT_texture_rectangle GL_ARB_texture_swizzle GL_WIN_swap_hint GL_EXT_compiled_vertex_array GL_EXT_texture_snorm GL_EXT_geometry_shader4 GL_ARB_texture_env_dot3 GL_ARB_texture_cube_map_array GL_EXT_draw_buffers2 GL_ARB_texture_border_clamp GL_ARB_pixel_buffer_object GL_ARB_texture_non_power_of_two GL_ARB_multi_draw_indirect GL_ARB_vertex_type_2_10_10_</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>10_rev GL_INTEL_performance_queries GL_ARB_buffer_storage GL_EXT_framebuffer_blit GL_ARB_map_buffer_alignment GL_ARB_transform_feedback_instanced GL_EXT_texture_lod_bias GL_ARB_texture_cube_map GL_KHR_debug GL_EXT_clip_volume_hint GL_ARB_point_sprite GL_EXT_blend_func_separate GL_ARB_texture_rectangle GL_ARB_sampler_objects GL_ARB_texture_storage GL_SUN_multi_draw_arrays WGL_EXT_extensions_string GL_SGIS_texture_edge_clamp GL_EXT_shader_integer_mix GL_ARB_timer_query GL_ARB_base_instance WGL_EXT_swap_control_tear GL_EXT_texture3D GL_ARB_texture_rg GL_ARB_debug_output GL_EXT_stencil_wrap GL_ARB_framebuffer_sRGB GL_ARB_provoking_vertex GL_ARB_shader_subroutine GL_SGIS_texture_lod GL_EXT_texture_array GL_ARB_window_pos GL_EXT_packed_depth_stencil GL_ARB_program_interface_query GL_IBM_texture_mirrored_repeat WGL_ARB_pixel_format_float WGL_ARB_create_context GL_EXT_stencil_two_side GL_ARB_sync GL_EXT_separate_specular_color GL_ARB_shading_language_100 GL_ARB_vertex_array_object GL_ARB_occlusion_query2 GL_ARB_textur</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>e_env_crossbar GL_ARB_texture_buffer_range GL_EXT_texture_integer GL_EXT_gpu_program_parameters WGL_EXT_depth_float GL_ARB_texture_storage_multisample GL_ARB_framebuffer_no_attachments GL_NV_conditional_render GL_ARB_tessellation_shader GL_ARB_robustness GL_ARB_stencil_texturing GL_ARB_texture_rgb10_a2ui GL_ARB_texture_env_combine GL_ARB_fragment_shader GL_ARB_texture_float GL_EXT_abgr GL_ARB_sample_shading GL_ARB_explicit_attrib_location GL_INTEL_performance_query GL_EXT_framebuffer_object WGL_ARB_framebuffer_sRGB GL_EXT_secondary_color GL_ARB_texture_compression GL_EXT_blend_minmax GL_EXT_blend_color GL_EXT_rescale_normal WGL_NV_DX_interop GL_ARB_depth_clamp GL_ARB_transpose_matrix GL_ARB_transform_feedback2 GL_ARB_vertex_shader GL_ARB_instanced_arrays WGL_ARB_make_current_read GL_ARB_gpu_shader5 WGL_EXT_create_context_es2_profile GL_ARB_geometry_shader4 GL_EXT_blend_equation_separate GL_ARB_conservative_depth GL_ARB_texture_buffer_object_rgb32 GL_ARB_copy_buffer GL_ARB_shadow GL_KHR_blend_equation_advanced </span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>GL_ARB_internalformat_query GL_EXT_texture_filter_anisotropic GL_ARB_occlusion_query GL_ARB_uniform_buffer_object WGL_ARB_extensions_string GL_EXT_fog_coord GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counters GL_ARB_draw_buffers GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_ARB_shader_precision GL_ARB_compatibility GL_ARB_vertex_buffer_object GL_ARB_arrays_of_arrays GL_ARB_vertex_attrib_binding GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_EXT_multi_draw_arrays GL_ARB_texture_env_add GL_ARB_framebuffer_object GL_EXT_texture_env_combine GL_ARB_draw_indirect WGL_EXT_create_context_es_profile WGL_EXT_swap_control GL_ARB_texture_gather GL_NV_blend_square GL_EXT_packed_pixels GL_EXT_texture_compression_s3tc GL_NV_primitive_restart GL_EXT_shadow_funcs GL_ARB_ES3_compatibility GL_ARB_internalformat_query2 GL_EXT_gpu_shader4 GL_ARB_ES2_compatibility GL_INTEL_map_texture GL_ARB_depth_texture GL_EXT_bgra GL_ARB_vertex_attrib_64bit GL_ARB_texture_multisample GL_ARB_fragment_coord_conventions GL_ARB_m</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>ultitexture GL_ARB_draw_buffers_blend GL_ARB_gpu_shader_fp64 WGL_ARB_multisample GL_EXT_texture_buffer GL_ARB_half_float_vertex GL_EXT_transform_feedback GL_EXT_draw_range_elements WGL_EXT_pixel_format_packed_float GL_ARB_half_float_pixel WGL_ARB_pbuffer WGL_ARB_create_context_robustness GL_ARB_vertex_program GL_ARB_texture_query_lod GL_ARB_depth_buffer_float GL_ARB_shading_language_420pack GL_EXT_texture_sRGB_decode GL_EXT_blend_subtract GL_3DFX_texture_compression_FXT1 GL_ARB_point_parameters GL_ARB_compressed_texture_pixel_storage GL_ARB_multisample GL_ARB_viewport_array GL_ARB_texture_compression_rgtc GL_EXT_packed_float</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Max Texture Size: 16384</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: Debug context:    false</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>…</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>qt.scenegraph.general: animation driver switched to timer mode</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>Qt3D.Renderer.Backend: class Qt3DRender::Render::GraphicsHelperInterface *__cdecl Qt3DRender::Render::GraphicsContext::resolveHighestOpenGLFunctions(void)  Building OpenGL 3.3</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>Qt3D.Renderer.Backend: context supports 16 texture units</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>Qt3D.Renderer.Backend: VAO support =  true</span><o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span lang=EN-US style='font-size:9.5pt;font-family:Consolas'>Qt3D.Renderer.Backend: class Qt3DRender::Render::GraphicsHelperInterface *__cdecl Qt3DRender::Render::GraphicsContext::resolveHighestOpenGLFunctions(void)  Building OpenGL 3.3</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>…</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Backend: class Qt3DRender::Render::GraphicsHelperInterface *__cdecl Qt3DRender::Render::GraphicsContext::resolveHighestOpenGLFunctions(void)  Building OpenGL 3.3</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "texCoordScale" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "modelMatrix" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "modelNormalMatrix" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "modelViewProjection" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "envLightCount" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lightCount" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].type" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].position" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].color" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].intensity" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].direction" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].constantAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].linearAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].quadraticAttenuation" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[0].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[1].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[2].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[3].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[4].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[5].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[6].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "lights[7].cutOffAngle" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "normalTexture" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "eyePosition" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "shininess" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "ks" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "diffuseTexture" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Uniform in Default Block  "ka" -1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Attribute  "vertexTexCoord"</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Attribute  "vertexPosition"</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Attribute  "vertexNormal"</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Qt3D.Renderer.Shaders: Active Attribute  "vertexTangent"</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>QOpenGLShader::compile(Fragment): ERROR: 4:63: 'const' : overloaded functions must have the same parameter qualifiers </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:63: 'lightCount' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:63: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:63: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:63: '<' :  wrong operand types  no operation '<' exists that takes a left-hand operand of type 'int' and a right operand of type 'float' (or there is no acceptable conversion)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:65: 'light' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:65: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:67: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:69: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:71: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:73: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:75: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:77: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:79: 'assign' :  cannot convert from 'uniform structure' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:82: 'type' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:82: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:82: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:82: '!=' :  wrong operand types  no operation '!=' exists that takes a left-hand operand of type 'float' and a right operand of type 'const int' (or there is no acceptable conversion)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:83: 's' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:83: 'position' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:83: 'assign' :  cannot convert from '3-component vector of float' to 'float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:84: 'attenuation' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'attenuation' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'x' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'attenuation' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'y' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'attenuation' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:86: 'z' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:89: 'type' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:89: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:89: 'assign' : implicit conversion between types not allowed in ES 2.0 </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:89: '==' :  wrong operand types  no operation '==' exists that takes a left-hand operand of type 'float' and a right operand of type 'const int' (or there is no acceptable conversion)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:90: 'direction' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:90: 'cutOffAngle' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:94: 's' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:94: 'direction' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:97: 's' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:97: 'dot' : no matching overloaded function found - implicit conversion not allowed </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:101: 'reflect' : no matching overloaded function found - implicit conversion not allowed </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:101: '=' :  cannot convert from 'const float' to '3-component vector of float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:106: 'intensity' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:106: 'color' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:107: 'intensity' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:107: 'color' :  field selection requires structure, vector, or matrix on left hand side </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:121: 'diffuseColor' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:121: 'specularColor' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:121: 'adsModel' : no matching overloaded function found - implicit conversion not allowed </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:20: 'normalTexture' : undeclared identifier </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:20: 'texture2D' : no matching overloaded function found - implicit conversion not allowed </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>ERROR: 4:20: '=' :  cannot convert from 'const float' to '4-component vector of float'</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>*** Problematic Fragment shader source code ***</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#version 110</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#ifdef GL_KHR_blend_equation_advanced</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#extension GL_ARB_fragment_coord_conventions : enable</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#extension GL_KHR_blend_equation_advanced : enable</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#endif</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#define lowp</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#define mediump</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#define highp</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#line 1</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>varying highp vec3 worldPosition;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform highp vec3 eyePosition;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>varying highp vec3 worldNormal;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>varying highp vec4 worldTangent;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>varying highp vec2 texCoord;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform highp vec4 ka;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform sampler2D diffuseTexture;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform highp vec4 ks;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform highp float shininess;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>/****************************************************************************</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Contact: <a href="https://www.qt.io/licensing/">https://www.qt.io/licensing/</a></span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** This file is part of the Qt3D module of the Qt Toolkit.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** $QT_BEGIN_LICENSE:BSD$</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Commercial License Usage</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Licensees holding valid commercial Qt licenses may use this file in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** accordance with the commercial license agreement provided with the</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Software or, alternatively, in accordance with the terms contained in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** a written agreement between you and The Qt Company. For licensing terms</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** and conditions see <a href="https://www.qt.io/terms-conditions">https://www.qt.io/terms-conditions</a>. For further</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** information use the contact form at <a href="https://www.qt.io/contact-us">https://www.qt.io/contact-us</a>.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** BSD License Usage</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Alternatively, you may use this file under the terms of the BSD license</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** as follows:</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** "Redistribution and use in source and binary forms, with or without</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** modification, are permitted provided that the following conditions are</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** met:</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Redistributions of source code must retain the above copyright</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     notice, this list of conditions and the following disclaimer.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Redistributions in binary form must reproduce the above copyright</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     notice, this list of conditions and the following disclaimer in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     the documentation and/or other materials provided with the</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     distribution.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Neither the name of The Qt Company Ltd nor the names of its</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     contributors may be used to endorse or promote products derived</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     from this software without specific prior written permission.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** $QT_END_LICENSE$</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>****************************************************************************/</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#define FP highp</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>FP mat3 transpose(const in FP mat3 inputMatrix)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>{</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 i0 = inputMatrix[0];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 i1 = inputMatrix[1];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 i2 = inputMatrix[2];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP mat3 outputMatrix = mat3(</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        vec3(i0.x, i1.x, i2.x),</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        vec3(i0.y, i1.y, i2.y),</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        vec3(i0.z, i1.z, i2.z)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    return outputMatrix;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>FP mat3 calcWorldSpaceToTangentSpaceMatrix(const in FP vec3 wNormal, const in FP vec4 wTangent)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>{</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // Make the tangent truly orthogonal to the normal by using Gram-Schmidt.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // This allows to build the tangentMatrix below by simply transposing the</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // tangent -> eyespace matrix (which would now be orthogonal)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 wFixedTangent = normalize(wTangent.xyz - dot(wTangent.xyz, wNormal) * wNormal);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // Calculate binormal vector. No "real" need to renormalize it,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // as built by crossing two normal vectors.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // To orient the binormal correctly, use the fourth coordinate of the tangent,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // which is +1 for a right hand system, and -1 for a left hand system.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 wBinormal = cross(wNormal, wFixedTangent.xyz) * wTangent.w;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // Construct matrix to transform from world space to tangent space</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // This is the transpose of the tangentToWorld transformation matrix</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP mat3 tangentToWorldMatrix = mat3(wFixedTangent, wBinormal, wNormal);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP mat3 worldToTangentMatrix = transpose(tangentToWorldMatrix);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    return worldToTangentMatrix;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#line 13</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform sampler2D normalTexture;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>/****************************************************************************</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Contact: <a href="https://www.qt.io/licensing/">https://www.qt.io/licensing/</a></span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** This file is part of the Qt3D module of the Qt Toolkit.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** $QT_BEGIN_LICENSE:BSD$</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Commercial License Usage</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Licensees holding valid commercial Qt licenses may use this file in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** accordance with the commercial license agreement provided with the</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Software or, alternatively, in accordance with the terms contained in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** a written agreement between you and The Qt Company. For licensing terms</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** and conditions see <a href="https://www.qt.io/terms-conditions">https://www.qt.io/terms-conditions</a>. For further</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** information use the contact form at <a href="https://www.qt.io/contact-us">https://www.qt.io/contact-us</a>.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** BSD License Usage</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** Alternatively, you may use this file under the terms of the BSD license</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** as follows:</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** "Redistribution and use in source and binary forms, with or without</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** modification, are permitted provided that the following conditions are</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** met:</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Redistributions of source code must retain the above copyright</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     notice, this list of conditions and the following disclaimer.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Redistributions in binary form must reproduce the above copyright</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     notice, this list of conditions and the following disclaimer in</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     the documentation and/or other materials provided with the</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     distribution.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**   * Neither the name of The Qt Company Ltd nor the names of its</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     contributors may be used to endorse or promote products derived</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**     from this software without specific prior written permission.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>** $QT_END_LICENSE$</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>**</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>****************************************************************************/</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#define FP highp</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>const int MAX_LIGHTS = 8;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>const int TYPE_POINT = 0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>const int TYPE_DIRECTIONAL = 1;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>const int TYPE_SPOT = 2;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>struct Light {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    int type;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 position;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 color;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP float intensity;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 direction;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 attenuation;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP float cutOffAngle;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>};</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform Light lights[MAX_LIGHTS];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>uniform int lightCount;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#line 52</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>void adsModel(const in FP vec3 vpos, const in FP vec3 vnormal, const in FP vec3 vview, const in FP float shininess,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>              out FP vec3 diffuseColor, out FP vec3 specularColor)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>{</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    diffuseColor = vec3(0.0);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    specularColor = vec3(0.0);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 n = normalize( vnormal );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 s;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    Light light;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    for (int i = 0; i < lightCount; ++i) {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        if (i == 0)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[0];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 1)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[1];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 2)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[2];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 3)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[3];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 4)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[4];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 5)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[5];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 6)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[6];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        else if (i == 7)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            light = lights[7];</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        FP float att = 1.0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        if ( light.type != TYPE_DIRECTIONAL ) {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            s = light.position - vpos;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            if (length( light.attenuation ) != 0.0) {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                FP float dist = length(s);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                att = 1.0 / (light.attenuation.x + light.attenuation.y * dist + light.attenuation.z * dist * dist);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            }</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            s = normalize( s );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            if ( light.type == TYPE_SPOT ) {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                if ( degrees(acos(dot(-s, normalize(light.direction))) ) > light.cutOffAngle)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                    att = 0.0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            }</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        } else {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            s = normalize( -light.direction );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        }</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        FP float diffuse = max( dot( s, n ), 0.0 );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        FP float specular = 0.0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        if (diffuse > 0.0 && shininess > 0.0 && att > 0.0) {</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            FP vec3 r = reflect( -s, n );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            FP float normFactor = ( shininess + 2.0 ) / 2.0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>            specular = normFactor * pow( max( dot( r, vview ), 0.0 ), shininess );</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        }</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        diffuseColor += att * light.intensity * diffuse * light.color;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>        specularColor += att * light.intensity * specular * light.color;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    }</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>FP vec4 phongFunction(const in FP vec4 ambient,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP vec4 diffuse,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP vec4 specular,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP float shininess,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP vec3 worldPosition,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP vec3 worldView,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                      const in FP vec3 worldNormal)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>{</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // Calculate the lighting model, keeping the specular component separate</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 diffuseColor, specularColor;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    adsModel(worldPosition, worldNormal, worldView, shininess, diffuseColor, specularColor);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    // Combine spec with ambient+diffuse for final fragment color</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    FP vec3 color = (ambient.rgb + diffuseColor) * diffuse.rgb</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>                  + specularColor * specular.rgb;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    return vec4(color, diffuse.a);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>#line 16</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>void main()</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>{</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec2 v4 = texCoord;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v14 = texture2D(normalTexture, v4);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp float v16 = float(2.0);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v15 = v14.rgb;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v3 = worldTangent;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v2 = worldNormal;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v18 = vec3(1.0);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v17 = v15 * v16;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp mat3 v12 = calcWorldSpaceToTangentSpaceMatrix(v2, v3);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v19 = v17 - v18;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp mat3 v13 = transpose(v12);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v1 = eyePosition;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v0 = worldPosition;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v20 = v13 * v19;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v9 = v1 - v0;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp float v8 = shininess;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v7 = ks;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v6 = texture2D(diffuseTexture, v4);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v5 = ka;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v11 = normalize(v20);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec3 v10 = normalize(v9);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    highp vec4 v21 = phongFunction(v5, v6, v7, v8, v0, v10, v11);</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>    gl_FragColor = v21;</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>}</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>***</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>My theory: First the program “thinks” it should use OPENGL 3.3 and selects a corresponding shader, but the shader compiler only support ES 2.0.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>I also could not find the shader code that is used here. And yes, I found the qtshadercache and deleted all files.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Any idea?</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>The documentation says that QNormalDiffuseMapMaterial is deprecated, therefore I tried to replace it with</span><a name=sidebar-content></a><b><span lang=EN-US style='font-size:36.0pt'> </span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>QDiffuseSpecularMaterial, but I was unable to find any documentation or example or test that shows how to generate a QVariant with a texture from a QImage to use in setDiffuse and setNormal.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Best regards and hopefully</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'>Helmut M.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:DE-AT'><br><br><o:p></o:p></span></p><pre>_______________________________________________<o:p></o:p></pre><pre>Interest mailing list<o:p></o:p></pre><pre><a href="mailto:Interest@qt-project.org">Interest@qt-project.org</a><o:p></o:p></pre><pre><a href="https://lists.qt-project.org/listinfo/interest">https://lists.qt-project.org/listinfo/interest</a><o:p></o:p></pre></blockquote><pre>-- <o:p></o:p></pre><pre>Paul Lemire | <a href="mailto:paul.lemire@kdab.com">paul.lemire@kdab.com</a> | Senior Software Engineer<o:p></o:p></pre><pre>KDAB (France) S.A.S., a KDAB Group company<o:p></o:p></pre><pre>Tel: France +33 (0)4 90 84 08 53, <a href="http://www.kdab.fr">http://www.kdab.fr</a><o:p></o:p></pre><pre>KDAB - The Qt, C++ and OpenGL Experts<o:p></o:p></pre></div></body></html>