Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import c4d
- #-- Graphos
- # visit graphos.fr
- ID_C4D_BITMAP = 5833
- ID_OCTANE_BITMAP = 1029508
- def getLinkedData(shader):
- buffer = []
- bc = shader.GetDataInstance()
- for i in xrange(0,len(bc)):
- index = bc.GetIndexId(i)
- linked = bc.GetLink(index,doc,c4d.Xbase)
- if linked:
- buffer.append([index,shader,linked])
- return buffer
- def changeTexture(id,currentShader,enfantShader):
- if enfantShader.CheckType(ID_C4D_BITMAP):
- currentPath = enfantShader[c4d.BITMAPSHADER_FILENAME]
- enfantShader.Remove()
- imageTexture = c4d.BaseShader(ID_OCTANE_BITMAP)
- imageTexture[c4d.IMAGETEXTURE_FILE] = currentPath
- currentShader[id] = imageTexture
- currentShader.InsertShader(imageTexture)
- currentShader.Message(c4d.MSG_UPDATE)
- c4d.EventAdd()
- def searchInShader(shader):
- shaderList = getLinkedData(shader)
- for i in shaderList:
- changeTexture(i[0],i[1],i[2])
- searchInShader(i[2])
- def main():
- matList = doc.GetActiveMaterials()
- for mat in matList:
- searchInShader(mat)
- if __name__=='__main__':
- main()
RAW Paste Data