Yes, that used to be my understanding. I've tested a simple program on two machines and get virtually identical fps for instancing and cloning on each machine - although one machine is much faster of course.
Of course there could be a silly error in my code ...
This is what I used:
` simple program to test use of shaders with Tree It trees and instancing
`
` my laptop and desktop show no advantage of instancing versus cloning
` the only problem noticed is that "scale object texture" and "scale limb texture"
` will not work when the shader is used - no idea why (neither ".x" nor ".dbo" work)
` haven't tried scaling using the shader - should be OK
set display mode desktop width(), desktop height(), 32
sync on : sync rate 0 : sync
autocam off
position camera 0, 40, -80
point camera 0, 40, 0
color backdrop rgb(64,64,64)
` make ground object
make object plain 1, 2000, 2000, 20, 20
color object 1, rgb(48, 24, 12)
set object ambient 1, 0
` load source objects
load object "Trees and shrubs/Tree01.dbo", 100
position object 100, 0, 0, 0
set object texture 100, 0, 0
hide object 100
load object "Trees and shrubs/Shrub01.dbo", 101
position object 101, 0, 0, 0
set object texture 101, 0, 0
hide object 101
load object "Trees and shrubs/shrub02.dbo", 102
position object 102, 0, 0, 0
set object texture 102, 0, 0
hide object 102
` load basic lighting effect
load effect "basic per pixel positional lighting.fx", 1, 0
set object effect 100, 1
set object effect 101, 1
set object effect 102, 1
TreeNum = 200
TreeCount = 0
angle1#=0.1
copyOption = 2 ` use instancing as default
text 20, 20, "Number of limbs = "+str$(checklist quantity())
text 20, 40, "Trunk FVF = "+str$(limbFVF)
text 20, 60, "Enter 1 for cloning, 2 for instancing:"
sync
wait key
if inkey$() = "1" then copyOption = 1
` initialise rnd seed for reproducibility
randomize 140549
do
if spacekey() and keyNow = 0
keyNow = 1
inc TreeNum
inc TreeCount
treeType = rnd(2)+100
if copyOption = 1
clone object TreeNum, treeType
else
instance object TreeNum, treeType
endif
position object TreeNum, rnd(500)-250, object position y(100), rnd(500)
scale object TreeNum, 90+rnd(20)-10, 95+rnd(10)-5, 90+rnd(20)-10
rotate object TreeNum, 0, rnd(360), 0
else
if spacekey() = 0 then keyNow = 0
endif
ink rgb(255, 255, 255), 0
text 20, 20, "FPS = "+str$(screen fps())
if copyOption = 1
text 20, 40, "Number of clones = "+str$(TreeCount)
else
text 20, 40, "Number of instances = "+str$(TreeCount)
endif
ink rgb(255,255,0), 0
center text screen width()/2, 80, "Press <space> to add a copy of a tree"
control camera using arrowkeys 0, 0.2, 0.0
sync
loop
end