Link load

<< bytesize.nb

So you need about all stuff.

The implementation

Link load is estimated as average bytesize / lifetime.
Probability is the chance that the observer moves in a worst-case direction.
P=1/6 for simplified polygon objects (normal and incremental coded), as only moving towards the object will result in refresh of the model
for the other models, P=5/6 as only moving away from the object will not require model updates.

AverageLoad[SizeFunction_, probability_, r_, d_, T_, DI_, TDI_, k_, 
          options___] := 
        probability*
          SizeFunction[r, d, T, DI, TDI, k, options]/T;

Some plots

Standard full-range linkload vs distance and lifetime,
normal complexity (k=5)

Clear[n, r, d, θ, MaxPolygons, k, lifetime, 
        DI];
DI = 0.001;   
neardist = -1;  fardist = 2; 
tmin = -1;  
    tmax = 1;   
k = 5; r = 1;

SetOptions[Plot3D, 
        AxesLabel -> {"log T", "log distance", "-Log \
bytes/s"}, ViewPoint -> {-1.661, -1.204, 0.947}, 
        PlotRange -> 
          Automatic, 
Ticks -> {LogScale, LogScale, 
            LogScale}];

ppoly = 
        Plot3D[-Log[10, 
              AverageLoad[PolygonSimpSize, 1/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pincremental = 
        Plot3D[-Log[10, 
              AverageLoad[IncrementalPolygonSize, 1/6, r, (10^d), (10^t), DI, 
                DI, k]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pvptdep = 
        Plot3D[-Log[10, 
              AverageLoad[VptDepSimpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

psimple = 
        Plot3D[-Log[10, 
              AverageLoad[SimpleImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pmeshed = 
        Plot3D[-Log[10, 
              AverageLoad[MeshedImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

piwd = 
        Plot3D[-Log[10, 
              AverageLoad[IwDSize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

pldi = 
        Plot3D[-Log[10, 
              AverageLoad[LDISize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	IncrementalColor,ConvertToMesh[pincremental],
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["nolimits.eps", %]

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	(*IncrementalColor,ConvertToMesh[pincremental],*)
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["nolimitswoincr.eps", %]

Restricted polygon budget 500 polygons

Clear[n, r, d, θ, MaxPolygons, k, lifetime, 
        DI];
DI = 0.001;   
neardist = -1;  fardist = 2; 
tmin = -1;  
    tmax = 1;   
k = 5; r = 1;
maxp = 500;

ppoly = 
        Plot3D[-Log[10, 
              AverageLoad[PolygonSimpSize, 1/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pincremental = 
        Plot3D[-Log[10, 
              AverageLoad[IncrementalPolygonSize, 1/6, r, (10^d), (10^t), DI, 
                DI, k, MaxPolygons -> maxp]], {t, tmin, tmax}, {d, 
            neardist, fardist}];

pvptdep = 
        Plot3D[-Log[10, 
              AverageLoad[VptDepSimpSize, 5/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

psimple = 
        Plot3D[-Log[10, 
              AverageLoad[SimpleImpSize, 5/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pmeshed = 
        Plot3D[-Log[10, 
              AverageLoad[MeshedImpSize, 5/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

piwd = 
        Plot3D[-Log[10, 
              AverageLoad[IwDSize, 5/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pldi = 
        Plot3D[-Log[10, 
              AverageLoad[LDISize, 5/6, r, (10^d), (10^t), DI, DI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	IncrementalColor,ConvertToMesh[pincremental],
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,
(*PlotRange->{{-1,1},{0.5,2},Automatic},*)
AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["max500poly.eps", %]

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	(*IncrementalColor,ConvertToMesh[pincremental],*)
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,BoxRatios->{1,1,.5},Ticks->{LogScale,LogScale,LogScale},
(*PlotRange->{{-1,1},{0.5,2},Automatic}*)
PlotRange->Automatic]]

Export["max500polywoinc.eps", %]

Standard full-range linkload vs distance and lifetime,
high complexity (k=30)

Clear[n, r, d, θ, MaxPolygons, k, lifetime, 
        DI];
DI = 0.001;   
neardist = -1;  fardist = 2; 
tmin = -1;  
    tmax = 1;   
k = 30; r = 1;

ppoly = 
        Plot3D[-Log[10, 
              AverageLoad[PolygonSimpSize, 1/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pincremental = 
        Plot3D[-Log[10, 
              AverageLoad[IncrementalPolygonSize, 1/6, r, (10^d), (10^t), DI, 
                DI, k]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pvptdep = 
        Plot3D[-Log[10, 
              AverageLoad[VptDepSimpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

psimple = 
        Plot3D[-Log[10, 
              AverageLoad[SimpleImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pmeshed = 
        Plot3D[-Log[10, 
              AverageLoad[MeshedImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

piwd = 
        Plot3D[-Log[10, 
              AverageLoad[IwDSize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

pldi = 
        Plot3D[-Log[10, 
              AverageLoad[LDISize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	IncrementalColor,ConvertToMesh[pincremental],
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-1.060, -2.787, 1.600}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	(*IncrementalColor,ConvertToMesh[pincremental],*)
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Max 500 polygons.
Lower quality polygons setting but highquality textures. Normal complexity (k=5)

Clear[n, r, d, θ, MaxPolygons, k, lifetime, 
        DI];
DI = 0.1;  
    TDI = 0.001;    
neardist = -1;  fardist = 2; 
tmin = -1;  
    tmax = 1;   
k = 5; maxp = 500; r = 1;

ppoly = 
        Plot3D[-Log[10, 
              AverageLoad[PolygonSimpSize, 1/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pincremental = 
        Plot3D[-Log[10, 
              AverageLoad[IncrementalPolygonSize, 1/6, r, (10^d), (10^t), DI, 
                TDI, k, MaxPolygons -> maxp]], {t, tmin, tmax}, {d, 
            neardist, fardist}];

pvptdep = 
        Plot3D[-Log[10, 
              AverageLoad[VptDepSimpSize, 5/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

psimple = 
        Plot3D[-Log[10, 
              AverageLoad[SimpleImpSize, 5/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pmeshed = 
        Plot3D[-Log[10, 
              AverageLoad[MeshedImpSize, 5/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

piwd = 
        Plot3D[-Log[10, 
              AverageLoad[IwDSize, 5/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pldi = 
        Plot3D[-Log[10, 
              AverageLoad[LDISize, 5/6, r, (10^d), (10^t), DI, TDI, k, 
                MaxPolygons -> maxp]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	IncrementalColor,ConvertToMesh[pincremental],
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["500polyhighT.eps", %]

Show[Graphics3D[{
	(*PolygonColor,ConvertToMesh[ppoly],*)
	VptDepColor,ConvertToMesh[pvptdep],
	(*IncrementalColor,ConvertToMesh[pincremental],*)
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["500polyhighTnoinc.eps", %]

Standard full-range linkload vs distance and lifetime,
normal complexity (k=5) but with R=10

Clear[n, r, d, θ, MaxPolygons, k, lifetime, 
        DI];
DI = 0.001;   
neardist = -1;  fardist = 2; 
tmin = -1;  
    tmax = 1;   
k = 5; r = 10;

SetOptions[Plot3D, 
        AxesLabel -> {"log T", "log distance", "-Log \
bytes/s"}, ViewPoint -> {-1.661, -1.204, 0.947}, 
        PlotRange -> 
          Automatic, 
Ticks -> {LogScale, LogScale, 
            LogScale}];

ppoly = 
        Plot3D[-Log[10, 
              AverageLoad[PolygonSimpSize, 1/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pincremental = 
        Plot3D[-Log[10, 
              AverageLoad[IncrementalPolygonSize, 1/6, r, (10^d), (10^t), DI, 
                DI, k]], {t, tmin, tmax}, {d, neardist, 
            fardist}];

pvptdep = 
        Plot3D[-Log[10, 
              AverageLoad[VptDepSimpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

psimple = 
        Plot3D[-Log[10, 
              AverageLoad[SimpleImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

pmeshed = 
        Plot3D[-Log[10, 
              AverageLoad[MeshedImpSize, 5/6, r, (10^d), (10^t), DI, DI, 
                k]], {t, tmin, tmax}, {d, neardist, fardist}];

piwd = 
        Plot3D[-Log[10, 
              AverageLoad[IwDSize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

pldi = 
        Plot3D[-Log[10, 
              AverageLoad[LDISize, 5/6, r, (10^d), (10^t), DI, DI, k]], {t, 
            tmin, tmax}, {d, neardist, fardist}];

Show[Graphics3D[{
	PolygonColor,ConvertToMesh[ppoly],
	VptDepColor,ConvertToMesh[pvptdep],
	IncrementalColor,ConvertToMesh[pincremental],
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["nolimitsr=10.eps", %]

Show[Graphics3D[{
	(*PolygonColor,ConvertToMesh[ppoly],*)
	(*VptDepColor,ConvertToMesh[pvptdep],*)
	(*IncrementalColor,ConvertToMesh[pincremental],*)
	SimpleImposterColor,ConvertToMesh[psimple],
	MeshedImposterColor,ConvertToMesh[pmeshed],
	IwDColor,ConvertToMesh[piwd],
	LDIColor,ConvertToMesh[pldi]
},
Lighting->False,AspectRatio->Automatic,
ViewPoint->{-2.353, -1.931, 1.479}
,PlotRange->Automatic,AxesLabel->{"log T","log distance","-Log bytes/s"},
Axes->True,Ticks->{LogScale,LogScale,LogScale},BoxRatios->{1,1,.5}]]

Export["nolimitsr=10woincr.eps", %]