Set a project folder and save your scene.
* If your painting into an existing texture you can skip this step.
Make sure your model has UV coordinates.
Make sure your model has a basic Lambert material.
* If you’re using a different material/shader on your model,
Temporarily switch to Lambert just for the texture painting operation,
And connect the original shader with the painted texture map to the surface shader input of the shading group after you’re done painting.
In the Rendering tab toolbar, Double-Click the 3D Paint tool button to activate 3D Paint and also open its tool settings window.
Make sure the object is selected.
In the 3D Paint Settings window, go to the File Textures part,
Choose a material attribute to paint to.
* this would usually be Color because we are using Lambert temporarily anyway.
Click Assign/Edit Textures to open the Assign/Edit Textures dialog,
Choose a resolution and a file format for the new texture,
And than click Assign/Edit Textures button at the bottom of the Assign/Edit Textures dialog to create the new texture and close the dialog.
* If you already connected an existing texture file to the Lambert shader’s Color input you can skip this step.
Check Update on stroke and Save texture on stroke.
Set the viewport to Textured display mode.
Set paint brush settings.
Click the 3D Paint tool button to activate it and paint on the model surface.
Connect the different texture options as inputs to a VRayMultiSubTexNode and connect it to the wanted material input.
In the VRayMultiSubTexNode attributes, set Get ID From to Random by Render ID.
* Press add new item in the VRayMultiSubTexNode attributes to add one or more inputs to the list.
By default V-Ray for Maya, when Production Engine is set to CUDA (GPU), resizes all the textures to 512×512 in order to save GPU memory.
Naturally, this may cause the textures to appear blurry and lacking detail in the rendered image.
To avoid this,
In Render Settings > V-Ray tab > Production renderer,
Set GPU Resize Textures to Full Size Textures, so the textures will not be resized at all (but consume more memory),
Or On-demand mipmapping, so the textures data will be optimized to reduce memory consumption (but not quality) in a pre-render process.
To get full size textures in IPR mode, do the same in the IPR tab
Along with the Filtering Type, and the File Path attributes,
The File Attributes for texture nodes in Maya have the option to set a Color-Space with which to interpret the color values stored in the file’s pixels.
For example, JPG and PNG files will be interpreted as sRGB Color-Space by default, which means the color values will be ‘linearized’ (their Gamma Correction will be removed), and EXR or HDR files will be automatically interpreted as ‘Raw’ (linear) Color Space.
When an sRGB file like a PNG is intended to serve as linear data, and not as image display. it’s sometimes needed to set its Colors Space attribute to Raw. this is usually the case with Bump maps and Normal maps.
Use the Map Scaler (MapScalar) Object Space Modifier to make UV coordinates conform to a uniform map real-world size.
Create effective UV coordinates for angular geometrical meshes quickly by applying an Unwrap UVW modifier, and in the UV Editor, selecting all the mesh, and choosing Mapping > Flatten Mapping, and than applying a Map Scaler modifier and setting its Scale parameter to the wanted texture size..
When applying the Map Scaler modifier to an object with deformed UV’s, it will break the UV’s in order to force consistent scale.
If the Scale parameter matches the file’s system unit definition in Customize > Units Setup > System Units Setup, than it will effectively work as real world map scale, and allow you to set a real world texture size in the Coordinates rollout of the texture in the Material Editor.
When loading texture files into a Cycles Image Texture node, it’s a good idea to take a moment to set the Color Space parameter correctly.
This parameter sets how the color data is intended to be used in the shader, that is, if it will be used as ‘Color’ like a Diffuse texture for example, or as ‘Non-Color Data’ like a Normal map texture example.
The reason behind this is that texture data encoded in sRGB color space (JPG, PNG,..) intended to be used as color should be ‘linearized’, that means the gamma correction sRGB files are automatically encoded with should be removed, so the the color data will represent linear color values suitable for the processing of shaders and compositing the final rendered image*,
While texture data intended to be used as data like height or direction or percentage, shouldn’t be linearized, assuming that the colors were saved without adding a gamma corrections to them.
A common example of that is when using a normal map stored in PNG format,
When the Color Space parameter is set to ‘Color’ the resulting bump normal might look wrong, and also display hard edges along UV coordinates seams.
Setting the Color Space to ‘Non-Color Data’ will solve the problem and interpret the bump normals correctly.
> usage of a texture as input for a non-color parameter like displacement will automatically use it as linear color.
> 32 bit float formats like exr are automatically interpreted as linear color by the renderer (the viewport material display will still show a differance so it’s better to set it to ‘Non-Color Data’ anyway).
> It should also be noted that Blender has two parameters controlling the interpretation of an image file one in the Image Texture Node that controls the color usage, one in the Node properties that controls how the file format is interpreted,
And also general color management settings that control the display of colors and saving of image files.
> It should also by noted that I’m still baffled by Blender / Cycles color management.. 🙂
* Linear color is also suitable for post rendering / post production compositing for image development and VFX.