An Introduction to IBL and AO using 3Delight in Maya

3Delight is one of the most powerful rendering engines available, and it is also very well known in the industry, making it an extremely valuable tool to have in your skillset. In this beginner level tutorial, you will learn you how to create IBL (image based lighting) and also raytraced occlusion using 3Delight in Maya.

Tutorial Details

  • Software: Maya 2009, 3Delight
  • Difficulty: Beginner
  • Estimated Completion Time: 30 min
  • Hardware/ Software Requirements : Windows 2000-XP or Mac OSX 10.5 (or newer); PIII and higher or Intel Macintosh; 1G RAM
  • Additional/ Supporting Files: Hdri map available for free at www.hdrmill.com
  • Final Effect Preview

    Step 1

    To complete this tutorial you also need hdri map, which you can find at the link above (under Tutorial Details). For the purpose of this tutorial I used RenoSuburb01_sm.hdr. If you want to use the same values as I do, you should keep your objects in similar dimensions (the height of character is 115cm), and also change your Working Units to centimeters. You can do this by clicking the icon shown on picture below. You can obtain 3Delight itself from the link above as well, and you will also be able to find detailed instructions for installation. The only disadvantage of the free version is the limit of two threads during rendering, so if you have a quad core processor, only two of it’s cores will work during rendering.

    Step 2

    For the purposes of this tutorial I used a very simple scene consisting of a floor and model of a boy. As you can see, at this time model looks very rough.

    Step 3

    To make a quick render using 3Delight you must add a render pass. Click 3Delight -> Add Render Pass -> Default.

    Step 4

    Click the render button.

    Step 5

    For future renders you can simply click 3Delight -> Render -> “your render pass name” (ex. delightRenderPass1).

    Step 6

    To access the rendering attributes, click 3Delight -> Select Render Pass -> “your render pass name”.

    Step 7

    After rendering you should get a poorly looking image.

    Step 8

    Time to invoke some renderman awesomeness. In renderman polygonal models can be rendered very smoothly without any actual mesh smoothing modifier, which can speed up your render times tremendously. All you have to do is assign special attributes to the objects that you want to render smoothly. Select your objects and click 3Delight -> Assignment Panel.

    Step 9

    I have selected only the boy model. In the Assignment Panel click button 1 (in the image below) to create attributes, and then click button 2 to show the attributes in the Attributes Editor.

    Step 10

    In the Attributes Editor, press and hold the button Add/Remove Attributes and chose ALL to assign all attributes.

    Step 11

    If you accidentally deselect your object, don’t assign new attributes. Just re-select the objects and find the desired tab in Attributes Editor. In my case, the model of the boy combines several objects into one group, and the attributes are added to that group. So if I only select one object in the group, there will be no attributes from 3Delight. I must select the entire group via the Outliner.

    Step 12

    Under Geometry check the Poly as Subd. This simple click will make your model look smooth, but with almost the same render time.

    Step 13

    Render, and you should get something like this.

    Step 14

    To make an environment light, you must first convert your HDRI map into a format that is readable by 3Delight. To do this, run the command line by hitting Start -> Run, then type CMD and press ENTER. Go to the directory where you have your HDRI map and type: tdlmake “envlatl RenoSuburb01_sm.hdr RenoSuburb01_sm.tdl

    If your hdri map is in different format (light probe for example), then the command should also be different. For light probe type: tdlmake “lightprobe *.hdr *.tdl. For more information type ~tdlmake “h”.

    Step 15

    Create an Ambient Light by going to Create -> Lights -> Ambient Light. Leave all of the settings as default. You can place it wherever you want. You must assign a 3Delight light shader to it. Select the light and click 3Delight -> Assignment Panel. In the Assignment Panel press button (1) (in the image below) to create a light shader, then select the desired shader from the list (in this case envlight2 (3)). Hit Select (4). Now click button AE (2) to edit the attributes of the shader.

    Step 16

    In the Attributes Editor specify your converted hdri map by hitting the folder icon next to the envmap line. Ensure that you have selected the *.tdl file not *.hdr. Kenv lets you adjust the intensity of the light. Render. If the image is too dark, simply increase Kenv.

    Step 17

    The render below was done with Kenv set to 5.

    Step 18

    To turn occlusions on, change the value of Kocc (in the environment light shader) to 1.0 , and samples to 256 to increase the quality.

    Step 19

    If you render now, you will notice no changes. This is because you must make the objects visible to Rays. Make the changes under Visibility, in the 3Delight attributes of the object, to match the settings shown below. The floor plane must also have this attribute enabled. To do this, simply select the Plane and press 3Delight -> Assignment Panel, as described before.

    Step 20

    Render.

    Step 21

    This time rendering should be noticeably slower. To speed up our next steps, change the Kocc value (in the environment light shader) to 0. Now add a lighting map to the camera so the environment will be visible. In the Outliner, select the perspective camera persp, and click 3Delight -> Assignment Panel.

    Step 22

    In the Assignment Panel, create a background shader by clicking button (1) and choosing background shader from the list (2). Next press the Select button (3), and then the AE button (4) to show the settings in the Attributes Editor.

    Step 23

    In Attributes Editor chose a background image (the same as for the environment light). Ensure that you have selected the *.tdl file and not the *.hdr.

    Step 24

    After you render you may notice that the map is not correctly placed. This information is very important because the map for the environment light is placed the same way. In upper left corner you should see the bottom of the map, which tells you the way it must be rotated in order to place it correctly.

    Step 25

    To change the placement of the background image and light map, you must create a Coordinate System. Press 3Delight -> Add Coordinate System.

    Step 26

    Change the name of the Coordinate System to env_coord, and set the Draw Method to sphere.

    Step 27

    You can resize your sphere for a better view. Resizing does not affect the render.

    Step 28

    Select your perspective camera and assign the new Coordinate System to it. Type the name given to the Coordinate System in the bgspace field.

    Step 29

    Make similar changes to the environment light. Type the Coordinate System name in the envspace field.

    Step 30

    The Coordinate System is now assigned. You must then rotate it to the correct position. Test renders from different angles might be helpful to check the current position of the map. In this case, the Coordinate System is rotated on the X-axis because I wanted the sun from the map in front of the Boy.

    Step 31

    Render.

    Step 32

    Add one Directional Light to simulate the sun. Turn on shadows for this light, and change the Kocc value of the Environment Light to 1.0. Render again, and you’re done! You should have a nice quick render using IBL and AO in 3Delight!!

    Don’t miss more CG tutorials and guides, published daily – subscribe to Cgtuts+ by RSS.

    Add Comment

    Discussion 25 Comments

    1. adfa says:

      [quote]Tomasz Uliniarz

      Renderman is one of the most powerful rendering engines available[/quote]

      Dude Renderman is a standard not a render engine!

      Render engines are 3delight, prman and so on!

      If you are teaching people please consider explaining that.

      • I don’t know why you guys persist on commenting just to try and cut other people down. Maybe you already know what he is teaching here, but he has taken his own time to provide useful information to those who do not already know it. So please, if you do have criticism (which you are certainly entitled to)…why don’t you at least try saying it in a positive and constructive way.

        • Darko says:

          very well put :) this is suppose to be a friendly and helpful site.

        • Jannes says:

          Unlike Scott I do apreaciate the work you are doing here, thanks alot for this tutorial. It’s no use for me since I don’t use maya but thanks in name for the maya users here :)

    2. cookie says:

      “Renderman is one of the most powerful rendering engines available”
      Rendering engine??
      If you’re going to teach it, at least understand what you are teaching.

      • Speechless says:

        Have you even read the tutorial? For all intents and purposes, he does understand what he is teaching….at least enough to be able to relay the information that is truly important to the tutorial. But instead of acknowledging that, you latch on to one single sentence in the intro that may not be 100% accurate, and then try to flame him for it? It’s this type of ungrateful and deliberately negative attitude that causes good authors to give up trying to create these wonderful resources so that the rest of the community who actually appreciates it ends up losing out in the long run.

        • cokkie says:

          I never got to finish what I was going to say and posted a qoute.
          I was going to say that I too get ticked when people comment just to put others down.
          I think its awesome that someone takes the time to write a tut for us to use. its there time they give and
          for some smart ass to “correct” his terminology” seems rediculious.
          So I quoted “Renderman is one of the most powerful rendering engines available”
          Rendering engine??… bla bla. then had to change nappies.
          I like the tut.
          thanks tomasz.

      • You need to read my comment below. Renderman is a engine that set a standard in the industry that other render engines follow. The renderman standard is set by the Renderman engine, and 3Delight, Aqsis, Pixie, etc. follow this standard.

        For a strident comment like that, you dont display YOU know what your talking about very well.

    3. Daniel Amedoda says:

      Thanks for the tut man.

    4. weiq says:

      adfa, scott, cookie – if u guys knew so much, why don’t YOU be the one writing tutorial? obviously this tutorial aim @ beginners who wanted to learn, not snobs who just wanna render realistically.

      • craig says:

        Hey Weiq,
        I wasn’t banging this guys tut man. I like it.
        I about to agree Kaleb when I had to attend my kid.
        I must of hit enter when I was quoting the negative comment.
        I to am a beginner in 3dfm.
        I hate dicks that sit up high with there ideas of technical superiority.
        Ok?
        Im not the hater dude.
        I just pushed the button before i was finished

    5. Renderman is actually a rendering engine.

      PRMAN.exe = Photorealistic RenderMan

      If you are going to criticize at least understand what your criticizing before you say it.

    6. Just a clarification:

      prman.exe

      P = Photo
      R = Realistic
      MAN = Render Man

      So prman the engine is actually called renderman, therefore renderman is a render engine.

      Just wanted to make that clear as day.

      • Sorry

        P= Photorealistic
        R= Render
        MAN = MAN

        • Issac says:

          P = Pixar
          R = Render
          Man.
          There are many Renderman renderers, but PRMAN is designed by Pixar.
          Anyway renderman is created by Pixar which they made open to public.
          So other used that to make there own renderer based on Renderman.
          It works different then Physical based renderers Like Mental Ray, V Ray, Maxwell any many more.

    7. Chris says:

      This Conversation is so unnecessary!

    8. digi says:

      thanks for the tutorial! well explained and easy to understand.

    9. famousWolf says:

      I dont care for this arguament. A great tutorial for a great renderer. Thanks mate, this helped me a lot.

    10. cookie says:

      Hey, great tut.
      1 question.
      how do I turn off the primal visibility of the envMap?
      every render comes through with the tdl in the BG.
      Any info would be great.
      thanks.
      c

    11. craig says:

      can no one tell me how to turn off the maps visibility in the render?

    12. Elven says:

      I want to know how to make the occlusion work with Textures in 3delight?

    13. greg says:

      I don’t know why people try to look smart than others by cutting him down with technical terms .
      Where as they don’t have the guts to come up with some decent tutorial explaining those things.
      II am sure people who are involved in such bad practices don’t know anything and rather gets benefits from such tutorials but want to show the whole world that they knew more than what is explained here.

      So please be nice and try to help the community if you can don’t use rude words which reflects your personality and upbringing.

    Add a Comment

    To add a code snippet to your comment, please wrap your code like so: <pre name="code" class="html">YOUR CODE</pre>. You can replace the class name with "js," "css," "sql," or "php." If there are any "<" or ">" within your code, please search and replace them with: &lt; and &gt; respectively.