Converting 3ds into obj files

Started by raymoh, July 15, 2019, 10:19:36 am

Previous topic - Next topic


I've converted a 3ds file into a obj file (online converter). So far so good. By importing and opening it in Terragen 4 I receive this warning (not error): "OBJReader: could not open mtllib for xxxxx.obj". I've noticed that the converted file has no surface shader(s), so I added and configured a default shader by myself. That worked very well. No problems during the rendering. My question now is this: Will this warning (every time I open the project) affect a render job at Pixel Plow (causing to abort it) or will it simply skip it?
Beauty is in the eye of the beholder.


Best thing you can do is save the obj as tgo. That will keep all internal alterations.
Also, when you take an obj without mtl through Poseray, and save (after possible alterations to size and whatnot), it'll load better in TG; namely with mtl file.


Thank you for your general suggestions. The problem is, I'm running on a mac, so Poseray is not available for me (AFAIK).
To say it again: The project (tgd) works fine (only the warning message "disturbs") and the render finished without any problem.
How sensitive is the Pixel Plow render software? Will it abort the render, when this warning message appears or will it continue?
In fact it's "only" a message, not an error that will crash the render job...
Well at last it's probably "no risk no fun". :)
Beauty is in the eye of the beholder.


July 15, 2019, 02:25:21 pm #3 Last Edit: July 15, 2019, 02:26:52 pm by WASasquatch
The online converter you are using has known issues with 3DS format (only two I know about actually and both don't work with most formats advertised). Additionally the website provides both files as seperate downloads so easy to forget to download it altogether. And finally, the downloaded MTL file may just be empty and broken.

It's best to just download Blender (it's free: and than File -> Import -> 3DS and than File -> Export -> Wavefront (Obj)
Check out my Terragen Discord:


July 15, 2019, 02:33:31 pm #4 Last Edit: July 15, 2019, 02:50:31 pm by digitalguru
As Dune says, re-save the object as a .tgo (right-click on the object, choose "save object file..." and use Terragen Object Files (*.tgo) as the file format).

If you're happy with the shader you've assigned then no need to run the obj through Poseray.

Delete the obj and reload the .tgo file you created and the warning will go away.

In fact, it's usually a good idea to do this for any object you've loaded as Wavefront obj.

p.s You can actually write your own .mtl file - just create a file with the same name as your object, so if it's called "xxxxx.obj" then create a file called xxxxx.mtl and add something like this in the file:
newmtl heroRock_01_SG
illum 4
Kd 0.50 0.50 0.50
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00

check this page for an explanation of the paramters


Quote from: digitalguru on July 15, 2019, 02:33:31 pm
In fact, it's usually a good idea to do this for any object you've loaded as Wavefront obj.

Terragen handles Wavefront files rather well. It's just features TG doesn't use that are lost, like normal mapping. I don't see any real reason to save as TGO unless you've optimized the shaders that constitutes using the TGO format. It is nice though that TGO is a binary format and smaller than the general wavefront object.

I use the TGO format often, but usually when the object is optimized for Terragen itself. Not all objects call for this, like low-poly distant objects that don't need much care for detail or change.
Check out my Terragen Discord:


If your OBJ renders in the project without needing an MTL, then the warning is harmless. It will render just fine on Pixel Plow. The "warning" will occur on Pixel Plow's computers but the render will continue anyway without a problem.
Just because milk is white doesn't mean that clouds are made of milk.


Thanks to you all for your propositions. I pay attention to them in the near future.
Matt: Thank you for your answer regarding Pixel Plow.
Beauty is in the eye of the beholder.