Color management (or its absence) plus naturally shading may figure in - even a uniformely lit model may expose different per pixel color than the actual color of the underlying textures. Whatever it is, it's probably normal and since you failed to provide any more information, nobody will be able to advise more specifically.
Ok, let me try to be explain the issue in more detail.
All 3D layer settings are default. No lights, ambient color setting, etc have been tweaked.
In order to paint out texture seams on a 3d character model, I have imported an .obj of the model into PS CS5 and applied a texture map to it which I have previously painted.
Using the eye dropper I have selected a color value from the sides of the seam and have attempted to paint that value over the seam to remove it.
The color value picked from a texture applied to a 3d model which is 161,161,173, is not the same color value when painted directly back onto the model. It has now mysteriously turned into 152,152,177.
When a color value is picked from a texture applied to a 3d model (161,161,173) and painted back onto the textured model it should remain exactly the same (161,161,173)
I hope lighting/shading is not figured in when color picking. That would make your results completely unpredictable. It could possibly be what is happening but is there a way turn this off or work around it?
Thanks for the help.
So after doing a few more tests it seems the color picker picks on a per pixel basis from the lit model not from the source texture map. This makes sense for 2d applications but is completely worthless in a 3d painting environment.
Example - If I put a medium grey texture on a cylinder and I color pick anywhere on that cylinder in 3d I should be picking my original grey color NOT my original grey multiplied by some lighting value, which is what is happening. This has no practical use in a realtime 3D environement that I can see.
I wish it were as simple as a color managment issue or a simplified idea of what a 3d object is or isn't. The tools just don't work in a way that makes this viable in a 3d production pipeline...or at least not for me. If anyone has some actually experiance with this workflow please let me know what you have done to solve it or work around it. Thanks for the help, folks.
Thanks for the help emil.
Ok I have come up with a workflow/settings that work. It's all about removing the lighting.
By default an imported 3D scene has 2 Infinite light sources. Delete them both (or turn them off). Your scene should now be completely black.
Add an Image Based Light. Make sure it's white. Turn off Create Shadows.
Crank the material Ambient all the way to white.
Turn off Catch Shadows and Cast Shadows for the mesh (might not be nessecary)
Set the Global Ambient Color for the scene to black.
Apply your texture map and paint with confidence!
You should now be able to color pick straight from the 3D object and get accurate results based on your texture map color/value without lighting mucking it up.
If anyone out there is looking for a simple, quick way to fix texture seams for realtime (not sure how many polys PS can push) models, this is a really easy and intuitive solution (and keeps you from dropping money on a stand-alone 3d paint solution like Body Paint 3D). Thanks PS!
I don't use Photoshop much for direct painting on 3D but since all dedicated programs have flat texture rendering mode I checked and found that Photoshop has that too.
In the 3D panel, with the Scene item selected, in the Render Settings section, click the Edit button to open the 3D render settings. For Face Style choose Unlit Texture and click on the floppy disk icon to save the preset and give it a name. Then in the Render Settings section of the 3D panel just change from your unlit texture preset to Default and you can have the best of both worlds.