mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
* terrain: Use PhongMaterialSettings material for the non texture case There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future. * qgsphongmaterialsettings: Fix setShininess signature `mShininess` is a double. * qgsphongtexturedmaterialsettings: Use a double to store shininess This is already waht QgsPhongTexturedMaterialSettings does. The reason for this change is to avoid the user-set values changing for them when saving/restoring projects. * qgsphongtexturedmaterialsettings: Use a double to store opacity This is already waht QgsPhongTexturedMaterialSettings does. The reason for this change is to avoid the user-set values changing for them when saving/restoring projects. * qgsphongtexturedmaterialsettings: Do proper opacity cast in toMaterial * qgsphongtexturedmaterialsettings: Factor out material creation This introduces a new class `QgsPhongTexturedMaterial` which is similar to Qt3D `QDiffuseSpecularMaterial`. `QgsPhongTexturedMaterial::toMaterial()` now calls `QgsPhongTexturedMaterial` to create the material. This has no functional change. This will make it possible to directly use `QgsPhongTexturedMaterial` for the terrain in the next commit. Indeed, the texture case needs to use a `QTexture2D` which cannot be stored in a settings class. This issue is avoided by directly creating the material instead of using `QgsPhongTexturedMaterial::toMaterial()`. * qgsterraintileloader: Fix typo * terrain: Use QgsPhongTexturedMaterial for shading texture There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future. * 3d/material: Introduce QgsTextureMaterial This is the same material as the qt3d one: `Qt3DExtras::QTextureMaterial`. It will also be used in the following commit by the terrain. * terrain: Use QgsTextureMaterial for non shading texture There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future.