During my laboratory work I have started to research for a lighting
simulation method by means of computer graphics, to create a software,
which makes easier the optimisation setup of the automatic optical
inspection systems. First of all I had been studied the basic of
computer graphics, then component models were generated, and these
models were later applied to the lighting simulation. In my diploma
plan we developed in C++ language a graphics application running on
graphics processor together with my tutor.
The most important parts of the program struct are the handling of
light sources and the reflectance model of the different materials.
To the correct simulation metal surfaces should be displayed as realistic
as possible, that is why the Cook-Torrance method was selected as
behavior descriptor. The shaders of the graphics processing unit are
programmed to calculate the intensity of pixels according to this model.
The light source parameters should be modifyable in runtime to a fast
search for the optimised illumination setup in case of a failure.
The light sources are stored in a flexible structure, that means that
all the frequently applied lighting elements like spotlight, ringlight
and skydome are disassembled to spotlights. This method permit to alter
the geometrical parameters and intensity of sources. On the other hand
this is necessary for the calculation of shadowing at which was analysed
how the component models of the rendered scene cover each other.
A shadowmap is generated for each lightsources used as a point of view.
In this map the distance values of the nearest objects to the source are
stored and during the rendering it is sampled and the probability of
incidence is calculated. In this way the simulation gives a realistic
After the program was completed I compared the simulation against
the snapshot of a real AOI machine. Based on the test of the basic
illumination elements I made an optimisation for the tombstone failure
of a surface mounted capacitor. I found a lighting configuration which
gives an effective failure detection. I tested this solution on a
real machine. In the future I would like to improve the application
with the refinement of the image synthesis and implementing of additional
functions. I could use my experiences with programming of graphics processor
in the image processing also.