Thank you for the response!
The Python api seems to work a bit differently. There is no filename property of the distmap, it can only reference either a
TexMap object or a Bitmap (via
SetMap and
SetBitmap).
I
just solved my issue, so I'll post the below for the benefit of others:
After some digging, it turned out a
BitmapTex has a
SetMapName method, which actually expects a
filename, making it a bit of a misnomer.
Alternatively, it also worked if I
first created an Asset with the bitmap path and set
that on the texture using
SetMap.
It seems that
SetBitmap is useless, also as reported by
https://forums.autodesk.com/t5/3ds-max-programming/applying-a-bitmap-image-to-a-texture/m-p/4229576/highlight/true#M9736.
(that's using the c++ api)
Pity, because it seemed to match my use case better.
Therefore, I suspect there is no chance of applying generated in-memory bitmaps...
This part of the max api is confusing, and the documentation is somewhat scant.
Thank you again.
A bit of example code that works:
import os
bmpath = os.path.join(
"C:/",
"Program Files (x86)",
"Itoo Software",
"Forest Pack Pro",
"distmaps",
"images",
"dense.bmp"
)
tex = MaxPlus.Factory.CreateDefaultBitmapTex()
tex.SetMapName(bmpath)
node = MaxPlus.INode.GetINodeByName("forest_flowers")
node.Object.GetParameterBlock().GetParamByName("distmap").SetValue(tex)