LuxRender Progressing Like Lightning…..

I have been doing all this coding for Blender and LuxRender via my Converter, which takes Blender Internal materials and converts them to LuxRender materials suitable for rendering.  The last LuxRender plugin for Blender I installed had an update feature found in the ‘User Preferences’ section, so I went ahead with updating.  To my surprise, there were some noticeable changes.  It is possible I did not have the latest version previously, as I noticed multiple folders in my ‘blenderaddonsluxrender’ folder as well as the main folder in ‘program files’.  I cleaned up my folders and I have the latest, for sure.  Big change – the output material node changed the slot assignment for light emission.  When I tested my Converter, the light nodes did not connect.  I have fixed this already, but wanted to investigate further what has also changed.  There are a number of things:

  • The image texture node has changed to include a LuxCore specific node.  The old node is called a ‘Classic Image Node’
  • The material selections have been rearranged and updated to apply to ‘classic’ vs. ‘luxcore’.
  • There is a scatter material which currently only works with ‘classic’ API.
  • The bump map factor is no longer under ‘Converter’ or ‘Math’ (I can’t remember now), but in the ‘Texture’ menu
  • There is now a Volume NodeTree (this has moved input assignments to Material Output node)

I am going over my code and testing for rendering in LuxCore.  So far, everything seems to work except for some glass materials.  I will update accordingly.  This is where the latest version of Addon can be retrieved: Convertor for Lux 1.5.5

Posted under 3D Modeling

LuxRender Converter Update and Tweaks

Happy Holidays!  I have had some time testing and updating code for the LuxRender Converter.  As is the case with any programming, when you update something, you invariably break something that worked before.  The only way to solve this is just to keep debugging and testing.  I have had great feedback from the BlenderArtists community, and example files were suggested to test the Add-on tool and I am most grateful.  The only way to get code bullet-proof is trial and error and more testing.  I have added more capabilities in the conversion code – namely:

  • Transparent Image Mapping
  • Displays and screens handled specifically
  • Bump mapping based on object size
  • Fixed Unicode issues printing log file only
  • Adjusted absorption depth for skin materials

Tested the conversion tool with some of the most materials and object filled scenes I have dealt with (just parsing the file took 16 minutes) in a model file.  That one was the real brute force test – here, called Piper’s Alley.   I was able to enhance the code to process that large file without issue.  Searching through the Web, there are a number of models to download to test.  Below is an OBJ scene created by ‘3DRegenerator‘, a Marvel character display essentially.  No preparation was done to the file, except for placing figures in scene.  The Lux Converter was run and the result is shown here.  I added a city model in background for visibility through windows.

marvel_tst

Before uploading updates and tweaks, I wanted to test again a complete scene exported from DAZ3D.  This one had 3 human figures for testing skin conversion as well as other materials.  This was a complete scene and figures were just thrown together in an environment (I believe one that came with DAZ 4.X).  The goal here was to see if the Converter could catch all the materials both on male and female characters with some materials (like hair style) sharing the same base.  Most importantly for test was to see if it could handle transparency maps for hair and eyelashes, etc.  Those materials never import into Blender or Vue properly.  I think the McTeleBlender script(s) do that transparency conversion, but haven’t tried in years.  This Conversion Tool is Luxrender specific and assumes that the materials in Blender Internal before conversion are what is intended.  Here is the test result:

Capturetotal_scene_import_DAZ

The eyelashes and hair converted perfectly (as well as they can be for that type of hair simulation).  I will continue to test OBJ, 3DS, DAE, and other model formats that get imported into Blender for misfires, but I am quite happy with the output at this time.  It is waaaay better than building materials in LuxBlend individually!!

The latest Add-on can be found here:   LuxRender Converter for Blender (version 1.5.4)

 

Posted under 3D Modeling

LuxRender Converter for Blender

