I want to support to fully support multi-instances in my render engine, but I find some difficulties with cloners.
I transfer the cloner data into my engine by reading the Cache. The problem is that the multi instances that exist inside the cloner have the parameter INSTANCEOBJECT_MULTIPOSITIONINPUT empty.
How can I get the multi instance positions from the cloner ?
Thank you for your time !
Thank you for your help !
I need to retrieve the particle positions from the object used in INSTANCEOBJECT_MULTIPOSITIONINPUT parameter of Multi-Instance.
The documentation says it supports Mograph Matrix, Emitter and Thinking Particles.
I retrieve the positions from Mograph Matrix using ID_MOTAGDATA tag.
How can I do the same with Emitter and Thinking Particles ?
I would like to also ask something different, but very related to MSG_GETALLASSETS.
If I have custom shaders inside custom shaders, in the top-most shader, do I have to get all the assets from the children as well or is it done autmatically by Cinema 4D ?
Thank you !
Hello and thank you for your time helping me !
I totally missed to use it in the custom shader.
Nevertheless, even though I've just added it, the missing bitmap don't always appear in Texture Manager.
I'm testing it using a scene saved in another machine (which didn't run this code).
The image with wrong absolute path still doesn't appear in the Texture Manager list.
If I start a new scene and create wrong bitmap absolute paths on purpose, they appear correctly.
I'm a little bit confused. I suppose there isn't any way to make work in older versions since they have already been saved incorrectly right ?
I have a problem with Texture Manager.
Even though it shows the bitmaps that are used in material shaders correctly, it doesn't always show the bitmaps in custom shaders and when it does, they appear duplicated.
So first of all, why the sahders don't appear always in Texture Manager ?
In this post, it's said that it's not possible to show the bitmaps in custom shaders in Texture Manager: https://plugincafe.maxon.net/topic/9640/12946_texture-manager-support-in-custom-shader/3
Do I have to add the Bitmap Shaders that exist in ShaderData as children in materials ?
I use REAL in Description Resource files.
But in NodeData's Interface, this value cannot be set with high precision such as 0.0000001.
Is there anything I can do to fix this ?
Thank you very much for your time.
The problem was that I didn't add the definitions.
signal = maxon::ConditionVariableRef::Create() iferr_return;
Thank you for your time and sorry for that
Here is the error:
error C2679: binary '=': no operator found which takes a right-hand operand of type 'maxon::ResultMemTmaxon::ConditionVariableRef' (or there is no acceptable conversion)
note: could be 'maxon::ConditionVariableInterface::Reference &maxon::ConditionVariableInterface::Reference::operator =(const maxon::ConditionVariableInterface::Reference &)'
note: or 'maxon::ConditionVariableInterface::Reference &maxon::ConditionVariableInterface::Reference::operator =(maxon::ConditionVariableInterface::Reference &&)
I have used it exactly as in ConditionVariable manual, but the thread is C4DThread instead of maxon::ThreadInterfaceTemplate<ExampleThread>.
Hello and thank you very much for the help.
It appears that I cannot use it in a custom thread that inherits C4DThread.
I have a private member maxon::ConditionVariableRef, but the following call fails compilation:
condition = maxon::ConditionVariableRef::Create();
Do I have to use it only in a thread inheriting maxon::ThreadInterfaceTemplate<ExampleThread> ?
In Cinema 4D R19, I was using GeSignal instead of while/GeSleep to "wake up" a thread.
Which is the equivalent in maxon API ?
Thank you very much for your clarification on this.
I have a button in MaterialData that saves the material in a specific format in the disk.
I doesn't change anything in the material but the MSG_UPDATE is sent anyway.
So, since I don't want to run the MSG_UPDATE handler, I have to set a flag to true in order to skip it.
When I press a button in MaterialData, the message MSG_DESCRIPTION_COMMAND is sent.
After that I always receive a MSG_UPDATE as well.
Is there anything I should do to avoid that ?
After handling the button callback, I return TRUE.
Thank you very much for your support !
I am trying to make it work in R16 - R20. I know you provide support only for the last 2 versions, but the ideal scenario would be to support it in R16 ++.
I have a BaseBitmap, which I need to send as a message to another plugin developed by someone else.
Can I do that via Special Event ?
I made come changes and it works now.
It appears that I was handling VPBuffers incorrectly.
Just to be sure, we allocate the buffers using AllocateBuffer and they are deallocated automatically correct ?
When does the deallocation take place ?
I have solved it by using SpecialEventAdd and sending a message to dialog's CoreMessage.
I've got two problems regarding the generating of object buffers in picture viewer for my VideoPostData.
1) I create a scene with object buffers enabled and I allocate them in my VideoPostData using
render->AllocateBuffer(VPBUFFER_MAT_NORMAL, 0, 8, true);
render->AllocateBuffer(VPBUFFER_SHADOW, 0, 8, true);
render->AllocateBuffer(VPBUFFER_OBJECTBUFFER, 1, 8, true);
render->AllocateBuffer(VPBUFFER_OBJECTBUFFER, 2, 8, true);
The first time I render the scene, everything appears great, but if I render again without changing anything, the object buffers appear black.
2) SetLine require differnt format in their void* data depending on their VPBUFFER_.
For example, if I use VPBUFFER_OBJECTBUFFER, it requires a greyscale buffer. For instance, if the image is 16 x 16, each line (void data) has to be 16 bytes.
If I SetLine to VPBUFFER_RGBA, each line has to be 16 * 4 bytes. Is this how it is supposed to be ?
Thank you very much for your time !
MATPREVIEW_PREPARE_SCENE is not triggered at all.
In the ideal scenario, I need the original node, but if that's not possible I could use the original document.