We have about 30 transfer function in 3D Slicer, used and fine-tuned over many years, for various CT, MRI, US, and PET images: presets in Slicer core. The preset file format is specified here. We have a couple of additional presets in extensions and some of them use custom shading (e.g., distance-dependent coloring).
This is basically equivalent with classifying volume regions and assigning different transfer functions to each region. Classification is not binary, but you apply a mix of transfer functions weighted by the output of the classifiers.
Probably 5-10 years ago it still made sense to try to hand-pick a few metrics (intensity, gradient, occlusion spectrum, etc.) and manually tune their parameters based on user-selected samples, etc., but nowadays it seems more reasonable to use the same deep learning models that are already trained for image segmentation.
Implementing this AI-based volume rendering may not require any new developments: you can save output of each AI-based classifier into a volume and render them using multi-volume rendering. Multi-volume rendering allows you to specify transfer function for each volume.