From: gabor p. <gab...@gm...> - 2012-07-27 15:13:33
|
Hi, I'm reading the following wavefront obj mtl file: newmtl Material_floor.jpg Ns 96.078431 Ka 0.000000 0.000000 0.000000 Kd 0.640000 0.640000 0.640000 Ks 0.500000 0.500000 0.500000 Ni 1.000000 d 1.000000 illum 2 map_Kd floor.jpg with this code: float shininessStrength = 1; mtl->Get( AI_MATKEY_SHININESS_STRENGTH, shininessStrength ) float shininess; mtl->Get( AI_MATKEY_SHININESS, shininess ); For shininess I get back 384.314, and shininess strength is not set, remains 1.0. Is this normal? As far as I know OpenGl expects shininess between 0 and 128. Using Assimp 3.0.1270. - Gabor |
From: kim k. <kim...@go...> - 2012-08-02 09:55:22
|
Hi, at first sorry for my late response. Back to your question : unfortunately yes, this is the default behaviour of the obj-format itself. In the specification of the Obj-File stands something like: you have to multiply the shineness with 4. That is the reason for the big value you saw in your imported data. Kimmi |
From: gabor p. <gab...@mn...> - 2012-08-02 14:03:28
|
hi Kimmi, > at first sorry for my late response. no problem, thanks for replying. > the obj-format itself. In the specification of the Obj-File stands > something like: you have to multiply the shineness with 4. That is the > reason for the big value you saw in your imported data. are you sure? this would mean that if i import from collada, it would get a different shininess value, doesn't it? assimp should always give the same value regardless of the imported format, shouldn't it? what is the range of shininess in assimp? i could not find it in the documentation. according to the mtl specs (http://paulbourke.net/dataformats/mtl/): Ns exponent "exponent" is the value for the specular exponent. A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000. so this means to my undestanding that we need to divide the value by 4, if assimp shininess ranges from 0 to 255. if this is the case this might be a bug in the obj material importer. best, gabor |
From: kim k. <kim...@go...> - 2012-08-02 13:34:54
|
Hi, hm, good argument. Maybe we have to doublecheck this multiplication. Kimmi On Thu, Aug 2, 2012 at 3:26 PM, gabor papp <gab...@mn...> wrote: > hi Kimmi, > > > at first sorry for my late response. > no problem, thanks for replying. > > > the obj-format itself. In the specification of the Obj-File stands > > something like: you have to multiply the shineness with 4. That is the > > reason for the big value you saw in your imported data. > are you sure? this would mean that if i import from collada, it would get a > different shininess value, doesn't it? assimp should always give the > same value regardless of the imported format, shouldn't it? > > what is the range of shininess in assimp? i could not find it in the > documentation. > > according to the mtl specs (http://paulbourke.net/dataformats/mtl/): > > Ns exponent > > "exponent" is the value for the specular exponent. A high exponent > results in a tight, concentrated highlight. Ns values normally > range from 0 to 1000. > > so this means to my undestanding that we need to divide the value by 4, > if assimp shininess ranges from 0 to 255. if this is the case this might > be a bug in the obj material importer. > > best, > gabor > > |
From: gabor p. <gab...@gm...> - 2012-08-03 14:19:32
|
> hm, good argument. Maybe we have to doublecheck this multiplication. thanks. i definitely think that line 534 in ObjFileImporter.cpp: pCurrentMaterial->shineness *= 4.f; should be at least removed, because you scale the value from the 0-1000 range to 0-4000. or what would be better to rescale it to the assimp internal shininess range. thanks you for considering this. should i file an issue for this? - gabor |
From: kim k. <kim...@go...> - 2012-08-03 17:17:03
|
Hi, yes please, that's a good idea. Kimmi On Fri, Aug 3, 2012 at 4:19 PM, gabor papp <gab...@gm...>wrote: > > hm, good argument. Maybe we have to doublecheck this multiplication. > thanks. i definitely think that line 534 in ObjFileImporter.cpp: > > pCurrentMaterial->shineness *= 4.f; > > should be at least removed, because you scale the value from the > 0-1000 range to 0-4000. or what would be better to rescale it to the > assimp internal shininess range. > thanks you for considering this. should i file an issue for this? > > - gabor > |