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 22/06/2007 at 10:53, xxxxxxxx wrote:
User Information: Cinema 4D Version: 9.6+ Platform: Windows ; Mac ; Mac OSX ; Language(s) : C++ ;
--------- Hi All,
there is a way to get the array of VPBuffer if i set the render of each light and the array of the VPBuffer for all objects ID when i set multipass rendering?
Here some code:
LONG buffercount = 11; VPBuffer **myVpBuffers = (VPBuffer** ) GeAlloc (buffercount * sizeof(VPBuffer* )); for (LONG iBuf = VPBUFFER_RGBA; iBuf < VPBUFFER_ATMOSPHERE_MUL; iBuf++) { myVpBuffers[iBuf] = render->GetBuffer(iBuf,0); }
so myVpBufferrs _will be null if corrispondent multipass is not set.
But will be good to get the pointer to the lights and Id
thanks in advance Renato
On 23/06/2007 at 08:52, xxxxxxxx wrote:
Any help?
Cheers Renato
On 25/06/2007 at 11:16, xxxxxxxx wrote:
On 29/06/2007 at 10:43, xxxxxxxx wrote:
Maybe that my question is wrong?
On 02/07/2007 at 03:17, xxxxxxxx wrote:
sorry, I can't quite follow you here. you only get a shdow, diffuse and specular pass for each light and an alpha pass for each object id. do you want access to these passes?
cheers, Matthias
On 02/07/2007 at 16:41, xxxxxxxx wrote:
Sure..
On 29/07/2007 at 19:04, xxxxxxxx wrote:
Quote: Originally posted by Matthias Bober on 02 July 2007 > > * * * > > sorry, I can't quite follow you here. you only get a shdow, diffuse and specular pass for each light and an alpha pass for each object id. do you want access to these passes? > > cheers, > Matthias > > > > > * * *
Please! 28 days
On 30/07/2007 at 01:36, xxxxxxxx wrote:
Hi Renato,
Please ask your questions in a way I can follow you. What is it you want to achieve? From your last reply I was assuming the problem has been resolved. We both are not native English spekaers so please try to word your questions are bit more clearly.
On 30/07/2007 at 04:33, xxxxxxxx wrote:
Hello Matthias,
what i need is get all vpbuffer in the best way. I'm getting now the basic vpbuffer from render.. but seem that is better to get all them from Multipass..
Any suggestions?
On 31/07/2007 at 02:41, xxxxxxxx wrote:
I am not sure but could you not get all the information from the Multipass structure found in the PixelPost structure?
On 31/07/2007 at 07:35, xxxxxxxx wrote:
Do you need the passes after or during rendering?
On 31/07/2007 at 08:16, xxxxxxxx wrote:
i need to find all the VPBuffer opened by multipass. So i can fire pixels from vray to them So i need them in Execute..
On 22/08/2007 at 19:11, xxxxxxxx wrote:
Hi all,
Here the scene that i've examined:
i wrote this piece of code looking for the separate light pass:
LONG *remapVpBuffers = (LONG* ) GeAlloc (sizeof(LONG)*33); String *remapStrings = (String* ) GeAlloc (sizeof(String)*33); remapVpBuffers[0] = VPBUFFER_RGBA; remapVpBuffers[1] = VPBUFFER_AMBIENT; remapVpBuffers[2] = VPBUFFER_DIFFUSE; remapVpBuffers[3] = VPBUFFER_SPECULAR; remapVpBuffers[4] = VPBUFFER_SHADOW; remapVpBuffers[5] = VPBUFFER_REFLECTION; remapVpBuffers[6] = VPBUFFER_TRANSPARENCY; remapVpBuffers[7] = VPBUFFER_RADIOSITY; remapVpBuffers[8] = VPBUFFER_CAUSTICS; remapVpBuffers[9] = VPBUFFER_ATMOSPHERE; remapVpBuffers[10] = VPBUFFER_ATMOSPHERE_MUL; remapVpBuffers[11] = VPBUFFER_ALLPOSTEFFECTS; remapVpBuffers[12] = VPBUFFER_IMAGEBUILDING_PASS; remapVpBuffers[13] = VPBUFFER_DEPTH; remapVpBuffers[14] = VPBUFFER_MAT_COLOR; remapVpBuffers[15] = VPBUFFER_MAT_DIFFUSION; remapVpBuffers[16] = VPBUFFER_MAT_LUMINANCE; remapVpBuffers[17] = VPBUFFER_MAT_TRANSPARENCY; remapVpBuffers[18] = VPBUFFER_MAT_REFLECTION; remapVpBuffers[19] = VPBUFFER_MAT_ENVIRONMENT; remapVpBuffers[20] = VPBUFFER_MAT_SPECULAR; remapVpBuffers[21] = VPBUFFER_MAT_SPECULARCOLOR; remapVpBuffers[22] = VPBUFFER_ILLUMINATION; remapVpBuffers[23] = VPBUFFER_OBJECTBUFFER; remapVpBuffers[24] = VPBUFFER_POSTEFFECT; remapVpBuffers[25] = VPBUFFER_POSTEFFECT_MUL; remapVpBuffers[26] = VPBUFFER_AMBIENTOCCLUSION; remapVpBuffers[27] = VPBUFFER_MAT_NORMAL; remapVpBuffers[28] = VPBUFFER_MAT_UV; remapVpBuffers[29] = VPBUFFER_MOTIONVECTOR; remapVpBuffers[30] = VPBUFFER_BLEND; remapVpBuffers[31] = VPBUFFER_LIGHTBLEND; remapVpBuffers[32] = VPBUFFER_ALPHA; remapStrings[0] = "VPBUFFER_RGBA"; remapStrings[1] = "VPBUFFER_AMBIENT"; remapStrings[2] = "VPBUFFER_DIFFUSE"; remapStrings[3] = "VPBUFFER_SPECULAR"; remapStrings[4] = "VPBUFFER_SHADOW"; remapStrings[5] = "VPBUFFER_REFLECTION"; remapStrings[6] = "VPBUFFER_TRANSPARENCY"; remapStrings[7] = "VPBUFFER_RADIOSITY"; remapStrings[8] = "VPBUFFER_CAUSTICS"; remapStrings[9] = "VPBUFFER_ATMOSPHERE"; remapStrings[10] = "VPBUFFER_ATMOSPHERE_MUL"; remapStrings[11] = "VPBUFFER_ALLPOSTEFFECTS"; remapStrings[12] = "VPBUFFER_IMAGEBUILDING_PASS"; remapStrings[13] = "VPBUFFER_DEPTH"; remapStrings[14] = "VPBUFFER_MAT_COLOR"; remapStrings[15] = "VPBUFFER_MAT_DIFFUSION"; remapStrings[16] = "VPBUFFER_MAT_LUMINANCE"; remapStrings[17] = "VPBUFFER_MAT_TRANSPARENCY"; remapStrings[18] = "VPBUFFER_MAT_REFLECTION"; remapStrings[19] = "VPBUFFER_MAT_ENVIRONMENT"; remapStrings[20] = "VPBUFFER_MAT_SPECULAR"; remapStrings[21] = "VPBUFFER_MAT_SPECULARCOLOR"; remapStrings[22] = "VPBUFFER_ILLUMINATION"; remapStrings[23] = "VPBUFFER_OBJECTBUFFER"; remapStrings[24] = "VPBUFFER_POSTEFFECT"; remapStrings[25] = "VPBUFFER_POSTEFFECT_MUL"; remapStrings[26] = "VPBUFFER_AMBIENTOCCLUSION"; remapStrings[27] = "VPBUFFER_MAT_NORMAL"; remapStrings[28] = "VPBUFFER_MAT_UV"; remapStrings[29] = "VPBUFFER_MOTIONVECTOR"; remapStrings[30] = "VPBUFFER_BLEND"; remapStrings[31] = "VPBUFFER_LIGHTBLEND"; remapStrings[32] = "VPBUFFER_ALPHA"; GePrint ("************************************************"); VPBuffer *Buffer=NULL; for (LONG lb=0; lb<33; lb++){ for (LONG subId = 0; subId<50; subId++) { Buffer = render->GetBuffer(remapVpBuffers[lb],subId); if (Buffer) { GePrint("Buf: " + remapStrings[lb]+ " SubId: " + LongToString(subId)); if (lb == 0) break; } } } gefree etc.etc.etc..
Now..why all others lights layers are not in the list?
Thanks all Renato
On 24/08/2007 at 17:33, xxxxxxxx wrote:
On 25/08/2007 at 11:34, xxxxxxxx wrote:
Matthias won't be back until tomorrow so hold tight!
On 25/08/2007 at 13:46, xxxxxxxx wrote:
Thanks Robert
Can't you help me on this?
On 25/08/2007 at 14:36, xxxxxxxx wrote:
I don't know anything about VPBuffers.
On 27/08/2007 at 03:17, xxxxxxxx wrote:
Here's how to browse through a multipass bitmap. For lights there is an inner loop that retrieves the data.
The main bitmap should be checked with bmp->IsMultipassBitmap() first and then casted into a (MultipassBitmap* )
LONG j,i,id; LONG cnt = b3d->GetLayerCount(); for (i=0; i<cnt; i++) { MultipassBitmap *sublayer,*layer = b3d->GetLayerNum(i); if (!layer) continue; LONG subcnt = layer->GetLayerCount(); for (j=0;j<subcnt || subcnt==-1;j++) { if (subcnt>0) sublayer = layer->GetLayerNum(j); else sublayer = layer; if (!sublayer) continue; id = sublayer->GetParameter(MPB_USERID).GetLong(); } }
On 27/08/2007 at 10:47, xxxxxxxx wrote:
Thanks Philip,
but what do you mean about main bitmap?
do i need to get it from Multipass::VPBitmap[0]?
On 28/08/2007 at 12:26, xxxxxxxx wrote:
You can retrieve the main bitmap by calling
MultipassBitmap *mpb = (MultipassBitmap* )renderinstance->GetBuffer(NOTOK,0);