From 0ad33e776bc1d11a4c518162801b924bcf5bf27c Mon Sep 17 00:00:00 2001 From: Pavel Rojtberg Date: Wed, 22 Dec 2021 14:15:52 +0100 Subject: [PATCH] ovis: consistently use 0..1 value range for colors matches Ogre and makes more sense given float render targets are possible. --- modules/ovis/src/ovis.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/ovis/src/ovis.cpp b/modules/ovis/src/ovis.cpp index 2d8c76af38..c685fb0425 100644 --- a/modules/ovis/src/ovis.cpp +++ b/modules/ovis/src/ovis.cpp @@ -168,12 +168,10 @@ static SceneNode& _getSceneNode(SceneManager* sceneMgr, const String& name) return *mo->getParentSceneNode(); } +/// BGR to RGB 0..1 static ColourValue convertColor(const Scalar& val) { - // BGR 0..255 (uchar) to RGB 0..1 - ColourValue ret = ColourValue(val[2], val[1], val[0]) / 255; - ret.saturate(); - return ret; + return ColourValue(val[2], val[1], val[0]).saturateCopy(); } class WindowSceneImpl; @@ -614,9 +612,8 @@ class WindowSceneImpl : public WindowScene const Scalar& specularColour) CV_OVERRIDE { Light* light = sceneMgr->createLight(name); - // convert to BGR - light->setDiffuseColour(ColourValue(diffuseColour[2], diffuseColour[1], diffuseColour[0])); - light->setSpecularColour(ColourValue(specularColour[2], specularColour[1], specularColour[0])); + light->setDiffuseColour(convertColor(diffuseColour)); + light->setSpecularColour(convertColor(specularColour)); Quaternion q; Vector3 t;