Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

31 posts in this topic

First of all, thanks very much for sharing this. I'm trying it out and it looks amazing straight out of the box! I'm having a little difficulty making it refract but I'll get there...

 

I was just looking at your glass / juice setup and I don't get what 'VOPint' is in the Inline VOP. Google isn't helping me with it, could you tell me what it's about?

Share this post


Link to post
Share on other sites

First of all, thanks very much for sharing this. I'm trying it out and it looks amazing straight out of the box! I'm having a little difficulty making it refract but I'll get there...

 

I was just looking at your glass / juice setup and I don't get what 'VOPint' is in the Inline VOP. Google isn't helping me with it, could you tell me what it's about?

VOPint is just another name for int. It is defined in voptype.h (you may take a look how it is in $HFS/houdini/vex/include/) and this types used in most VOP operators and in the PhySurface also.

You can replace VOPint by int and it will work.

However, sometimes vcc prints strange errors in voplib.h when there are few custom operators of the same type in VOP network. In my expirience this error can be avoided by using VOP types (VOPint, VOPfloat, VOPvector, etc.) instead of builtin (despite that they are the same).

 

I think it's relative to mechanism of Vex code generation in VOP network.

Edited by rsd

Share this post


Link to post
Share on other sites

Ok, I see. Or at least I will delve a bit deeper and try to understand!

 

Thank you again for sharing your knowledge.

Share this post


Link to post
Share on other sites

Fantastic. Many thanks Roman - kudos to you.

 

If your in London - we at Realise will like to buy you lots of beer! :)

 

I see there's a lot of interesting optimisations available. I haven't had enough time to dig deep - but how compatible would you say this is with the Disney plausible shader? I'm asking, as there's lots of interesting software that compliments the Disney model - and I'd be keen to explore how your shader could fit into that workflow.

 

Again, thanks from all of us.

 

Cheers,

 

Paul

Share this post


Link to post
Share on other sites

I see there's a lot of interesting optimisations available. I haven't had enough time to dig deep - but how compatible would you say this is with the Disney plausible shader? I'm asking, as there's lots of interesting software that compliments the Disney model - and I'd be keen to explore how your shader could fit into that workflow.

 

 

Rather no then yes.I discovered the Disney's paper a half-year ago. By then the most parts of physhader was done and I nothing took from paper.

 

The main difference between the disney's way and physhader is that second one is more drastic in some principles. For example, physhader has no such parameter as metallic, there is only parameter with two discrete values: dielectric or conductor. This is also the reason why I didn't implement GTR (at least for a while) - I'm trying to keep the parameter number as little as possible.

 

Currently I'm writing a wiki where I will explain details.

Edited by rsd

Share this post


Link to post
Share on other sites

Small upgrade v1.0.1

 

* Move to Houdini FX version (now it isn't necessary to rebuild the asset)

* Added BSDF sampling mode for RayTrace/Micropoly
* Implemented variance antialiasing for RayTrace/Micropoly
* Dispersion now is not limited to only smooth surface, it affects all transmission components.
* Introduced volume model
* Improved volume absorption and single scattering at glossy surfaces
* Fixed thick sheet shading
* Fixed complex Fresnel

 

If this release works with H13, it is probably last one which does. In next versions I will use some new features of H14.

1 person likes this

Share this post


Link to post
Share on other sites

This is really cool, Roman!

Thanks so much.

 

Just for your info. It wasn´t immediatly obvious to me that to get a dielectric glass-like surface I needed to disable the diffuse component. You might want to add a small comment to the help.

 

Thanks again.

Share this post


Link to post
Share on other sites

Javier, thanks for suggestion.

I will extend pop-up help.

Unfortunelly pop-ups don't work on my machine, so I don't pay attention to this.

 

 

It wasn´t immediatly obvious to me that to get a dielectric glass-like surface I needed to disable the diffuse component.

 

I explain this.

 

I made such behavior of diffuse because I want to make PhyShader to comply with real world appearances more. Actually, I think in this case the combination of diffuse and refraction must give SSS, but separate diffuse and SSS are more flexible. So I made diffuse component to force opaque, but with transmission enabed it little changes.

 

 

There is also built-in help page on PhySurface (click on question mark). (It is absolutely illeterate written, but it contains some useful info).

Edited by rsd

Share this post


Link to post
Share on other sites

I know about the help page. That´s the one I was suggesting you should add the info to  :)

 

Thanks for the explanation.

Share this post


Link to post
Share on other sites

Strange, but the help page has note about it.

Maybe it is too tongue-tied? Sorry for my English.

 

Check out the last snapshot, I've edited some entries.

Share this post


Link to post
Share on other sites

Now I have more time to continue development and I finally switched on H15.

 

There is a minor update - v1.1.0:

  • various bugfixes
  • improved PhySurface material
  • minor UI change of PhySurface: separated IOR
    • inside IOR is now vector2 (n, k)
    • outside IOR is now standalone float parameter
  • PhyVolume is now a full part of PhyShader:
    • per-light exports support (in "volume_direct" variable)
    • fixed anisotropic volume BSDF sampling
    • added scattering color coefficient
    • added absorption color coefficient
  • physhader.otl is renamed to physhader.hda (the most important improvement) to comply with new naming conventions

Don't forget to remove old *.otl file to avoid possible conflicts of operator types

 

Here is a test render of PhyVolume.

 

There is also a lot of improvements are planned - link.

Any help is appreciated.

3 people like this

Share this post


Link to post
Share on other sites

I just drafted a new release - v1.2.0 download

There are many useful changes in this release.

  • The two old GGX CVEX BSDF's (reflect and refract) have rewritten to the one GTR BSDF with better sampling (distribution of visible normals by Eric Heitz). It's used in PhySurface and available as a separate VOP type operator.
  • Multiple subsurface scattering has completely rewritten. I discarded the complicated dipole BSSRDF in the favor of approximated reflectance profile by Per Christensen. New SSS is also available as a separate VOP.
  • PhyShader materials are really usable now. There are two new materials: PhySurface Layered material and PhySurface Nested material. PhySurface material has improved and fixed. The materials now have OpenGL parameters linked to corresponding PhySurface parameters, improving viewport experience.
  • Several UI changes such as IOR presets menu and dispersion presets menu.
  • Dispersion is brighter now.
  • Faux metallic nk-based dispersion. If dispersion is enabled in Conductor mode, reflection color will be desaturated through complex Fresnel curve.
  • Most bugs (I hope all) are fixed
3 people like this

Share this post


Link to post
Share on other sites

An example of PhySurface Nested material usage.

Note: it works only with Ray-Trace engine.

 

Edited by rsd
2 people like this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now