HOME | DD

ugnvs — New Structure Synth Render Templates Download

Published: 2018-01-11 18:17:48 +0000 UTC; Views: 1496; Favourites: 13; Downloads: 28
Redirect to original
Description Introduction

Structure Synth is a wonderful program. It builds complex scenes using basic shapes and transformations by means of repetition and recursion. As the result these scenes often reveal fractal nature. Structure Synth builds a scene by processing its definition written in so called “eisenscript”. Official Structure Synth site structuresynth.sourceforge.net… offers downloads and essential documentation. By the way, some Linux distributions have Structure Synth in their repositories.

To get an impression of what Structure Synth is capable to produce you might search www.deviantart.com/?section=&a… or visit Structure Synth group at www.flickr.com/groups/structur… . If you are interested in Structure Synth enough to give it a try then some of these tutorials may help to begin: www.timestretch.com/article/structure_synth_tutorial and tatasz.deviantart.com/journal/… or tatasz.deviantart.com/journal/… .

Workflow problem and its solution

After you build an interesting scene in Structure Synth you immediately want to get an image of a quality beyond embedded renderer capabilities. The question is how to achieve that.

Structure Synth is very feature rich application which serves its purpose very well. It allows you to create and preview a model. More than that: it allows you to export the model in a variety of formats to be processed with the aid of third-party programs. Actually, it is the user’s problem to establish a workflow to follow in order to convert Structure Synth model into a beautiful image.

