#311 Photon Mapping (Direct) With Scatttering Material

open
nobody
None
5
2007-04-10
2007-04-10
OniOid
No

The attached file contains a conical shape whose material used to have scattering above 0 whereupon the Photon Mapping (Direct) seemed to get stuck on 'Building Global Photon Map'. This is unlike other rendering methods used (Did not try Final Gather, though).

There is no console output to report or problems found with Verify Scene script.

Richard

Discussion

  • OniOid
    OniOid
    2007-04-10

     
    Attachments
  • Peter Eastman
    Peter Eastman
    2007-08-18

    Logged In: YES
    user_id=74743
    Originator: NO

    It's not really stuck. It's just taking a very (very very) long time to build it.

    You don't really want global illumination for this scene - there are no surfaces that can actually reflect light onto other ones. That's why (almost) no photons get stored. If truly none at all got stored, the raytracer would quickly figure out that it wasn't doing any good and stop trying to build a photon map. But your scene is such that every once in a long time, a photon does get stored, so it keeps trying. But it will take a very long time to actually produce thousands of them.

    I'll try to make it better at detecting this case. In the mean time, you should turn off global illumination. I think what you really wanted to use photon mapping for is caustics and/or material scattering. That works fine.

     
  • OniOid
    OniOid
    2007-09-09

    Logged In: YES
    user_id=399505
    Originator: YES

    Informative, Peter, thank you-- and also for the fixes, notifications, and elaborations.
    I'll try to investigate the other bugs-in-question within the upcoming week.

    Richard

     
  • bob
    bob
    2007-09-22

    Logged In: YES
    user_id=1109810
    Originator: NO

    I have had this problem also. It always occurs with GI. I get the following errors. (I keep trying to get a renderer with both the Advanced raytracer and the default raytracer )

    Exception in thread "Raytracer main thread" java.lang.NullPointerException
    at artofillusion.raytracer.Ray.newID(Ray.java:73)
    at artofillusion.raytracer.DirectionalPhotonSource$1.execute(DirectionalPhotonSource.java:94)
    at artofillusion.util.ThreadManager.run(ThreadManager.java:148)
    at artofillusion.raytracer.DirectionalPhotonSource.generatePhotons(DirectionalPhotonSource.java:102)
    at artofillusion.raytracer.PhotonMap.generatePhotons(PhotonMap.java:130)
    at artofillusion.raytracer.Raytracer.generatePhotons(Raytracer.java:1052)
    at artofillusion.raytracer.Raytracer.buildPhotonMap(Raytracer.java:1008)
    at artofillusion.raytracer.Raytracer.run(Raytracer.java:1067)
    at java.lang.Thread.run(Thread.java:619)
    Moving AOI-RenderingHistory to new location
    Xlate.read: error: java.lang.IllegalArgumentException: Xlate.set: cannot set a value for setstreamId
    Xlate.read: error: java.lang.IllegalArgumentException: Xlate.set: cannot set a value for setstreamName
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    Xlate.read: error: java.lang.ArrayStoreException: java.lang.String
    RenderManager.run: cannot open presets dir
    9/22/07 7:42:47 PM CEST [AWT-EventQueue-0] in RenderParams$Panel.showDialog() (RenderParams.java:1041)
    log: calling PreviewPlugin.preview
    PreviewPlugin: PREVIEW
    registering RenderParams
    component= buoy.internal.WidgetContainerPanel
    Mapped ID=RenderParams
    MetaData.put: nik777.aoi.rendering.RenderParams = [Lnik777.aoi.rendering.RenderParams;@6eca671a
    Matching LayoutWindow found
    unregistering
    component= buoy.internal.WidgetContainerPanel
    9/22/07 7:43:51 PM CEST [AWT-EventQueue-0] in RenderParams$Panel.close() (RenderParams.java:1190)
    log: calling PreviewPlugin.preview
    PreviewPlugin: PREVIEW
    ImmediateQueue: starting manager
    9/22/07 7:43:51 PM CEST [AWT-EventQueue-0] in RenderManager.layoutPanel() (RenderManager.java:717)
    log: Laying out panel
    AdvRend.start: startTime=0.0; endTime=1.0; maxFrame=1; subindex=0
    RenderManager: shutter=30; time=0.0
    RenderManager: cam.coords=Vec3: 0.0, 0.0, 9.199999999999962
    PixelViewer.begin
    ImageCanvas.setView: 0.0, 0.0, 400.0, 300.0 -> 400, 300; scale=1.0
    PixelEncoder: width=400; height=300; comps=3; dataComps=0; dataType=0
    SeekableFile.begin: writing to /home/CIBIV/greg/aoi-render.png
    Encoder: uri=file:/home/CIBIV/greg/aoi-render.png
    TIFF: dataType=1; dataComps=3
    TIFF: width=400; height=300; dataComps=3; nEntries=11; ifdSize=138; bytes=360000
    refresh...
    Exception in thread "Raytracer main thread" java.lang.NullPointerException
    at artofillusion.raytracer.Raytracer$10.execute(Raytracer.java:1324)
    at artofillusion.util.ThreadManager.run(ThreadManager.java:148)
    at artofillusion.raytracer.Raytracer.run(Raytracer.java:1337)
    at java.lang.Thread.run(Thread.java:619)
    PixelEncoder.end: size=214
    refresh...
    Exception in thread "Raytracer main thread" java.lang.NullPointerException
    at artofillusion.raytracer.Raytracer$6.execute(Raytracer.java:1100)
    at artofillusion.util.ThreadManager.run(ThreadManager.java:148)
    at artofillusion.raytracer.Raytracer.run(Raytracer.java:1113)
    at java.lang.Thread.run(Thread.java:619)
    refresh...
    refresh...
    refresh...
    refresh...
    refresh...
    refresh...
    refresh...
    PixelEncoder.end: size=360214
    Exception in thread "Raytracer main thread" java.lang.NullPointerException
    at artofillusion.raytracer.Raytracer$7.execute(Raytracer.java:1165)
    at artofillusion.util.ThreadManager.run(ThreadManager.java:148)
    at artofillusion.raytracer.Raytracer.run(Raytracer.java:1212)
    at java.lang.Thread.run(Thread.java:619)