a raytracer in C#


Dotray is not so stupid raytracer. It compiles and works on .net and mono platforms. Written in order to test managed code performance.


  • mgf, the materials and geometry format for scene description
  • custom xml for camera position, rednering size and so on..
  • ppm output only so far, viewable in programs like GQview and GIMP
  • Some renderings

    Renderings are converted to 24bit png. Click to see bigger version.


    Remeber, you will need .net framework (only).

    Download source of dotray-0.1 from sourceforge


    On mono platform

    $ mono dotray.exe SceneConfig.xml

    On windows

    dotray SceneConfig.xml


    It works slow, on mono even slower. Here are some time results:

    Tokugawa's Gentoo
    $ cat /proc/cpuinfo
    model name      : AMD Athlon(tm) XP 2500+
    stepping        : 0
    cpu MHz         : 1836.386
    cache size      : 512 KB
    $ mono dotray.exe office640x480.xml          
    Parsing:        0.093842 s                 
    BSP:            1 m 42.703976 s
    Objects:        10085
    Voxels:         2490
    obj/vox:        4.05020080321285
    Rendering line 479 of 479
    Rendering:      41.222566 s
    Laoo's Windows
    D:\>rem AthlonXP 1800+, Mhz 1534
    D:\>dotray office640x480.xml 
    Parsing:        0,0625 s
    BSP:            5,375 s
    Objects:        10085
    Voxels:         2490
    obj/vox:        4,05020080321285
    Rendering line 479 of 479
    Rendering:      28,28125 s

    As we can see mono 1.1.3 is 19 times slower in BSP building, and only 1.45 times in rendering! Where is the difference? I hope that mono guys will know.

    There is another thing. Pictures generated on .net and mono looks the same, but... they aren't. I suppose these are some floating point misunderstangins.

    Thanks to sourceforge.net
    SourceForge.net Logo