Any one know where I can find a list of the children of scriptcontext.doc.RenderMaterials:
I have “bitmap-texture” for the color bitmap
but would also like to get the transparency and bump maps?
Thanks
Tom
Any one know where I can find a list of the children of scriptcontext.doc.RenderMaterials:
I have “bitmap-texture” for the color bitmap
but would also like to get the transparency and bump maps?
Thanks
Tom
For a RenderMaterial
use GetTextureForUsage
Here a short script that gets that diffuse texture:
It should give you enough info to get started.
Hi Nathan
So I have this script for resetting the repeat of a color bitmap on a material but I want to do the same for the bump bitmap and for the transparency bitmap?
for m in scriptcontext.doc.RenderMaterials:
tex = m.FindChild("bitmap-texture")
if tex != None:
repeat = tex.GetRepeat()
tempx = repeat.X
tempy = repeat.Y
if tempx!=1.0 and tempy!=1.0:
reset = rg.Vector3d(1,1,0)
tex.SetRepeat(reset,0)
Thanks I advanced!
As I wrote use GetTextureForUsage()
instead of FindChild()
. From the documentarion you should be able to find the correct childslot enum values to use.
Ohh got ya, Thanks!
Diffuse | 100 | Corresponds to ON_Texture::TYPE::bitmap_texture. |
---|---|---|
Transparency | 101 | Corresponds to ON_Texture::transparancy_texture. |
Bump | 102 | Corresponds to ON_Texture::TYPE::bump_texture. |
Environment | 103 | Corresponds to ON_Texture::TYPE::emap_texture. |
Im not sure im using it correct but I find it really hard to stuff in the SDK!
You should use the documentation pane in the Rhino Python Editor (which you get through command _EditPythonScript
):
Once more the example script directly in this thread:
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino.Render as rr
for rm in sc.doc.RenderMaterials:
rt = rm.GetTextureFromUsage(rr.RenderMaterial.StandardChildSlots.Diffuse)
rt.BeginChange(rr.RenderContent.ChangeContexts.Program)
rt.SetProjectionMode(rr.TextureProjectionMode.MappingChannel, rr.RenderContent.ChangeContexts.Program)
rt.SetMappingChannel(1, rr.RenderContent.ChangeContexts.Program)
rt.EndChange()
Please pay attention to GetTextureFromUsage
and the StandardChildSlots
enumeration.
As an extra bit of information: since the Python integration in Rhino is done with IronPython, a .NET implementation of Python, you have access to .NET, including the .NET SDK for Rhino called RhinoCommon. That is where you should be looking at for your API docs - it is what the tree I showed in the animated gif is generated from: http://developer.rhino3d.com/api/RhinoCommon/html/N_Rhino.htm