Hi George:
Not being a programmer, I'd have to say that probably someone like Arno or Dick Ludowise might have more insight into the inner workings of the rendering engine when processing a MDL file versus Effect *.FX code to render "light" Effects which result from the code we configure inside FS Effects *.FX files.
I suspect that "instancing" versus repeated file reads is used at run time in FSX for certain code from
both MDLs and the Effect objects generated from processing of *.FX files.
[
EDITED]
And there does seem to be file I/O taking place with execution of *.FX files, as I have seen in SysInternals'
Process Monitor (aka "
ProcMon") filtering for 'FSX.EXE' events, based on my observation that Effect driven playing of sounds in FSX results in mapped *.WAV files being loaded and unloaded repeatedly when flying circuits in an area with locally active Effect sound placment BGLs.
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
[
END_EDIT]
Thus, it certainly may be that each method has its Pros and Cons, with different Effects involving a commensurate measure of "efficiency" and "in-efficiency" ...depending on what the FSX rendering engine has to deal with at run time.
But certainly, IIUC, file I/O which reads / re-reads an
entire file at run time (rather than specific sections of a file) imparts one of the biggest performance challenges to the FS rendering engine.
Again, as a non-programmer, I'm not sure that *.FX files themselves are read / re-read
at run time by virtue of needing to be "
all in their places with bright shining faces" ...when FS itself first initializes; to me, that suggests a virtual Effect object 'library' is being created somewhere from which 'instances' may be spawned after processing of the *.FX code instructions.
And from another standpoint of "efficiency", I personally find it convenient during the development process, to be able to tinker with Controller-type *.FX file(s) and any "called" Basic-type *.FX file(s) mapped by a actively working placement BGL, or attached to a MDL.
IMHO, it is easier to test different Effects loaded via different *.FX files "called" by a working Controller placed at a specific geographic location ...without having to instead create multiple MDLs mapped to different *.FX files.
PS:
By definition, a controller implies that FSX reads two files anyway.
I
also thought I had a working 'definition' of there being 2 types of *.FX files: a "
Controller-type", and a "
Basic-type".
And thus I thought, by inference, use of a Controller would always require that (at least) 2 files must be read.
Then.... Dick Ludowise (
thankfully) showed me that a
single *.FX file can contain
both types of code !
http://www.fsdeveloper.com/forum/showthread.php?t=19185&highlight=chicken
http://www.fsdeveloper.com/forum/showpost.php?p=126024&postcount=12
Hope these ideas might be of some help !
GaryGB