Basically, there are two possibilities to do that:

  • You export your model as mesh object and process it in 3D modeling and rendering software. It is possible to export mesh directly from within Structure Synth or you can create mesh in Meshlab software directly from eisenscript.

  • You export your model as scene definition file and process it in standalone rendering software.


  • I find that using scene definition files and standalone renderers is less challenging, more consistent and straightforward way.

    Using standalone renderers „Out of the box“ render templates trouble

    In order to export scene definition file for a third-party renderer Structure Synth must be supplied so called ‘render template’. Render template contains instructions on generating output for specific renderer.

    A number of render templates are included in Structure Synth distribution and can be found in ‘Misc’ directory in Structure Synth installation folder. In my opinion, the best of these templates is ‘Sunflow-Ultimate-Groovelock.rendertemplate’. Unfortunately, I have found out that the rest of ‘out of the box’ templates do not work for me. It looks like they are just proving concept of exporting data for some specific renderer and are not suited for production usage, however limited interpretation of ‘production’ term is appropriate here.

    In other words, out of the box Structure Synth installation provides means for rendering images only with long outdated Sunflow renderer. This is a trouble. Structure Synth is more capable and I want more.

    My solution: long story short

    Please download zip file and find in archive three new Structure Synth render templates and put them into ‘Misc’ directory in Structure Synth installation folder. These templates are:

    1) ugnvs-sunflow.rendertemplate

    Heavily revised Sunflow-Ultimate-Groovelock.rendertemplate from Structure Synth distribution

    2) ugnvs-luxrender.rendertemplate

    Heavily revised luxrender_v.7rc.rendertemplate from github.com/d4mer/synth2lux

    3) ugnvs-appleseed.rendertemplate accompanied by ugnvs-cube.obj, ugnvs-grid.obj, ugnvs-pyramid.obj, ugnvs-sphere.obj files

    Written from scratch


    These templates can be used for exporting scene files for Sunflow, LuxRender and Appleseed renderers respectively. I have tested templates using the last available versions of these renderers.

    The templates were (re)written to be consistent. They use uniform scene lighting and the same set of basic shapes and materials.


    Here is how to designate shapes and materials in eisenscript:

    box grid sphere box:yramid box::sphere

    box::matte grid::matte sphere::matte box:yramid_matte box::sphere_matte

    box::metal grid::metal sphere::metal box:yramid_metal box::sphere_metal

    box::mirror grid::mirror sphere::mirror box:yramid_mirror box::sphere_mirror

    box::glass grid::glass  sphere::glass box:yramid_glass box::sphere_glass

    box::light* grid::light* sphere::light box:yramid_light* box::sphere_light*

    * – except for Sunflow renderer.


    Notes:

    1) box::sphere is a sphere which is two times bigger than standard one and which can be scaled on any of x, y, z coordinates. In Structure Synth it looks like the cube, but is rendered as the sphere. Note, that scaling of a standard sphere changes its radius only. Introduced in Sunflow-Ultimate-Groovelock.rendertemplate.

    2) box:yramid is a pyramid with square base. In Structure Synth it looks like the cube, but is rendered as the pyramid. Introduced for the first time.

    3) grid is a 3d cube carcass. In Structure Synth it looks like a cube carcass of 2d lines, but is rendered as 3d object. Introduced in luxrender_v.7rc.rendertemplate.


    Sunflow notes

    sunflow.sourceforge.net/ hosts Sunflow distributive and short installation instructions. Sunflow is old and unsupported. The only available documentation for Sunflow can be found at geneomic.files.wordpress.com/2…

    Sunflow has global ‘sky’ illumination mode which lacks light intensity control. This is why this mode was not included in template lighting. Other templates enjoy global distributed light source. Due to absence of global illumination, mirror and metal objects rendered with Sunflow reflect ‘blackness of space’ despite configured background color.

    Next, Sunflow supports mesh lights, but they require static mesh definition. In other words, Sunflow mesh lights can not be relocated. That is why ‘light’ material is unavailable for all basic shapes except for sphere.

    To turn on caustics effect for glass objects open scene definition file and uncomment (i.e. remove % sign) the following lines:

    %photons {

    % caustics 10000000 kd 64 0.5

    %}

    You can also to change quality settings shown below:

    image {

    resolution 800 600

    aa 1 2

    samples 2

    filter blackman-harris

    }

    ‘aa’ stands for adaptive antialiasing min and max values: 1 for 4, 2 for 16 and 3 for 64 samples for pixel. ‘Samples’ are for number of light rays per pixel.

    Surely, you may want to tweak lights size, position and radiance as well.

    Sunflow renders fast. Test scene image was rendered in less than 5 minutes. Sunflow produces smooth images and can be safely used for a great majority of Structure Synth scenes. Unfortunately, it can fail to produce decent results for complex scenes, say, with a lot of thin glass sheets.

    LuxRender notes

    luxrender.net/ hosts LuxRender distributives and documentation. It is worth to mention that LuxRender is based on PBRT and PBRT documentation can help as well. It is hard to tell how actively LuxRender is developed and supported. Site lacks latest downloads for some of listed platforms and the latest available version is dated by year 2016.

    LuxRender GUI has the most powerful controls. It can stop and resume rendering. It allows user to switch from auto to manual tonemapping mode while rendering and adjust final image brightness on the fly or perform image post-processing. LuxRender interface allows to individually adjust lights radiance, including light objects while rendering.

    While Structure Synth measures camera’s field of view horizontally, LuxRender applies FOV to the least image dimension. That is if your image is wide, you will need open scene definition file, find FOV and ASPECT parameters’ values, divide FOV value by ASPECT value and replace original FOV value with the result. Otherwise LuxRender field of view becomes larger than desired.

    If your scene contains a lot of thin glass sheets it is recommended to open scene definition file and replace "bool architectural" ["false"] parameter with "bool architectural" ["true"]. That will turn off refraction in glass and may increase rendering speed.

    Also you may want to change sampler type by commenting or uncommenting appropriate lines in the beginning of scene definition file. ‘Metropolis’ sampler is the most powerful and ‘lowdiscrepancy’ sampler is recommended for noisy scenes. It is impossible to turn off caustics which produces most of ‘firefly’ noise.

    And the last, but not the least note: you may want to tweak lights size, position and radiance in LuxRender scene definition file as well.

    LuxRender imitates physical lighting of its scene and renders it indefinitely until user is satisfied with results and stops renderer. LuxRender is capable of calculating most complex scenes with a lot of glass and shining materials. Unfortunately, it produces lots of artifacts which gradually disappear when rendering proceeds and number of samples per pixel increases.

    Physically based rendering takes a lot of time and LuxRender is the slowest of all compared renderers. Test scene image was rendered in 4 hours and reached 4500 samples per pixel for there were many bright noisy pixels cast by mirror and metal objects.

    Appleseed notes

    appleseedhq.net/ hosts Appleseed renderer distributives and some documentation. It is actively developed and somewhat less actively documented.

    It is important to remember that Appleseed scene definition file does not contain any object geometry definitions. You have to place copies of listed above *.obj files in the directory where Appleseed scene definition file is saved. Otherwise your scene is not loaded and/or rendered.

    Appleseed GUI has a nice feature which allows to press - and change camera view while rendering. After camera is repositioned rendering restarts.

    Another notable Appleseed feature is the presence of two rendering modes: interactive and final mode. In the interactive mode scene is being rendered indefinitely, like in LuxRender, and user has to stop rendering manually. Final mode finishes rendering after configured number of rendering passes. It finishes rendering automatically.

    Both modes have to be configured in GUI before actual rendering begins. In the interactive mode the only available engine is ‘Unidirectional Path Tracer’ and there is not too much parameters to configure. In the final mode you can choose between ‘Unidirectional Path Tracer’ and ‘Stochastic Progressive Photon Mapping’ engines and between uniform and adaptive antialiasing samplers. Important feature to be turned on in engine configuration is caustics. For image sampler you can configure rendering number of samples, passes and some other parameters.

    Appleseed is slower than Sunflow and faster than LuxRender. It took about an hour and 1100 samples per pixel to render test image (with caustics turned off) in interactive mode.

    **********************************************************************

    Please feel free to distribute zip file with templates and this article to help new Structure Synth users.


    Related content
    Comments: 11

    Schmiegel [2018-01-22 12:01:20 +0000 UTC]

    Thank you for sharing your work and these instructions

    👍: 0 ⏩: 1

    ugnvs In reply to Schmiegel [2018-01-22 18:15:17 +0000 UTC]

    Glad you found them useful!

    👍: 0 ⏩: 0

    hypex2772 [2018-01-15 13:08:37 +0000 UTC]

    This is awesome!
    Thanks so much. Structure Synth is still great!

    👍: 0 ⏩: 1

    ugnvs In reply to hypex2772 [2018-01-15 15:46:30 +0000 UTC]

    Thank you very much!
    It is very pleasant to find out that something useful has been done!

    👍: 0 ⏩: 0

    fractal2cry [2018-01-12 12:58:00 +0000 UTC]

    👍: 0 ⏩: 1

    ugnvs In reply to fractal2cry [2018-01-12 14:54:34 +0000 UTC]

    👍: 0 ⏩: 0

    GLO-HE [2018-01-11 20:41:15 +0000 UTC]

    great Work...super!!!

    👍: 0 ⏩: 1

    ugnvs In reply to GLO-HE [2018-01-12 14:55:07 +0000 UTC]

    Thank you! You are very kind!

    👍: 0 ⏩: 1

    GLO-HE In reply to ugnvs [2018-01-12 17:33:07 +0000 UTC]

     

    👍: 0 ⏩: 0

    marijeberting [2018-01-11 18:25:27 +0000 UTC]

    Amazing work Gene

    👍: 0 ⏩: 1

    ugnvs In reply to marijeberting [2018-01-11 18:36:12 +0000 UTC]

    Thank you very much, Marije!

    👍: 0 ⏩: 0