can you achieve transparency in 3D environment?
hello, i am a first year digital media student and have just introduced myself to max/MSP. i am working on project right now for my uni assignment and i am trying to create chromakeyed plane in 3D space with 3D cubes spinning around it. i have tried so many things and still it doesn’t work as needed and i really need some help and professional advice.
achieve this sort of effect in max/MSP
+ use live green screen video feed
+import it in scene with 3D elements around it
+track the movement of person from live feed and apply these values to trigger 3D elements.
i managed to apply live feed onto a plane as a live texture and import it in 3D space along with the cubes
i also managed to sort out tracking and applying in on movement of 3D cubes
every time i was doing chromakeying the keyed areas appeared as black on my 3D plane. i have to get rid of those black areas and make them transparent. i don’t know how to achieve that!
the only problem i am facing is getting my videoplane transparent in 3-d space.
i have explained the process and supported it with patches i was working on in my blog here:
i am very confused and apparently there isn’t a teacher in my department who can help me to sort my problem. i have read many forums and tutorials, maybe i am looking in wrong direction, please open my eyes!
–i need to know how to achieve transparency on 3-d plane and apply transparency on green areas.
i might be doing wrong thing by chromakeying it, all i want to achieve is just body appearing in that plane without black areas which are keyed.
well, sounds like you have two problems to sort out.
the first is to enable alpha based transparency on a textured 3d gl object.
this can be achieved by first ensuring that you are actually sending a matrix with a proper alpha channel to your videoplane, and then setting @blend_enable 1 and @depth_enable 0 on your videoplane.
the second, more difficult problem, results from the fact that you need to turn off depth_enable in order to properly display transparency. therefore you can’t rely on automatic depth sorting and you have to handle it yourself.
one way to do this is with gl objects @layer attribute.
here is a very simplistic example, but should get you started.
you use the z value of the circling gl object to change it’s layer attribute. this assumes the videoplane is at a z value of 0, and that the camera is in it’s default position and default lookat.
you could encapsulate the circling object code in a poly~ and have several of these going simultaneously.
----------begin_max5_patcher---------- 2071.3oc6alsbaaCE.8Y6uBNZxCscrUH.H3RalNt+D8k1NYnHgkXBEgBIkic xj+8hMISaKBBQAAyzz3XyEIacuGb2.tfe8xKlsfdOoYl2u58WdWbwWu7hKD2 heiKTWewr0o2mUl1HdayxnqWSpZmck70ZI22Jt+6t9Zuu3cWZ4VxtWqZ65hp RRq3WD73Moaa2cWe0c2j1lspnZ46qIYsRwIJvet+UdnDwAfOPbHYtu2+n9kJ xEexzEe35XvtOzaoUsUoqIhW5OI04oUoceslhuHdM.6OK+te6xK4+3pST8SK 2rJ0KaUZUEoz65q+c6.AoxGDaDC7cDCVSZZRWRdACJSefT6gNnlCOnlCzL7i jpdn3.VBfnCq4Qwln4xO21G1PjeByls+u0YGJ.6.kv3i.JQu9Poh7Yln7Blz RWRxWdLwIfCyDo8RXhNWjH7nXxhzpkytRczA74cd9ysqACnqASevIXTvofEM zlL41RJS8rpsgJGx.pOZTpOSbSacowQFcaUKKjhO6KTn+AAE9ffJnePgkDBA TIZzRpvjQanv3ztusscSO3ZSZ1G81PaJZKnUL+J4+OH0BNVuKL9IknviDqgZ gS13w0dsqHxfbG.K9iDKvHoWWrVpfmrTIi1bDQgzEDFJMSjYsgXs7H3DhB4. nzTTYGnrKhiQPAMsgB49M0d+zatE7Vt57y+R3bXLBDisKojE3.PhnLbSpChJ 3AQ0eTWjVdrdSf43DLHNxdf5CEsyWVNeYcQdypzMDuaoTuaJKVtpkqyjpzEk DOf2MxWskVusgcQVJ6t9yA69d2e2xhJhHc3yhdeBULnhcgUY.U0Mg6A1fQYW xnv6Wm1VWbuHWnCLPUb+thbBcSYZkB74jMsq1QceuaXGpx6LJHm6B7Lh68El pvchVb6+cBtsb9TPR2pxzmOEm75mOkass4yEU4zOamx3AOYYPj+Lrm.f339U R4vuccq1Vwqv7HzS7v5YnIUgiirf2f4W4B+l6DIReSA3sPVL.6j8DjHhofjv LFoK4I.MkSdtolrgEe1KiVRqsKbfAB3.zBmfuGfiuUACLRTrUndqF7j.LMay 9X5JspeFcMSWKVTTVz9vovE.VPDfDL.HnGxDpS+s3puya9PVYAal9r43uvZs f.ImAKPFONAp0JHYXq.aMT22ZM+a+ccKsjUgbH6raSy4EMCYmxXvGIOvtfed 587yAyOXUcXqrpipopHKkNT3BE0iIBzeJGUo1ShK6TGGJTLKWTPxi0w0m4DD Lw4hvjxNbAlD2kKAZ4BbZyEtWmknRPTGpHaFZuTAMsoBKpjslJTRGnfzCkIc AKkzz7dmhHXjQbAXChrDOBrno4Fm.ZLnUOroeHV9Gg0x7D0cYuwh0reSwM80 NcxEKk0KKzC+4wgr+Ec0AOqaJJMguivxIooCxnwDlpmVIshay7TkHxGGGe0A OqqR7i43ztzIFMNg9+woWswIUBNiFmB9uz3Te0uqpM+MVZ2hnBXEH21Px5vA w8.3owjX6kLxYvXKxnBQriLHsjIbRSFwz7rFWjtjJtHKxpWtDMI3x2Ww71U+ pQw7h+QHlGeAKrk4qhtJyWjdy2jIg4qo8JQzptEau8VRc+SbRaKTjsMBC6rh Vf9L8BfC0DkchEc6hRxKkKZUSVMgTItmca3R1pZ55z9V7A3X6sjZBTwZ6tdv XJWzn9nryDZ+J0t2UUXKy7MS7AIg7y7UmI7RsnmXMIM2itZ9Z5cVJaBtaerj g75ycL.O022BepkSlBhGB5yRT56cych0Z0ps3D.UtoZWDrfjysY3HP2lzJR4 HV28mjbUYrGjD6iR5d1P4UiUKVlLiJFre2abvVmtOeSMcaUNIergormN+LEe vxHvx1SoZCibI1g8nsPKos8VB51xRY3d6M0E4J6I23bQg51m6fW+M7PKc4xR hk57HTsnl62b+8q5vA1T1Vba+QJYVa1IiabWEDoc+5iNosquK1xBGWSPBFzh 2WUMhNpDbJa+5WdvQ6+LYQtc13YxpF8N7t4CZkrpJnFzo+sndZDIdxap0ncW kczM2VUbFxjMosidvxzu6EqIrjW0bCnYVz33IM2u2mMjoiwAGF2toY41B6PA YcmI62Sc7hn544KbLUnqqTSa9Dk4sf8EoNsg3s3H.yfAjk6.jHswiSN8GpL1 QgveVdPhrY4IRp7XiW0rgX7cV0IeZMosl5A8sYwmpcuRftQd.X7C8lLBKdOh DiO6YzVH076+TX0P2Vms6SY2LE8dTzyIMsEUo7GEptuI3SdSqJxyUqby9kJM eCkMn073xrgYPQt9vP+n8W0yfpwRK1DoM43j1SUlLhfHmJS3joGm3OC1CJS7 GXBWJSQSPYhaiCFPldFLchLMDmdFLO6xTfIxD1sxDxDYJvswmLQl3O4LNTlB MZryswLCMIlYHzsxjI9cgtMN9yPPOxDZBJSt0ui+3bO0xsXjemPvQtSlPlJS fIleWnSG6Pmi5Lg9w7ZyCfxUPWV2t3pSUZiNGRKN7LIsgmAoEIm2yYPZwmCo MJ37HsffymcqpcdJoUbkKpVB61Jcwl3Kgc6LB.l3w.ba02.S7K.tsxDfI1S. 2VYBzDORjasmPlr5.H2VoKzDYJ3HswQHYjUD+mP79KNUY0D6LjasyPFYm41X oPSlo.xswHPFM141pMg.SjI2NaXjQic3oWLBnaWcESF5bKkLJPfaskLYXysV RlTnfasi7MQjbrLYhwsaKSf+oAGZsLctD4O4jng5oQnykHz.RzoTBL6huc4+ Bo7e8b. -----------end_max5_patcher-----------
thank You for replying and directions, i will get straight on this one, thanks a million!
thanks to your explanation and example patch i am nearly there, bit more tweaking and i should be sorted. i will post my final crit results here, thank you soo much, i do appreciate your help>>>>