Skip to content

Using ply mesh as an emitter

Can I make any ply mesh an emitter? I am using following .arm snippet.

id lightface = PLY_MESH( "meshes/lightface.ply" );

        
    lightface =  
        [lightface 
            apply
                : LAMBERT_EMITTER( ARNGREY_100, 1.0 )
        ];

This leads to a crash when I run my .arm file with artist crash dump

artist - photorealistic renderer
ART version 2.1.2, 48 cores detected
(c) 1996-2022 by the ART development team 

reading scene description                                           0.31 sec
optimising scene graph for raycasting                               0.00 sec
identifying and analysing lightsources 

***  ART Fatal Error: code -1 ***
Location: /home/arpita1/projects/ART/Source/ClassLibraries/Shape/ArnTriangleMesh.m line 653
Reason  : code is work in progress, and has to be completed before use 

Last 20 stack frames:
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(print_trace+0x32) [0x7f784d4b1402]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(art_error_exit+0xe) [0x7f784d4b14be]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x41492b) [0x7f784d61492b]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3aa562) [0x7f784d5aa562]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3aebf2) [0x7f784d5aebf2]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f5f08) [0x7f784d5f5f08]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f7565) [0x7f784d5f7565]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f5490) [0x7f784d5f5490]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3fb64a) [0x7f784d5fb64a]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f7565) [0x7f784d5f7565]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f2f60) [0x7f784d5f2f60]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f8d4f) [0x7f784d5f8d4f]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f7565) [0x7f784d5f7565]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f2f60) [0x7f784d5f2f60]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f811a) [0x7f784d5f811a]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f7565) [0x7f784d5f7565]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f2f60) [0x7f784d5f2f60]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3f4e7a) [0x7f784d5f4e7a]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x40012a) [0x7f784d60012a]
/home/arpita1/projects/ART/build/lib/libAdvancedRenderingToolkit.so.2(+0x3af336) [0x7f784d5af336]

The following snippet works fine in the .arm file

// id lightface = PLY_MESH( "meshes/lightface.ply" );
    id lightface = SPHERE;
        
    lightface =  
        [lightface 
            apply
                : LAMBERT_EMITTER( ARNGREY_100, 1.0 )
        ];
id lightface = PLY_MESH( "meshes/lightface.ply" );