I finally had some time over the Thanksgiving holiday to finish up coding my ‘Holy Grail’ for Blender.  I may have mentioned previously that I am a big fan of LuxRender.  Unbiased rendering is the way to go, in my thinking.  But one thing that has been a big time-sucker is prepping the scenes and objects for rendering in LuxRender.  You see, none of the materials from Blender Internal or Cycles are portable over to LuxRender.  I would have these tremendously detailed scenes that come from assets I purchased and were more often-than-not Wavefront OBJ based.  As-is, Blender imports over OBJ files just fine, and they can render in Blender Internal renderer most of the time.  But switch over to LuxRender and you lose the material settings completely.  I have solved that.  It is based on the framework that Silvio Falcinelli created in his Blender Cycles Converter.  If you like Cycles, I highly recommend that Addon.

blender_wireframe

Wireframe view of scene

Here I have a very complicated and detailed scene from a DAZ3D asset I purchased.  It has 144 objects.  Imagine trying to manually apply materials and textures to that!  With my Addon, the Blender Internal materials are converted in about 3 seconds.  Now you can spend more time tweaking materials and getting your render engine settings just right!

COMPARISON

You can see the differences with the original Blender Renders and then the following LuxRender outputs below the first two.

blender_texture    blender_render

Image on left above is a Blender Render Texture View through 3D Viewport.  The unaltered Blender scene imported from an OBJ file seems intact with all textures and materials matching up.  The image on the right above is the same scene, only it is rendered with Blender Internal engine.  There may be some setting I am missing with Blender Internal, but even though the textures are in the slots, they are not rendering.  Interestingly, the bump map images are.  Anyway, that is the render without performing any adjustments – pretty disappointing.  Blender Internal can get good renders.  In fact, if tweaked and adjusted, it can yield good results.  I am just saying that this scene “as-is” does not yield realistic results.  Then I run my Addon to convert to LuxRender, and then little effort is needed to get a realistic render. I stopped the close-up render below at one hour as it did not have a ‘light portal’ setup.  These images were not doctored or post-processed either, just straight out of the Luxrender engine.

lux_onehour_render    lux_2hour_closer_render

Those images directly above are not doctored or tweaked before rendering.  The one on the left was stopped after 2 hours and the one on the right (or below) after one hour.  It is actually exciting to take a scene created from OBJ data that you have never messed with the material settings, and render it out for the first time with LuxRender.  It is like peering into a new world.  This can be a time-saver in your workflow, so you can spend more time on adjusting certain material settings.  Good example would be the candles above.  the translucent depth and absorption color could be tweaked so you get a good wax effect.

INCLUDED FEATURES

addon_buttonThe interface is fairly simple.  You unselect all the objects and click the ‘Convert’ button shown on left.  If you are in Cycles engine, it should kick you back to Blender Render before conversion.

The tool (Addon) will convert standard objects and their materials. On top of that it will also convert the following:

  • Bump Map Textures
  • Light Bulbs and Flames as light emitters
  • Mirrors
  • All glass and image mapped glass
  • Metals
  • Skin (by body parts)

The ability to create the material overrides above are based on the material name.  For instance, if the material has the word ‘metal’ in the material name, the material will be converted to standard default metal in the LuxRender Material Nodes.  In the case of skin, if the material has the word ‘head’ or ‘face’, it will be converted into a rudimentary Glossy Translucent material for taking on the skin image map.  All materials have a glossy component except Area Light materials, which are Matte Translucent.  They are either Glossy Translucent, Glossy, or Metal.  Most things in real life have a reflection component in some form, it depends how much that component is before we see a shine.  I pondered whether I would do Cloth, but if an object has an image map and a bump map, it may be overkill to have it on a cloth material base.

lux_tech_consoleOn the left here, to test how it would convert a lightbulb into light, I import an OBJ file, which was a sci-fi tech console.  I added a plane for the floor and a plane where a light would be above.  I faced the normal towards the object, name the material in ‘Blender Render’ “lightbulb” and then push the ‘convert’ button.  The image is exactly how it rendered, except I gave the light a greenish hue.  I love not having to do tedious manual material and texture application to get a scene ready to render.

 

