3ds imports without textures

Tiger 3d model.zip (1.9 MB)

Random 3ds models including this one will not import the textures when I import the 3ds model! I made sure that the 3ds file was in the same directory as the textures but it still is without textures upon importing it into Sketchup!!

There are a couple of possible issues here. First of all, what directory, in relation to the model, is the original texture file placed in? Secondly, the texture is UV mapped. SketchUp doesn’t support UV mapping, so even if successful, the import would probably have a wrong texture mapping.

Like I already said, I put the model into the same folder as the original texture file.

Since it’s not easy to know what ‘image’ file, or its path, that the 3ds file is looking for, then we all at a loss…
Looking at your ZIP…
If it is expecting the image to be in a folder called TIGER that’s a start [how do YOU know that ?], and if not then it’s anybody’s guess, moving it into the same folder as the 3ds file seems to do nothing…
Also there are [were?] known limitations in 3ds image file-names [old DOS 8.3 characters, no spaces ?]
The image file you have supplied matches neither of these rules…

So exactly what did you download, and what instructions did the file’s author give you ?

Downloaded it here: https://archive3d.net/?a=download&id=92ca4b85

There is no instructions given

There appears to be no reference to the .jpg in the 3ds file.
From what I can tell, the texture coordinates are being imported, so if you create a new material, use the jpg as the image, guess the correct scale, and then paint the model, the texture should be aligned. The problem is, I don’t know the scale to use.

Tried that. All the faces got painted the same. As said, SU doesn’t support UV mapping.

@Anssi

I’m a bit confused by that statement, as I can use face.position_material to assign UV coordinates.


And I created scripts to UV map my models, so I know it works. :slight_smile:
Are you referring to the complete lack of decent UV mapping tools within Sketchup?

On the tiger model, if I edit the imported material, named ‘Material’, click ‘Use Texture Image’, select the texture and then change the scale to something like 1000 inches, it shows that the pattern is (roughly) distinct. It only looks the same if the default scale is used.

Other models from the same website do import with textures, for example: N021013.
So it is not the fault of Sketchup, but an issue with the 3DS file.

Allright, i think i got it fixed. It was a problematic file indeed.


I don’t know exactly what’s going on but here is what i did:

1- Import .3ds file in 3ds Max
2- Drag and drop texture from folder directly into mesh inside 3ds Max. (I could see UV map correctly from the beginning but applying texture via standart material didn’t work for some reason)
3- Export .3ds file
4- Renamed image as TIGER.JPG (SketchUp asked for this name when i first tried importing even though i didn’t give such name in 3ds Max or texture that i drag) and moved to the same folder with .3ds file
5- Import to SketchUp and it works!

Here is the file: Tiger3D.zip (805.6 KB)


Click for a side not

When i check the faulty .3ds file in Notepad++, i realized there was no .JPG keyword when searched, so i think guessing name combinations wouldn’t matter. (There was just ‘Material’ and ‘Tiger’ keywords.)

However in the new .3ds file that i provide, there is ‘TIGER.JPG’ keyword. Thus, we know which file we’re looking for or change name into.

Success, my approach was a bit different…

As I don’t have 3ds max, only Sketchup Make, I removed the binary parts of the gsm file, and modified my wavefront obj importer to import the remaining content. Revelant commands for gsm are as follows:

BASE - clear indices (indices start at 1)
VERT x,y,z - vertex coordinate
TEVE x,y,z,u,v - vertex coordinate with uv
VECT x,y,z - normal vector
EDGE v1,v2,p1,p2,status - define an edge from two vertices, p1 and p2 are polygon indices which I ignored.
PGON n,vect,status,edge1,edge2,…,edgeN - define a polygon from 3 or more edges

I still needed to specify the image file as part of the import.

ruby import snipette:

			if command == 'VERT'
				x = csv[1].to_f * scale
				y = csv[2].to_f * scale
				z = csv[3].to_f * scale
				pt = Geom::Point3d.new(x,y,z)
				uv = Geom::Point3d.new(0.0,0.0,0.0)
				vertices.push(pt)
				textures.push(uv)
			end
			
			if command == 'TEVE'
				x = csv[1].to_f * scale
				y = csv[2].to_f * scale
				z = csv[3].to_f * scale
				u = csv[4].to_f
				v = csv[5].to_f
				pt = Geom::Point3d.new(x,y,z)
				uv = Geom::Point3d.new(u,v,0.0)
				vertices.push(pt)
				textures.push(uv)
			end
			
			if command == 'VECT'
				x = csv[1].to_f
				y = csv[2].to_f
				z = csv[3].to_f
				normals.push([x,y,z])
			end
			
			if command == 'EDGE'
				# EDGE vert1, vert2, pgon1, pgon2, status
				v1 = csv[1].to_i
				v2 = csv[2].to_i
				edges.push([v1,v2])
			end
			
			if command == 'PGON'
				#PGON	3,	0,	2,	619	,	620	,	-615		!#397
				n = csv[1].to_i
				vect = csv[2].to_i		# normal
				status = csv[3].to_i
				e1 = csv[4].to_i
				e2 = csv[5].to_i
				e3 = csv[6].to_i

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.