They link an ID to a in game file (the ID is arbitrary, can be anything you want)
The files then use THOSE IDs to link that texture or object ID to an actual item or effect.
EXAMPLE:
3deffect.ini determines what 3d effects look like in game
Code:
[Intone-3]
Amount=3
EffectId0=41
TextureId0=2754
ASB0=5
ADB0=6
EffectId1=42
TextureId1=2776
ASB1=5
ADB1=6
EffectId2=43
TextureId2=2797
ASB2=5
ADB2=6
Delay=0
LoopTime=1
FrameInterval=33
LoopInterval=0
OffsetX=0
OffsetY=0
OffsetZ=0
The effect name is Intone-3 and it has 3 different effects and textures that are part of that in game 3d effect. We can then look in 3DTexture for the texture IDs (2754, 2776 and 2797) which would link those texture IDs to specific in game files.
Think of 3dTexture/3dObj as being a database of all in game files that links the file up to an ID so it can easily be referenced elsewhere in the client files.
2754=c3/effect/Intone/1-11.dds
2776=c3/effect/Intone/2-11.dds
2797=c3/effect/Intone/3-11.dds
If we look at 3DEffectObj it will link the effect ID to a game file as well (ID 41, 42 and 43)
41=C3/Effect/Intone/1.C3
42=C3/Effect/Intone/2.C3
43=C3/Effect/Intone/3.C3
So TL-DR: To display something we need to know it's shape (mesh or C3 file) and its texture (.dds). Those files link IDs (some are structured to make sense, others are pretty much meaningless) to actual client files. You then reference those IDs elsewhere to explain what an effect/item/spell looks like so the client can load the proper files and display them.