Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/17/2018 in all areas

  1. Out of curiosity this morning, and still learning all the little features of the Corona for C4D Beta, I wondered if Corona could render out C4D Hair. I was dubious, since C4D's Standard Renderer has, for a good while, always produced the best-looking Hair... ie., that looked silky and natural, like real hair. But to my great surprise and pleasure, I see that Corona can indeed render out C4D Hair... and it looks very good indeed! There is a bit of a workaround in setting it up, though: Your C4D Hair object needs to be set to Generate, and then you have to choose one of its Generate styles. I chose the Circle Type, which causes each strand to be rendered out in what I take to be basically a circle spline swept over the individual "virtual" hair splines. In the OM, your Hair object has to include both a C4D Hair Material... and also a Corona Material, side-by-side. In the Corona Material's Diffuse Channel, I entered the C4D Polygon Hair Shader, then set that shader to Illumination--->From Hair Materials. The Corona Material will take all its features from the C4D Hair Material, like Color, Specular, Thickness, Scale, Curl, and all the other options. But then, with the Corona Material, you can add further channels: Corona's native Reflection, Translucency, and Diffuse colors. My biggest worry was that Corona Render would not give the C4D Hair all the lavish AA that it needed to make the hair look silky, shiny, and not like straw, noodles, tentacles or needles. That was always the Standard Render's strength. But hey, I was pleasantly surprised: Corona antialiased the Polygon Hair strands beautifully, as you see here. Cool. ras
    1 point
  2. @bezo Yeah, man, you are right. I usually do comment them, but this time I got lazy ;) FIXED
    1 point
  3. a bit late but anyway :) import c4d from c4d import gui #Welcome to the world of Python def main(): doc.StartUndo() # this generates an UNDO stack, every "AddUndo" between .StartUndo() and .EndUndo() will be "undoable" in a single "Ctrl+Z" objects = doc.GetActiveObjects(0) # this get's currently active objects in a list. The "0" parameter means that we don't want to select the children of the objects and we don't care about the oreder of the returned selection for obj in objects: # this iterates over the list of active objects. So for each object: instance = c4d.BaseObject(c4d.Oinstance) # create a new instance object instance.SetName(obj.GetName() + '_instance') # set it's name to the object's name + "_instance" instance[c4d.INSTANCEOBJECT_LINK] = obj # set the instance's source object instance.InsertBefore(obj) # insert the instance object in the object manager, right before the source object. You can use other options. Like .InsertAfter(obj), if you want it after the source object. doc.AddUndo(c4d.UNDOTYPE_NEW, instance) # this adds the insertion of our new instance to the undo stack. doc.EndUndo() # this ends the undo stack c4d.EventAdd() # we infrom C4D that something has occured, otherwise it will not refresh until you click something or do something else if __name__=='__main__': main()
    1 point
  4. Yeah, they even took on idiots like Hrvoje, Igor or me ;)
    1 point
  5. You're over thinking this Fastbee. Unless you're thinking of applying I wouldn't stress over it.
    1 point
×
×
  • Create New...