How to create physical sky on C++code?
-
On 12/08/2018 at 18:19, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 19
Platform: Windows ;
Language(s) : C++ ;---------
How to create physical sky on C++code? I just have looked for a word(OSkyShader) but not working in my project. could you please give me some example about physical sky?part of my code:
baseObject* PhysicalSky = baseObject::Alloc(OSkyShader);
-
On 13/08/2018 at 04:05, xxxxxxxx wrote:
Hi zhhm156156,
First of all welcome in the plugin cafe community!
Physical objects is a bit special. Here is what a basic object will look like.
BaseObject* PhysicalSky = BaseObject::Alloc(1011146); if (PhysicalSky == nullptr) return; doc->InsertObject(PhysicalSky); EventAdd();
You can know such ID, by drag and drop a Physical sky you created from c4d to the console.
But, since a physical sky is a bit special (when you edit it you can see there are some materials), so in order to get them fully initialized you should call a command since you can't manually initialize them due to some classes not exposed in the SDK. So the correct way to do it is the following.
CallCommand(1011145); BaseObject* PhysicalSky = doc->GetActiveObject();
You can know the command ID by looking at the script log while creating a Physical Sky object.
Hope it's helpful, if you have any question please let me know!
Cheers,
Maxime. -
On 14/08/2018 at 18:41, xxxxxxxx wrote:
It works. Thanks