Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/01/2008 at 18:53, xxxxxxxx wrote:
User Information: Cinema 4D Version: 9.6+ Platform: Windows ; Mac ; Mac OSX ; Language(s) : C++ ;
--------- Hello All,
i'm trying to setlink inside a my custom material with two others materials allocated and inserted in the same scene with:
front=(BaseMaterial* )bcmat->GetMaterialLink(VRAY2SIDEDMATERIAL_PARAMS_LINK1, pp->GetDocument()); back=(BaseMaterial* )bcmat->GetMaterialLink(VRAY2SIDEDMATERIAL_PARAMS_LINK2, pp->GetDocument());
if (front) { frontMat=(BaseMaterial* )front->GetClone(NULL,NULL); scene->pDoc->InsertMaterial(frontMat); bcmat->SetLink(VRAY2SIDEDMATERIAL_PARAMS_LINK1,frontMat); }
but if just here i try to get the linked material:
front=(BaseMaterial* )bcmat->GetMaterialLink(VRAY2SIDEDMATERIAL_PARAMS_LINK1, node->GetDocument());
front is 0x00000000
so.. seem that i'm using the wrong way to fill the material link inside my materil..
Any help?
Thanks Renato
On 15/01/2008 at 22:25, xxxxxxxx wrote:
This is the material snapshot:
On 16/01/2008 at 08:36, xxxxxxxx wrote:
Hi all,
please it's urgent for us
Cheers Renato
On 17/01/2008 at 20:28, xxxxxxxx wrote:
i see that the CopyTo for this material is called 3 time.
The first one is all ok, the snode links to materials are copied to the dnode.. it work
now the current dnode is the same (same pointer) as the previous dnode.. but the 2 material link are now NULL;
the rendering is called..
What i really don't understand, why the entire container is not copied? I used to play inside the copyto to understand what's can be the cause..
still investigating.. Renato T.
Edit:
I forgot.. this problem is only in the material preview.. all kind of rendering are working very good..
On 20/01/2008 at 08:44, xxxxxxxx wrote:
The problem is that the material preview is designed to only copy one material to a new (internal) document. Links only work within the same document, so that's why it fails. I'm sorry, but I don't see a solution for this type of purpose right now!
On 20/01/2008 at 08:58, xxxxxxxx wrote:
Hello Philip,
Thanks for your answer.. but really there is no solution? Do i must write my custom preview routine and bypass the pDoc things?
On 20/01/2008 at 09:17, xxxxxxxx wrote:
You could try to detect a material preview situation and use GetData(id).GetBaseLink()->ForceGetLink() instead of GetMaterialLink(). ForceGetLink does no document checking but is risky in a multithreaded environment as the one document might be long gone by the time you access it. Therefore it should be limited to the material preview situation only.
On 20/01/2008 at 11:28, xxxxxxxx wrote:
Thanks Philip,
i'll try..
but what about a custom preview scene?