Eluxir - Hypergraph for LuxRender Beta

24

Comments

  • DrPingyDrPingy Posts: 78
    edited December 1969

    Hallo SpericLabs,
    2 wishes for next Versions:
    1. It is possible that In the luxus surface brick are float inputs to dmscale and dmoffset? So we can save 2 bricks setting up displacement.
    2. Don't write default values to the lxs-file. LuxRender will save a lot of time.

  • CzexanaCzexana Posts: 167
    edited December 1969

    Just started looking at Eluxir - looks like it has a lot of promise.

    I think I found a problem with the glossy translucent brick - if I plug one into the Luxus surface then export the Lux code from the surface it comes up correctly as glossy translucent material. If I apply the shader to a surface and export the scene to Lux, the code in the .lxs is for glossy material.

    A couple of things that I couldn't see how to do:

    1) scale a colour by a float - can scale two colours or two floats, but if I have a diffuse colour map and a diffuse strength float I can't seem to combine them.

    2) get a float from a colour or colour from a float - in the standard shadermixer bricks don't these automagically convert by using the average going to float and greyscale going to colour? I guess this would fix my first point too.

    Also, I'd find it useful to have the texture gamma exposed as an input in the image map bricks, and to expose the value from render settings in a variable brick so I could plug it in to the image map.

  • ketthroveketthrove Posts: 63
    edited December 1969

    czexana said:

    1) scale a colour by a float - can scale two colours or two floats, but if I have a diffuse colour map and a diffuse strength float I can't seem to combine them.

    2) get a float from a colour or colour from a float - in the standard shadermixer bricks don't these automagically convert by using the average going to float and greyscale going to colour? I guess this would fix my first point too.

    Standard shader mixer bricks are able to do this conversion under the hood because they are actually writing code for the final shader. The Luxrender doesn't have a shader language (well it has c++ compiled into the program but that's not quite a good experience for you to have to recompile Luxrender in order to use a custom Eluxir material). So the operations that are available are more limited. Turning a float into a color can be done with a simple mix texture, make the color inputs black and white and hand in the float as a mix value.

    By the way Luxrender doesn't actual work with the same rgb"colors" as your standard biased renderers, it works with spectrum. During read it turns user supplied colors into these and at the end it bakes these spectrum into colors for your display/image, but they are a bit of a different animal. There's not a Luxrender supplied conversion from spectrum to float that I've seen and you'd probably not want to use it if it did as its a lot of computation to get a value, when just supplying a value would be more efficient.

    I believe there are convertor for float and color(spectrum) into fresnel textures. These should be in the brickyard.

    I agree though that bricks that took one/three floats to define a color would really useful. Especially because of the above mentioned issues.

  • SphericLabsSphericLabs Posts: 598
    edited December 1969

    version 0.0.0.4, All links updated.

    -> scale parameter added to constant color.

    I went this route instead of the 3 floats. It was easier, but also because it still allows one to see the "base" color. I don't see 0.000045 0.000132 0.0000345 so well.

  • agent unawaresagent unawares Posts: 3,513
    edited December 1969

    Awesome, thank you!

  • CzexanaCzexana Posts: 167
    edited December 1969

    ketthrove said:
    czexana said:

    1) scale a colour by a float - can scale two colours or two floats, but if I have a diffuse colour map and a diffuse strength float I can't seem to combine them.

    2) get a float from a colour or colour from a float - in the standard shadermixer bricks don't these automagically convert by using the average going to float and greyscale going to colour? I guess this would fix my first point too.

    Standard shader mixer bricks are able to do this conversion under the hood because they are actually writing code for the final shader. The Luxrender doesn't have a shader language (well it has c++ compiled into the program but that's not quite a good experience for you to have to recompile Luxrender in order to use a custom Eluxir material). So the operations that are available are more limited. Turning a float into a color can be done with a simple mix texture, make the color inputs black and white and hand in the float as a mix value.


    Ok, hadn't thought of that way, thanks! I see now that you can also scale a colour texture by a float texture in the same way by mixing with black. It just takes looking sideways at the problem.
    %-P
    By the way Luxrender doesn't actual work with the same rgb"colors" as your standard biased renderers, it works with spectrum. During read it turns user supplied colors into these and at the end it bakes these spectrum into colors for your display/image, but they are a bit of a different animal. There's not a Luxrender supplied conversion from spectrum to float that I've seen and you'd probably not want to use it if it did as its a lot of computation to get a value, when just supplying a value would be more efficient. I believe there are convertor for float and color(spectrum) into fresnel textures. These should be in the brickyard. I agree though that bricks that took one/three floats to define a color would really useful. Especially because of the above mentioned issues.

    I hadn't been able to figure out what the fresnel bricks were for I must confess. I'll see what I can do with these.
  • ketthroveketthrove Posts: 63
    edited December 1969

    czexana said:

    I hadn't been able to figure out what the fresnel bricks were for I must confess. I'll see what I can do with these.

    They are used in various situations but the big one is metal2. They let you define a metal with a color or value instead of a luxpop or sofa file.

  • DrPingyDrPingy Posts: 78
    edited December 1969

    I have a problem with file dialogs in eluxir (see attached file).
    The dialog is not at top. All bricks I insert after this are on top.

    dialog.jpg
    1261 x 997 - 101K
  • ketthroveketthrove Posts: 63
    edited December 1969

    DrPingy said:
    I have a problem with file dialogs in eluxir (see attached file).
    The dialog is not at top. All bricks I insert after this are on top.

    This is a studio bug. You can work around it by selecting a brick an then in the context menu select bring to front.

  • DrPingyDrPingy Posts: 78
    edited December 1969

    Thanks for the tip. It works.

  • RarethRareth Posts: 1,462
    edited December 1969

    well I can make things work to a degree, the implications are fantastic...

  • agent unawaresagent unawares Posts: 3,513
    edited December 1969

    Any chance of an update to the beta soon? :)

  • DrPingyDrPingy Posts: 78
    edited December 1969

    Or any change of the release?
    Or release date?

  • SphericLabsSphericLabs Posts: 598
    edited March 2013

    0.0.0.5 is Up. All links updated.

    GlossyCoating is added and seems to work.

    The warning on ConstantColor is fixed.

    fresnel name brick is according to spec and works, but throws error(I think LuxRender is in the wrong and should not be throwing errors in this case). The error seems to be safely ignored.

    And the plugin will timeout at the end of April.


    And a red metal luxball with a glossy coating.

    red_metal.png
    500 x 500 - 337K
    Post edited by SphericLabs on
  • agent unawaresagent unawares Posts: 3,513
    edited December 1969

    Hurray! Thanks, that looks great!

  • CzexanaCzexana Posts: 167
    edited December 1969

    I'm getting back to playing with Eluxir and I figured out why I'd had problems with a shader - I'd started with a standard material rather than a Luxus one by mistake! :red: :ohh:

    Anyway, once I copied the network into a Luxus shader base I started to get somewhere.

    One thing I do see from looking at the Luxrender code, is that where the 'colour image map brick' image value is multiplied by the associated colour in the brick, the 'float image map brick' image value is not multiplied by the associated float in the brick.

    Is this a deliberate design choice, or just an oversight?

  • SphericLabsSphericLabs Posts: 598
    edited December 1969

    Oversight. Sorry bout that.

  • CzexanaCzexana Posts: 167
    edited December 1969

    Oversight. Sorry bout that.

    No worries. Looking for a workaround made me add min and max for bump and specularity, so it's all good. :coolsmile:

  • CzexanaCzexana Posts: 167
    edited December 1969

    A couple of other things about image map bricks:

    - could they be made so the image map is optional? So if you don't wish to use an image in a particular channel of a shader the brick doesn't output code loading a blank string as filename.

    - the 'channel' on colour image map bricks keeps defaulting back to 'mean', even if I've locked and hidden it on 'colour mean'.

  • agent unawaresagent unawares Posts: 3,513
    edited December 1969

    czexana said:
    - the 'channel' on colour image map bricks keeps defaulting back to 'mean', even if I've locked and hidden it on 'colour mean'.

    The Locked setting is doing this, I'm afraid. It causes very strange behavior in Shader Mixer. Parameters should be hidden if unwanted but generally speaking never locked.

    You can try setting the default to 'color mean' by double clicking on the parameter, unlocking, setting the default, closing out, then opening it and only then relocking. IIRC that may have worked for keeping the parameter stable through saves, but I'm not sure and not near my laptop to check. There are still other issues with locking a parameter, so I wouldn't do it unless it's absolutely necessary.

  • CzexanaCzexana Posts: 167
    edited December 1969

    czexana said:
    - the 'channel' on colour image map bricks keeps defaulting back to 'mean', even if I've locked and hidden it on 'colour mean'.

    The Locked setting is doing this, I'm afraid. It causes very strange behavior in Shader Mixer. Parameters should be hidden if unwanted but generally speaking never locked.

    You can try setting the default to 'color mean' by double clicking on the parameter, unlocking, setting the default, closing out, then opening it and only then relocking. IIRC that may have worked for keeping the parameter stable through saves, but I'm not sure and not near my laptop to check. There are still other issues with locking a parameter, so I wouldn't do it unless it's absolutely necessary.

    That looks like the procedure I use - I noticed that you can't open a paramater properties panel, unlock it, change it and relock it. The panels probably need and 'Apply' button or something ... :smirk:

    I'd locked and hidden the 'channel' parameters as I wanted to keep the 'colour image map' bricks set to coloured_mean and the 'float image map' bricks set to mean. It was only after seeing the odd behaviour that I twigged to renaming and unhiding the 'channel' parameter in the colour bricks to 'Colour Map Channel' - so they appear stacked in the shader. Works fine. :coolsmile:

  • CzexanaCzexana Posts: 167
    edited April 2013

    I've finally populated out most of the inputs to a Glossytranslucent and homogeneous volume shader. I've got up to 38 bricks. :ohh: :cheese:

    Here's a picture of the skin setup I've been playing with - a lot of the channels in the shader are redundant for this so I'll probably produce a specific skin shader that loses about half the bricks.

    d71.jpg
    600 x 600 - 65K
    Eluxir_shader.jpg
    1634 x 999 - 233K
    Post edited by Czexana on
  • SphericLabsSphericLabs Posts: 598
    edited December 1969

    I'm impressed.

  • SphericLabsSphericLabs Posts: 598
    edited December 1969
  • CzexanaCzexana Posts: 167
    edited December 1969

    Until you get down to the brick level, which would be some of the more useful information, like here.

    I wish someone would implement a point-cloud subsurface scattering brick for the 3delight engine - such as the algorithm uberSurface2 uses - as I've never been able to get the same sort of realism with the current SSS brick due to a lack of side scatter. Unless I'm using it wrong, of course ...

  • agent unawaresagent unawares Posts: 3,513
    edited December 1969

    Nice-looking skin thus far.

  • CzexanaCzexana Posts: 167
    edited April 2013

    Nice-looking skin thus far.

    I find it is very dependent on the quality of the supplied specular maps - this is 'Aiden for M5' by Morris and has nice specular maps. A lot of characters have either no specular maps, or somewhat odd looking ones.

    Post edited by Czexana on
  • SphericLabsSphericLabs Posts: 598
    edited December 1969
  • SyndarylSyndaryl Posts: 521
    edited December 1969

    This is very exciting! I've been playing with node-based Lux materials in Blender and having a real ball with them. This looks to have a significant leg up on LuxBlend, in that a shader made in Shader Mixer can be applied to multiple surfaces and have maps or colours customized without changing every surface using the same network. LuxBlend (and blender in general) has a really weird attitude about material management :P

  • SyndarylSyndaryl Posts: 521
    edited December 1969

    What WOULD be a nice feature (and I appreciate that this would also potentially be a very annoying feature to implement) would be adding an input on the Image Map nodes (both colour and float) that would take a Studio ImageMap - just to pull the path to the file, really. Similar hookups for floating point numbers and plain old value controls.

    That way I can build a single shader that has both a studio and a luxus mode with only one set of inputs, giving me some ability to switch back and forth as desired.

Sign In or Register to comment.