I am playing around the PBS in Ogre3D V2.2. I tried to modify the Smaple_PbsMaterials file to test one data which contains a mesh + normal texture + base color + metallic texture + roughness texture. The workflow is set as MetallicWorkflow. I created a datablock + 4 textures as shown below:
Code: Select all
std::string textureNames[8] = { "marble_Color.png", "marble_Normal.png",
"marble_Metalic.png", "marble_Roughness.png",
"silver_Color.png", "silver_Normal.png",
"silver_Metallic.png", "silver_Roughness.png" };
int tIndex = 1;
datablock->setWorkflow( Ogre::HlmsPbsDatablock::Workflows::MetallicWorkflow );
Ogre::TextureGpu *baseColor = textureMgr->createOrRetrieveTexture(
textureNames[tIndex * 4 + 0], Ogre::GpuPageOutStrategy::Discard, Ogre::CommonTextureTypes::Diffuse,
Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, Ogre::TextureFilter::TypeGenerateDefaultMipmaps );
datablock->setTexture( Ogre::PBSM_DIFFUSE, baseColor );
Ogre::TextureGpu *normal = textureMgr->createOrRetrieveTexture(
textureNames[tIndex * 4 + 1], Ogre::GpuPageOutStrategy::Discard, Ogre::CommonTextureTypes::NormalMap,
Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, Ogre::TextureFilter::TypeGenerateDefaultMipmaps );
datablock->setTexture( Ogre::PBSM_NORMAL, normal );
Ogre::TextureGpu *metalic = textureMgr->createOrRetrieveTexture(
textureNames[tIndex * 4 + 2], Ogre::GpuPageOutStrategy::Discard, Ogre::TextureFlags::PrefersLoadingFromFileAsSRGB,
Ogre::TextureTypes::Type2D, Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME,
Ogre::TextureFilter::TypeGenerateDefaultMipmaps );
datablock->setTexture( Ogre::PBSM_METALLIC, metalic );
Ogre::TextureGpu *roughness = textureMgr->createOrRetrieveTexture(
textureNames[tIndex * 4 + 3], Ogre::GpuPageOutStrategy::Discard, Ogre::TextureFlags::PrefersLoadingFromFileAsSRGB,
Ogre::TextureTypes::Type2D, Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME,
Ogre::TextureFilter::TypeGenerateDefaultMipmaps );
datablock->setTexture( Ogre::PBSM_ROUGHNESS, roughness );
// add the Reflection map:
Ogre::TextureGpu *texture = textureMgr->createOrRetrieveTexture(
"SaintPetersBasilica.dds", Ogre::GpuPageOutStrategy::Discard,
Ogre::TextureFlags::PrefersLoadingFromFileAsSRGB, Ogre::TextureTypes::TypeCube,
Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME,
Ogre::TextureFilter::TypeGenerateDefaultMipmaps );
1) Are the parameters specified for the texture or the data block right?
2) Are there are some missing parameters not set there?
3) How could i specify a metallic texture in the script file?
4) In the PbsMaterials.material "hlms Rocks pbs" section, why there is a roughness parameter there given there is a roughness_map below?
5) Is it possible to use a HDR file as the reflection map?
Thanks & Regards,
Spencer