After a little cleanup of the code, I may get it onto the Blender Addon page.  In the meantime, I have the Beta here Lux Material Converter.  To use in Blender, just place zip file in a known place, and open up ‘User Preferences’.  Then choose ‘Addons’ menu item to add the file.  At bottom, you choose ‘Install from File’ button and find the zip file.  It will add the list of Addons, which you select to activate.  The tool only shows when you have selected the ‘Materials’ icon from the main properties window.  Here is a Demo Video on its use Demo of Lux Converter .  This is an MP4 file, viewable in Quicktime or VLC.

 

 

Posted under 3D Modeling

Vue Rendercow persistence

After getting Vue 10 up and running, I wanted to employ some of my included 5-cow licenses.  On renders that take a while, using multiple workstations is the way to go.  In fact I installed Rendercow on my main workstation because I have 6 cores and at least one of them could be taken up by rendering in background.  The metrics are interesting on doing Rendercow renders.  It is not just the processor raw speed, but some other factors involved.  My guess is it has something to do with front side bus and cache on the processor itself.  Granted, my workstation has the newest hardware, but my wife’s PC has a faster processor in raw Ghz.  She has a 2-core with less cache on die, but mine is slower with more cores and a bigger cache.  My front-side buss is a bit faster too.  Using HyperVue for an external render from the start, my PC was able to accept and render 1/3 more frames.  The 3rd PC I was using was a laptop using wireless with a slower processor.  This rendered half as much as my wife’s PC.  I might add that both my wife and I have gigabit LAN ports, so that part of equation was the same.

Anyway, the point of this entry is the annoying ‘disconnected…’ status of one or more of the render nodes (cow clients), when Rendercow is clearly running.  In the case of my PC, where HyperVue resides, Rendercow would diable itself and disappear.  This would, at least, be after a rendering job when it was assembling all the frames.  This seemed random and didn’t happen all the time.  The laptop on wireless would be running and the Rendercow status window would say ‘rendering…’, while Hypervue would say ‘disconnected…’.  Obviously something was off.  The simple fact that I have come to find, is that turning off the scanning for Cows, or Auto Rendercow search was the first thing to do.  Then each PC should have a different port selected on the Rendercow setup window.  I went from 5005, 5006, 5007 on the PCs.  Then you add the nodes manually and use the ports you assigned on the Cow clients and then everything works smoothly.  I found in cases where the render stopped assembling the frames, that changing to manual mode enabled to pick up where it had left before.

I don’t know what I did without Cow nodes to render before.  What used to take 5 hours to render takes 3, now.  I am going to resurrect an old box and put a new motherboard and processor in it and keep it headless in the garage (where I have the network switch and router) just waiting for renders.  I’ll have to turn on the ‘wake-on-LAN’ feature so an upcoming render will wake it up to start the render.  I read a blog somewhere that talked about using a rendercow for different processors on one PC.  If the processor I get is fast enough and has enough cores (at least 4), then I am going to try that.  Now what we need is distributed processing for GIS for some of those statewide geodatabases I am currently dealing with!

Posted under 3D Modeling

Blender gets a facelift

I have been using Blender since version 2.40 and have just gotten used to it.  It was always way different from other graphic user interfaces (GUI), but features outweighed the awkwardness of navigating around.  That has all changed with the almost released version 2.5X.  I applaud the massive effort that went into the recoding of the interface.  Although there will be a learning curve to get used to it, gladly the control sets and panels remain similar enough to 2.49.  Some things are just going to be different, but that is part of the improvement process – change is inevitable.  One quick example is the view window control.  Before (in 2.49), you could see what view was chosen in the pop-up menu – perspective or orthographic.  Now you just have the same functionality as the keypad toggle.  However, what you chose is displayed on the screen in the upper lefthand corner with white letters.  Yes, different, but pretty cool in the long run.

The new redesign is becoming more mainstream and looking more like other 3D applications.  My particular favorite is the ‘scene’ panel in upper right corner (default) which shows the objects in the scene.  This is very much the norm in other 3D apps.  I have some examples below.  You can see the difference between 2.49 and 2.56 first, and then some other 3D apps.  Notice how PovRay is way different with raw code as its interface – the least friendliest GUI.

Blender 2.49 (old GUI)

Blender 2.56 GUI

DAZ Studio 3.0 GUI

Vue 9i GUI

POVRay 3.6 GUI

Posted under 3D Modeling