Hi!
Your topic is
the same problem as in another topic recently started.
You're missing a call to sceneManager->setForwardClustered (or alternative algorithm, sceneManager->setForward3D)
Spot and point lights only appear if any of these conditions is true:
- They're shadow casting lights and a shadow node is prepared (and if there's more shadow casting lights than shadow maps available, only the closest lights that are the closest to camera are picked up)
- Forward Clustered or F. 3D is enabled. Any shadow casting lights that wasn't picked for shadow casting will be used by forward clustered/3d instead
For further help if you encounter issues like this one:
- The Samples have help descriptions that further explain these details (e.g. press F1 in PbsMaterials)
- See the 2.1 FAQ
- See the manual
Cheers!
Matias
Edit:
- Where or what is the default shader? (Samples/2.0/.../Hlms/Pbs/(Metal/Any)?
The shaders are automatically generated by the
Hlms system based on templates, which you seemed to figured out quickly.
The templates in Samples/Media/Hlms/Pbs/Any contain code used by all platforms & APIs, while Samples/Media/Hlms/Pbs/Metal contains code only used by Metal.
- HlmsPbs::getDefaultPaths contains all the paths that are included
- The Hlms will enumerate all files ending in "_piece_ps.any" and "_piece_ps.metal" and parse them. If a file ends in "_piece_vs.*" that means only parse it during Vertex Shader compilation, "_piece_all" means parse it in all stages, and so on
- Templates are parsed in the order in which their folder paths were added. If the folder contains more than one file, the files are parsed in alphabetical order.
- The last file to be parsed is always PixelShader_ps.metal (and VertexShader_ps.metal for the VS, and so on)
- The generated files like 100000000VertexShader_vs/PixelShader_ps.metal are for debugging the final shader, Ogre does not actually need to dump them to disk. This behavior can be controlled via Hlms::setDebugOutputPath