sebkaine Posted January 21, 2014 Share Posted January 21, 2014 (edited) Hi Guys ! I am encountering the exact same problem as this post http://forums.odforce.net/topic/17510-export-bsdf-output-as-image-plane/?hl=%2Bbsdf+%2Bimage+%2Bplane My goal is to understand how can i connect my parameter node to output and separate shading component (diffuse/spec/reflection/sss/emission ... ) into different image plane (AOV). To connect my parameter i need a proper Color Type. So my question is how can i convert a Bsdf Type into a color type. The BSDF type is pretty vague in my head i have no precise idea of what it is and what it contain so any info on this would be cool. To go from a BSDF output to a vector color mantra use the physically based lighting node with F input and all output plug in Cf. I have try to connect the reflection BSDF output to > a physically based lighting to a > parameter but it doesn't work. How would you isolate diffuse / sss / specular / refection in a mantra shader in a clean way. Many thanks for your time ! Cheers E Edited January 21, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
insania Posted January 21, 2014 Share Posted January 21, 2014 (edited) Hey monsieur Mouillet, guess who I am ? If you want to isolate the different shading components from a bsdf input, you can also use a "direct lighting" node. It will separate your bsdf input into different vectors for diffuse, reflect, refract, etc, then you will be able to plug each of them in a parameter node. But if you're using a mantra surface shader, you can also get the separate shading components using the Images planes presets, "direct_reflect", "indirect_reflect", etc will work in PBR as well. test.hip Edited January 21, 2014 by insania Quote Link to comment Share on other sites More sharing options...
insania Posted January 21, 2014 Share Posted January 21, 2014 (edited) I've made a simple example in the scene attached above. In the vopmaterial1 shader, I've connected my bsdf output from the surfaceModel node to a direct Lighting node, and then plugged the reflect vector output to a "test" parameter. Edited January 21, 2014 by insania Quote Link to comment Share on other sites More sharing options...
sebkaine Posted January 21, 2014 Author Share Posted January 21, 2014 (edited) Many thanks for your help insania ! i need a clue are you working in paris uk or ca ? i would say that you are Charles or Marc but .... not sure ... Well the problem is that indirect_reflect give you the reflection of all the element in your scene that have a mantra shader assign. My goal is to be able to output aov on a shader basis. for exemple only the object that have shader_01 assign will output their reflection. i have make some little test and i can't find a good solution. i have attach a scene to describe the problem on my machine i get the following result with the posted scene Ref : beauty render only = 0.32 s to render test 1 : beauty + indirect_reflect AOV = 0.33s test 2 : beauty + AOV_reflection_v01 (using direct lighting node) = 0.44s test 3 : beauty + AOV_reflection_v02 (using physically based lighting node) = 0.40s test 4 : beauty + AOV_reflection_V03 (by isolating the indirect_comp vector array value) = 0.55s so test 1 give coherent result the render time is nearly the same, so there is no extra computing houdini isolate the temporary value and writte what is store in the buffer. test 2 and 3 show that if you use direct lighting or physically based lighting it comes with an extra cost so houdini is not storing something that exist in the buffer , it looks to operate an extra operation to convert the bsdf to a color. cost is expensive about 35% extra render time test 4 is weird as i am sure i don't ask any extra computing i just get the result of the indirect_comp node and i isolate the second component of the array, the indirect_reflect. but time is the longest of all my test , so i can't explain this extra cost. So to sum up i am unable to isolate the component i want on a shader basis at NO extra render time or minor one ... If you have solution i buy you a beer next time i see you ... Cheers E aov.hip Edited January 21, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
insania Posted January 22, 2014 Share Posted January 22, 2014 (edited) Well the problem is that indirect_reflect give you the reflection of all the element in your scene that have a mantra shader assign. My goal is to be able to output aov on a shader basis. for exemple only the object that have shader_01 assign will output their reflection. Well, the "indirect_reflect" preset is working just because there's a indirect_reflect parameter node in the shader (surfaceModel>indirect_reflect). So if you want to have the reflection only for a specific shader, you just have to add another parameter next to the already existing "indirect_reflect" parameter node, and name it differently. You specify this name as VEX variable in the mantra node, and it will works, no extra render time for me. And yes, I'm Marc Si tu passes par IMG, viens nous faire coucou aux VFX ! Edited January 22, 2014 by insania Quote Link to comment Share on other sites More sharing options...
sebkaine Posted January 22, 2014 Author Share Posted January 22, 2014 Many Thanks Marc i'm gonna test this ! on se voit a IMG ds pas lgtps mec ! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.