Check which Renderengine Used
On 15/01/2018 at 02:28, xxxxxxxx wrote:
Hello, I need to check which Renderengine is use.
For Physical I can use:
vp = rd.GetFirstVideoPost() if vp.GetType() == c4d.VPxmbsampler: print "is Physical"
But How Can I check if Vray or Redshift is used for example?
On 16/01/2018 at 02:07, xxxxxxxx wrote:
Hi Holgar, thanks for writing us.
With reference to your question, rather than accessing the BaseVideoPost via RenderData::GetFirstVideoPost() I recommend to retrieve the active render engine from the active RenderData instance and querying for the RDATA_RENDERENGINE parameter.
Once you've obtained the value which correspond to the engine ID (which is expected to be unique for any rendering engine) you could loop through the BaseVideoPost instances stored in the active RenderData and check for the same ID
import c4d def main() : # retrieve the active RenderData instance rd = doc.GetActiveRenderData() if rd is None: return # this should never be the case # retrieve the rendering engine ID currently in use rdEngine = rd[c4d.RDATA_RENDERENGINE] if rdEngine == 0: print "Current render engine is Standard [", rdEngine,"]" return # retrieve the first BaseVideoPost instance bvp = rd.GetFirstVideoPost() # loop through the different BaseVideoPost instances inserted in the RenderData instance # and search for the one matching the active rendering engine ID while bvp is not None: # retrieve the engine ID bvpType = bvp.GetType() # compare against the active engine ID if bvpType == rdEngine: bvpName = bvp.GetName() print "Current render engine is", bvpName, "[", rdEngine,"]" return # look for the next bvp = bvp.GetNext() if __name__=='__main__': main()
On 16/01/2018 at 02:15, xxxxxxxx wrote:
That helps me a lot. Thank you.